การติดตั้งอุปกรณ์ในรุ่น R ที่ค่าสัมประสิทธิ์อยู่ภายใต้ข้อ จำกัด เชิงเส้น


16

ฉันจะกำหนดสูตรแบบจำลองใน R ได้อย่างไรเมื่อมีข้อ จำกัด เชิงเส้นตรงหนึ่งข้อ (หรือมากกว่า) ที่สัมพันธ์กับสัมประสิทธิ์ ตัวอย่างเช่นสมมติว่าคุณรู้ว่า b1 = 2 * b0 ในรูปแบบการถดถอยเชิงเส้นอย่างง่าย

ขอขอบคุณ!

คำตอบ:


16

สมมติว่าแบบจำลองของคุณคือ

Y(t)=β0+β1X1(t)+β2X2(t)+ε(t)

และคุณวางแผนที่จะ จำกัด ค่าสัมประสิทธิ์เช่น:

β1=2β2

แทรกข้อ จำกัด เขียนแบบการถดถอยเดิมที่คุณจะได้รับ

Y(t)=β0+2β2X1(t)+β2X2(t)+ε(t)

Y(t)=β0+β2(2X1(t)+X2(t))+ε(t)

Z(t)=2X1(t)+X2(t)

Y(t)=β0+β2Z(t)+ε(t)

ด้วยวิธีนี้คุณสามารถจัดการข้อ จำกัด ที่แน่นอนใด ๆ ได้เนื่องจากจำนวนสัญญาณเท่ากันจะช่วยลดจำนวนพารามิเตอร์ที่ไม่รู้จักด้วยจำนวนเดียวกัน

การเล่นกับสูตร R คุณสามารถทำได้โดยตรงโดยฟังก์ชัน I ()

lm(formula = Y ~ I(1 + 2*X1) + X2 + X3 - 1, data = <your data>) 
lm(formula = Y ~ I(2*X1 + X2) + X3, data = <your data>)

นี่ค่อนข้างชัดเจน แต่คำถามก็เสนอข้อ จำกัด ระหว่าง b0 และ b1 ฉันควรสร้างตัวแปรใหม่ Z = 2X + 1 และพอดีกับโมเดลโดยไม่ต้องมีการสกัดกั้นหรือไม่?
George Dontas

2
ฉันคิดว่าปกติฉันจะใช้แทน eval ในสูตรคือ Y ~ I (1 + 2 * X1) + X2 + X3-1
mpiktas

@ gd047: ฉันได้รับการปรับปรุงด้วยชิ้นส่วนของรหัสใช่มันเป็นอย่างที่คุณพูด @mpiktas: จะเปลี่ยนแปลงสิ่งนี้ใช่มันจะสั้นกว่า;)
Dmitrij Celov

4
นี่เป็นคำตอบที่ดีสำหรับวิธีการทางทฤษฎีทั่วไป แต่สำหรับวิธีที่ง่ายกว่าในการนำสมมติฐานเหล่านี้ไปใช้ใน R ซึ่งมีข้อได้เปรียบที่ไม่จำเป็นต้องใช้ใครสักคนในการประเมินแบบจำลองต่างๆดูlinearHypothesis()ในcarแพ็คเกจ
Jake Westfall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.