ข้อผิดพลาดการไล่ระดับสีเอกพจน์ใน nls ด้วยค่าเริ่มต้นที่ถูกต้อง


19

ฉันพยายามใส่เส้นโค้ง + เอ็กซ์โพเนนเชียลให้พอดีกับข้อมูลบางอย่าง เป็นการเริ่มต้นฉันพยายามทำสิ่งนี้กับข้อมูลเทียมบางอย่าง ฟังก์ชั่นคือ: มันเป็นเส้นโค้งเอ็กซ์โพเนนเชียลได้อย่างมีประสิทธิภาพกับส่วนเชิงเส้นเช่นเดียวกับพารามิเตอร์ shift แนวนอนเพิ่มเติม ( m ) อย่างไรก็ตามเมื่อฉันใช้ฟังก์ชั่นของ R ฉันได้รับข้อผิดพลาด " เมทริกซ์การไล่ระดับสีเอกพจน์ที่การประมาณการพารามิเตอร์เริ่มต้น " ที่น่ากลัวแม้ว่าฉันจะใช้พารามิเตอร์เดียวกันกับที่ฉันใช้ในการสร้างข้อมูลตั้งแต่แรก ฉันลองใช้อัลกอริทึมที่แตกต่างกันค่าเริ่มต้นที่แตกต่างกันและพยายามใช้

Y=a+R(x-ม.)+x
nls()
optimเพื่อลดผลรวมที่เหลือของกำลังสองทั้งหมดนี้จะไม่มีประโยชน์ ฉันได้อ่านว่าสาเหตุที่เป็นไปได้สำหรับการทำเช่นนี้อาจเป็นการทำให้เกินขอบเขตของสูตร แต่ฉันไม่คิดว่ามันจะเป็น (คืออะไร)
มีใครมีข้อเสนอแนะสำหรับปัญหานี้หรือไม่? หรือนี่เป็นเพียงโมเดลที่น่าอึดอัดใจ?

ตัวอย่างสั้น ๆ :

#parameters used to generate the data
reala=-3
realb=5
realc=0.5
realr=0.7
realm=1
x=1:11 #x values - I have 11 timepoint data
#linear+exponential function
y=reala + realb*realr^(x-realm) + realc*x
#add a bit of noise to avoid zero-residual data
jitter_y = jitter(y,amount=0.2)
testdat=data.frame(x,jitter_y)

#try the regression with similar starting values to the the real parameters
linexp=nls(jitter_y~a+b*r^(x-m)+c*x, data=testdat, start=list(a=-3, b=5, c=0.5, r=0.7, m=1), trace=T)

ขอบคุณ!


2
คำแนะนำ: ดูค่าสัมประสิทธิ์ของ (สำหรับค่าคงที่ ) และทราบว่ามีการแก้ปัญหาในตระกูลเดียวกับ{คง} r b r - m = ค่าคงที่( b , m ) b = r mค่าคงที่rxRR-ม.=คงที่(,ม.)=Rม.คงที่
whuber

1
นี่ไม่ใช่โมเดลที่ระบุยกเว้นว่าหรือมีข้อ จำกัด อย่างใด ฉันคิดว่าการต้องการจะทำงานได้ r r ( 0 , 1 )RR(0,1)
มาโคร

คำตอบ:


16

ฉันเพิ่งถูกมันกัด ความตั้งใจของฉันเหมือนกันสร้างแบบจำลองเทียมและทดสอบ เหตุผลหลักคือเหตุผลที่ได้รับจาก @whuber และ @marco รูปแบบดังกล่าวไม่ได้ระบุ หากต้องการดูว่าโปรดจำไว้ว่า NLS ย่อขนาดฟังก์ชัน:

Σผม=1n(Yผม-a-Rxผม-ม.-xผม)2

บอกว่ามันจะลดลงโดยชุดของพารามิเตอร์c) ไม่ยากที่จะเห็นว่าชุดของพารามิเตอร์จะให้ค่าเดียวกันของฟังก์ชันที่จะย่อเล็กสุด ดังนั้นจึงไม่มีการระบุตัวแบบนั่นคือไม่มีวิธีแก้ปัญหาเฉพาะ(a,,ม.,R,)(a,R-ม.,0,R,)

นอกจากนี้ยังไม่ยากที่จะเห็นว่าทำไมการไล่ระดับสีเป็นเอกพจน์ แสดงว่า

(a,,R,ม.,,x)=a+Rx-ม.+x

แล้วก็

=Rx-ม.

ม.=-LNRRx-ม.

และเราได้มันมาทั้งหมดx

LNR+ม.=0

ดังนั้นเมทริกซ์

((x1)(xn))

จะไม่อยู่ในตำแหน่งเต็มและนี่คือเหตุผลที่nlsจะให้ข้อความการไล่ระดับสีเอกพจน์

ฉันใช้เวลากว่าหนึ่งสัปดาห์เพื่อหาจุดบกพร่องในรหัสของฉันที่อื่นจนกว่าฉันจะสังเกตเห็นว่าจุดบกพร่องหลักอยู่ในรูปแบบ :)


2
นี่คืออายุที่ฉันรู้ แต่เพิ่งสงสัยว่านี่หมายความว่า nls ไม่สามารถใช้กับรุ่นที่ไม่สามารถระบุตัวตนได้หรือไม่? ตัวอย่างเช่นโครงข่ายประสาทเทียม?
นับศูนย์

ฉันรู้ว่ามีโอกาสอ้วน แต่คุณสามารถแยกแยะสิ่งนี้ออกจากกลุ่มคนที่คิดถึงความจำน้อยได้หรือไม่? :) อะไรคือวิธีแก้ปัญหาของ OP แล้ว? ยอมแพ้และกลับบ้าน?
theestestecologist

2
วิธีการแก้ปัญหา OP คือการใช้พารามิเตอร์หนึ่งแทนของทั้งสองคือแทนใช้ x พารามิเตอร์ superflous เพราะมันผสานเข้าไปในคือm} บีตาR xบีตาบีตา= R - เมตรRx-ม.βRxม.ββ=R-ม.
mpiktas

@CountZero โดยทั่วไปใช่วิธีการปรับให้เหมาะสมตามปกติจะล้มเหลวหากไม่ได้ระบุพารามิเตอร์ โครงข่ายประสาทเทียมก้าวเท้าเลี่ยงปัญหานี้อย่างไรก็ตามโดยการเพิ่มข้อ จำกัด เพิ่มเติมและใช้เทคนิคที่น่าสนใจอื่น ๆ
mpiktas

ฉันคิดว่า ? มีคำตอบที่ขาดหายไปหรือไม่ ม.=-LNR Rx-ม.
Wiswit

17

แน่นอนคำตอบข้างต้นถูกต้องแน่นอน สำหรับสิ่งที่มีค่านอกเหนือไปจากคำอธิบายที่ได้รับหากคุณกำลังพยายามทำสิ่งนี้ในชุดข้อมูลเทียมตามหน้าช่วยเหลือของ nls พบได้ที่: http://stat.ethz.ch/R-manual/R-patched/ ห้องสมุด / สถิติ / html / nls.html

Nls ของ R จะไม่สามารถจัดการกับมันได้ หน้าช่วยเหลือระบุโดยเฉพาะ:

คำเตือน

อย่าใช้ nls กับข้อมูล "ศูนย์เหลือ" ประดิษฐ์

ฟังก์ชั่น nls ใช้เกณฑ์การลู่เข้าแบบสัมพัทธ์ชดเชยที่เปรียบเทียบความไม่ชัดเจนของตัวเลขที่ประมาณพารามิเตอร์ปัจจุบันกับผลรวมที่เหลือของสแควร์ส สิ่งนี้ทำงานได้ดีกับข้อมูลของแบบฟอร์ม

y = f (x, θ) + eps

(พร้อม var (eps)> 0) มันล้มเหลวในการบ่งบอกถึงการบรรจบกับข้อมูลของฟอร์ม

y = f (x, θ)

เนื่องจากเกณฑ์มีจำนวนเท่ากับการเปรียบเทียบสององค์ประกอบของข้อผิดพลาดในการปัดเศษ หากคุณต้องการทดสอบข้อมูลเทียมโปรดเพิ่มองค์ประกอบเสียงดังที่แสดงในตัวอย่างด้านล่าง

ดังนั้นจึงไม่มีเสียงรบกวน == ไม่ดีสำหรับ Rls


ยินดีต้อนรับสู่เว็บไซต์ @B_D_Dubbya ฉันใช้เสรีภาพในการจัดรูปแบบคำตอบของคุณฉันหวังว่าคุณจะไม่รังเกียจ คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขคำตอบของคุณใน CV ของที่นี่
gung - Reinstate Monica

1
ฉันตระหนักถึงปัญหานี้ - ดังนั้นการใช้ฟังก์ชั่น "กระวนกระวายใจ" เพื่อเพิ่มเสียงรบกวน
steiny
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.