คำถามติดแท็ก nls

2
ข้อผิดพลาดการไล่ระดับสีเอกพจน์ใน nls ด้วยค่าเริ่มต้นที่ถูกต้อง
ฉันพยายามใส่เส้นโค้ง + เอ็กซ์โพเนนเชียลให้พอดีกับข้อมูลบางอย่าง เป็นการเริ่มต้นฉันพยายามทำสิ่งนี้กับข้อมูลเทียมบางอย่าง ฟังก์ชั่นคือ: มันเป็นเส้นโค้งเอ็กซ์โพเนนเชียลได้อย่างมีประสิทธิภาพกับส่วนเชิงเส้นเช่นเดียวกับพารามิเตอร์ shift แนวนอนเพิ่มเติม ( m ) อย่างไรก็ตามเมื่อฉันใช้ฟังก์ชั่นของ R ฉันได้รับข้อผิดพลาด " เมทริกซ์การไล่ระดับสีเอกพจน์ที่การประมาณการพารามิเตอร์เริ่มต้น " ที่น่ากลัวแม้ว่าฉันจะใช้พารามิเตอร์เดียวกันกับที่ฉันใช้ในการสร้างข้อมูลตั้งแต่แรก ฉันลองใช้อัลกอริทึมที่แตกต่างกันค่าเริ่มต้นที่แตกต่างกันและพยายามใช้Y= a + b ⋅ r( x - m )+ c ⋅ xY=a+ข⋅R(x-ม.)+ค⋅xy=a+b\cdot r^{(x-m)}+c\cdot xnls()optimเพื่อลดผลรวมที่เหลือของกำลังสองทั้งหมดนี้จะไม่มีประโยชน์ ฉันได้อ่านว่าสาเหตุที่เป็นไปได้สำหรับการทำเช่นนี้อาจเป็นการทำให้เกินขอบเขตของสูตร แต่ฉันไม่คิดว่ามันจะเป็น (คืออะไร) มีใครมีข้อเสนอแนะสำหรับปัญหานี้หรือไม่? หรือนี่เป็นเพียงโมเดลที่น่าอึดอัดใจ? ตัวอย่างสั้น ๆ : #parameters used to generate the data reala=-3 realb=5 realc=0.5 …

2
เปลี่ยนการวิเคราะห์จุดโดยใช้ R's nls ()
ฉันกำลังพยายามใช้การวิเคราะห์ "จุดเปลี่ยน" หรือการถดถอยหลายเฟสที่ใช้nls()ในอาร์ นี่คือบางส่วนข้อมูลปลอมผมได้ทำ สูตรที่ฉันต้องการใช้เพื่อให้พอดีกับข้อมูลคือ: y=β0+β1x+β2max(0,x−δ)y=β0+β1x+β2max(0,x−δ)y = \beta_0 + \beta_1x + \beta_2\max(0,x-\delta) สิ่งนี้ควรจะทำคือพอดีกับข้อมูลได้ถึงจุดหนึ่งที่มีการตัดบางอย่างและความลาดชัน ( β0β0\beta_0และβ1β1\beta_1 ) แล้วหลังจากที่ค่า x บางอย่าง ( δδ\delta ) เพิ่มความลาดชันโดย\β2β2\beta_2นั่นคือสิ่งที่สูงสุดทั้งหมดเป็นเรื่องเกี่ยวกับ ก่อนจุดδδ\deltaมันจะเท่ากับ 0 และβ2β2\beta_2จะถูกทำให้เป็นศูนย์ ดังนั้นนี่คือหน้าที่ของฉันในการทำสิ่งนี้: changePoint <- function(x, b0, slope1, slope2, delta){ b0 + (x*slope1) + (max(0, x-delta) * slope2) } และฉันพยายามทำให้พอดีกับแบบนี้ nls(y ~ changePoint(x, b0, slope1, slope2, …

2
จะทดสอบผลกระทบของตัวแปรการจัดกลุ่มด้วยตัวแบบที่ไม่ใช่เชิงเส้นได้อย่างไร?
ฉันมีคำถามเกี่ยวกับการใช้ตัวแปรการจัดกลุ่มในรูปแบบที่ไม่ใช่เชิงเส้น เนื่องจากฟังก์ชั่น nls () ไม่อนุญาตให้ใช้กับตัวแปรปัจจัยฉันพยายามดิ้นรนเพื่อหาว่าใครสามารถทดสอบผลกระทบของปัจจัยที่มีต่อแบบจำลองได้ ฉันได้รวมตัวอย่างด้านล่างที่ฉันต้องการให้พอดีกับรูปแบบการเติบโต "ตามฤดูกาล von Bertalanffy" กับการรักษาการเจริญเติบโตที่แตกต่างกัน (ส่วนใหญ่ใช้กับการเจริญเติบโตของปลา) ฉันต้องการทดสอบผลกระทบของทะเลสาบที่ปลาโตขึ้นรวมถึงอาหารที่ได้รับ (เป็นเพียงตัวอย่างเทียม) ฉันคุ้นเคยกับวิธีแก้ปัญหานี้ - การใช้แบบจำลองการทดสอบแบบทดสอบ F เปรียบเทียบกับข้อมูลที่ถูกรวบรวมเทียบกับความเหมาะสมที่แยกจากกันโดย Chen et al (1992) (ARSS - "การวิเคราะห์ผลรวมที่เหลือของกำลังสอง") กล่าวอีกนัยหนึ่งสำหรับตัวอย่างด้านล่าง ฉันคิดว่ามีวิธีที่ง่ายกว่าในการใช้ R โดยใช้ nlme () แต่ฉันพบปัญหา ก่อนอื่นเลยโดยใช้ตัวแปรการจัดกลุ่มระดับความอิสระนั้นสูงกว่าที่ฉันจะได้รับจากการปรับรุ่นแยกต่างหาก ประการที่สองฉันไม่สามารถซ้อนตัวแปรการจัดกลุ่มได้ - ฉันไม่เห็นว่าปัญหาของฉันอยู่ที่ไหน ความช่วยเหลือใด ๆ ที่ใช้ nlme หรือวิธีการอื่น ๆ นั้นได้รับการชื่นชมอย่างมาก ด้านล่างเป็นรหัสสำหรับตัวอย่างของฉันประดิษฐ์: ###seasonalized von Bertalanffy growth model soVBGF …
15 r  mixed-model  nls 

1
วิธีการลดผลรวมที่เหลือของกำลังสองของการยกกำลังสองได้อย่างไร?
ฉันมีข้อมูลต่อไปนี้และต้องการให้พอดีกับรูปแบบการเติบโตแบบเอ็กซ์โปเนนเชียลเชิงลบของมัน: Days <- c( 1,5,12,16,22,27,36,43) Emissions <- c( 936.76, 1458.68, 1787.23, 1840.04, 1928.97, 1963.63, 1965.37, 1985.71) plot(Days, Emissions) fit <- nls(Emissions ~ a* (1-exp(-b*Days)), start = list(a = 2000, b = 0.55)) curve((y = 1882 * (1 - exp(-0.5108*x))), from = 0, to =45, add = T, col = "green", …

4
รับค่าเริ่มต้นที่ถูกต้องสำหรับโมเดล nls ใน R
ฉันกำลังพยายามจัดทำแบบจำลองกฎหมายพลังงานอย่างง่ายกับชุดข้อมูลที่เป็นดังนี้: mydf: rev weeks 17906.4 1 5303.72 2 2700.58 3 1696.77 4 947.53 5 362.03 6 เป้าหมายคือการส่งผ่านสายไฟฟ้าและใช้มันเพื่อทำนายrevvlaues สำหรับสัปดาห์ต่อ ๆ ไป มีงานวิจัยมากมายพาฉันไปที่nlsฟังก์ชั่นซึ่งฉันได้ปฏิบัติดังนี้ newMod <- nls(rev ~ a*weeks^b, data=modeldf, start = list(a=1,b=1)) predict(newMod, newdata = data.frame(weeks=c(1,2,3,4,5,6,7,8,9,10))) ในขณะที่งานนี้สำหรับlmรุ่นที่ผมได้รับsingular gradientข้อผิดพลาดที่ผมเข้าใจจะทำอย่างไรกับค่าเริ่มต้นของฉันและa bฉันลองใช้ค่าที่แตกต่างกันไปจนถึงการพล็อตเรื่องนี้ใน Excel ผ่าน lone รับสมการจากนั้นใช้ค่าจากสมการ แต่ฉันยังคงได้รับข้อผิดพลาด ฉันดูคำตอบจำนวนมากเช่นนี้และลองคำตอบที่สอง (ไม่เข้าใจคำตอบแรก) แต่ไม่มีผลลัพธ์ ฉันสามารถใช้ความช่วยเหลือบางอย่างที่นี่เกี่ยวกับวิธีค้นหาค่าเริ่มต้นที่ถูกต้อง หรือมิฉะนั้นฉันสามารถใช้ฟังก์ชั่นอื่นแทน nls ได้ ในกรณีที่คุณต้องการสร้างใหม่mydfได้อย่างง่ายดาย: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.