เหตุใดการถดถอยเชิงเส้นจึงไม่สามารถคาดการณ์ผลลัพธ์ของลำดับที่กำหนดอย่างง่ายได้


9

เพื่อนร่วมงานของฉันส่งปัญหานี้ให้ฉันอย่างเห็นได้ชัดว่าทำให้รอบบนอินเทอร์เน็ต:

If $3 = 18, 4 = 32, 5 = 50, 6 = 72, 7 = 98$, Then, $10 =$ ?

คำตอบน่าจะเป็น 200

3*6  
4*8  
5*10  
6*12  
7*14  
8*16  
9*18  
10*20=200  

เมื่อฉันทำการถดถอยเชิงเส้นใน R:

data     <- data.frame(a=c(3,4,5,6,7), b=c(18,32,50,72,98))  
lm1      <- lm(b~a, data=data)  
new.data <- data.frame(a=c(10,20,30))  
predict  <- predict(lm1, newdata=new.data, interval='prediction')  

ฉันเข้าใจ:

  fit      lwr      upr  
1 154 127.5518 180.4482  
2 354 287.0626 420.9374  
3 554 444.2602 663.7398  

ดังนั้นรูปแบบเชิงเส้นของฉันคือการทำนาย15410=154

เมื่อฉันพล็อตข้อมูลมันดูเหมือนเป็นเส้นตรง ... แต่เห็นได้ชัดว่าฉันสันนิษฐานว่ามีบางอย่างที่ไม่ถูกต้อง

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


7
เสียงกระแอม (i) การแสดงออกของปัญหานั้นไร้สาระ 3 = 18 ได้อย่างไร แน่นอนเจตนาคือสิ่งที่ชอบ ; (ii) ถ้าคุณเห็นพอที่จะเขียน , , ฯลฯ แน่นอนคุณสามารถเห็นได้มากพอที่จะแยกคำที่สองในแต่ละคำเหล่านั้น ( , , และอื่น ๆ ) เพื่อเขียน: , , ฯลฯ และหาจุดกำลังสองทันที , . (คุณทำส่วนที่ยากขั้นตอนต่อไปก็ง่ายกว่านี้!)(3)=1818=3×632=4×86=3×28=4×218=3×3×232=4×4×2f(x)=2x2
Glen_b -Reinstate Monica

4
นอกจากนี้ปัญหาได้ระบุเกณฑ์เนื้อหาข้อมูลขั้นต่ำในคำตอบหรือไม่ ถ้าผมจำคณิตศาสตร์ของฉันได้อย่างถูกต้องมีจำนวนอนันต์ uncountably ของฟังก์ชั่นที่เหมาะสมกับจุดเหล่านี้ทั้งหมดให้คำตอบที่แตกต่างกันสำหรับ(10) โดยทั่วไปแล้วฉันไม่ใช่คนหยาบคาย แต่สมควรได้รับอีเมลตามเวลา f(10)
ดาวสว่างไสว

1
@TrevorAlexander ถ้าคุณคิดว่าคำถามนี้เสียเวลาทำไมต้องสนใจที่จะตอบคำถาม เห็นได้ชัดว่าบางคนเห็นว่าน่าสนใจ
jwg

@jwg เพราะคนที่เป็นความผิดบนอินเทอร์เน็ต ;)
ดาวรุ่ง

คำตอบ:


23

รูปแบบการถดถอยเช่นหนึ่งพอดีโดยlm()ปริยายสันนิษฐานว่ากระบวนการผลิตข้อมูลอ้างอิงคือความน่าจะเป็น คุณกำลังสมมติว่ากฎที่คุณพยายามทำตัวแบบเป็นสิ่งที่กำหนดขึ้นมา ดังนั้นจึงมีความไม่ตรงกันระหว่างสิ่งที่คุณพยายามทำกับวิธีที่คุณพยายามจะทำ

มีซอฟต์แวร์อื่น ๆ (เช่นไม่ใช่ R) ที่ออกแบบมาอย่างชัดเจนเพื่อค้นหา / ปรับฟังก์ชั่นที่ง่ายที่สุดในการกำหนดข้อมูล (ตัวอย่างเช่นEureqa ) อาจมีแพ็คเกจ R สำหรับสิ่งนั้น (ที่ฉันไม่รู้) แต่ R มีไว้สำหรับการสร้างแบบจำลองทางสถิติของข้อมูลความน่าจะเป็น

สำหรับคำตอบที่lm()ให้คุณดูสมเหตุสมผลและอาจถูกต้อง อย่างไรก็ตามฉันรวบรวมบริบทที่นำเสนอปัญหานี้อย่างมากโดยนัยว่ามันควรจะเข้าใจว่าเป็นการกำหนดขึ้น หากยังไม่เป็นเช่นนั้นและคุณสงสัยว่าเหมาะสมหรือไม่สิ่งหนึ่งที่คุณอาจสังเกตเห็นก็คือจุดข้อมูลที่รุนแรงสองจุดนั้นอยู่เหนือเส้นการถดถอยขณะที่ข้อมูลกลางอยู่ด้านล่าง สิ่งนี้ชี้ให้เห็นรูปแบบการทำงานที่ผิดพลาด สิ่งนี้สามารถเห็นได้ในส่วนที่เหลือเทียบกับพล็อตที่ติดตั้ง ( plot(lm1, which=1):

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับโมเดลที่เหมาะสมโดย @AlexWilliams มันดูดีกว่ามาก:

ป้อนคำอธิบายรูปภาพที่นี่


17
+1 พล็อตเรื่องที่เหลือบอกเล่าเรื่องราวในแบบที่ไม่ควรพลาด ที่จริงแล้วมันแสดงให้เห็นว่าเหตุใด OP ของ 'ลักษณะเชิงเส้น' มักทำให้เข้าใจผิด - ฟังก์ชันโค้งจำนวนมากสามารถดู 'เกือบจะตรง' ถ้าเราดูเพียงไม่กี่จุดที่ไม่ใกล้กับจุดเปลี่ยน หากคุณคิดว่ามันเป็นแบบเชิงเส้นให้นำบรรทัดนั้นและดูว่ามีอะไรเหลืออยู่!
Glen_b -Reinstate Monica

1
ข้อมูลที่มีประโยชน์อย่างไม่น่าเชื่อ! ขอบคุณฉันขอบคุณจริงๆ
Brett Phinney

1
สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับความแตกต่างระหว่างความน่าจะเป็นและข้อมูลที่กำหนดขึ้น การถดถอยเชิงเส้นจะพอดีและคาดการณ์ข้อมูลที่กำหนดถ้ามันเป็นเส้นตรง มันจะล้มเหลวในการทำนายที่ดีสำหรับข้อมูลความน่าจะเป็นถ้าแบบจำลองพื้นฐานเป็นกำลังสอง
jwg

3
@jwg: มันมีหลายอย่างที่ต้องทำ หรือคุณจะเรียงลำดับของn การสังเกตด้วย (n-1)พหุนามดีกรี th เมื่อไม่มีพหุนามระดับต่ำกว่าให้พอดี?
Scortchi - Reinstate Monica

ฉันไม่คิดว่าเขากำลังมองหาแบบที่สมบูรณ์แบบ เขาพยายามที่จะเข้าใจว่าเหตุใดมูลค่าที่ประเมินไว้จึงยังอยู่ไกล
jwg

22

แนวโน้มเป็นกำลังสองไม่เชิงเส้น ลอง:

lm1 <- lm(b~I(a^2), data=data)

ปรับปรุง:นี่คือรหัส

data <- data.frame(a=c(3,4,5,6,7),b=c(18,32,50,72,98))
lm1 <- lm(b~I(a^2), data=data)
new.data <- data.frame(a=c(10,20,30))
predict(lm1, newdata = new.data, interval='prediction')

และเอาท์พุท:

   fit  lwr  upr
1  200  200  200
2  800  800  800
3 1800 1800 1800

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

5
@whuber - คำถามคือทำไมตัวแบบเชิงเส้นจึงล้มเหลว มันล้มเหลวเนื่องจากรูปแบบการทำงานไม่เป็นเชิงเส้น แต่เป็นกำลังสอง ฉันต้องการที่จะให้คำตอบที่ง่ายและตรงประเด็น คำตอบของ Gung ทำงานได้ดีในการลงรายละเอียดและแสดงว่าคุณสามารถใช้แผนการที่เหลือเพื่อสร้างแบบจำลองที่ดีขึ้นได้อย่างไร (ฉันเพิ่งทำมันบนปากกาและกระดาษ) ฉันเห็นด้วยกับคำตอบของเขาที่ละเอียดและสมบูรณ์มากขึ้นและฉันก็เลิกใช้มัน
Alex Williams

13

ฉันลังเลที่จะเพิ่มคำตอบที่ยอดเยี่ยมของ Alex Williams และ gung แต่มีจุดต่อไปที่ฉันควรคิด คำถามใช้วลี 'การถดถอยเชิงเส้น' และ 'ตัวแบบเชิงเส้น' ซึ่งอาจบอกว่าพวกเขามีความหมายเหมือนกัน อย่างไรก็ตามความหมายปกติของ 'การถดถอยเชิงเส้น' หมายถึงตัวแบบการถดถอยเชิงเส้นแบบคลาสสิก (CLRM) ซึ่ง 'เชิงเส้น' หมายถึง 'เชิงเส้นในพารามิเตอร์' นี่คือเงื่อนไขของพารามิเตอร์ไม่ใช่ตัวแปรอิสระ ดังนั้นแบบจำลองกำลังสองเช่น:

Yผม=β1+β2Xผม2

ยังคงเป็นเส้นตรงในความหมายของ CLRM เพราะมันเป็นเส้นตรงในพารามิเตอร์ β1 และ β2. ในทางตรงกันข้ามรูปแบบ:

Yผม=β1+β2Xผม

เป็นเส้นตรงในพารามิเตอร์และเป็นเส้นตรง Xผม. แทนที่จะเรียกมันว่าเป็นโมเดลเชิงเส้นข้อความที่แม่นยำยิ่งกว่าก็คือมันเป็นเส้นตรงในพารามิเตอร์และมีรูปแบบการทำงานเชิงเส้น ดังนั้นจึงอาจกล่าวได้ว่าชุดข้อมูลสามารถวิเคราะห์ได้โดยแบบจำลองที่เป็นเส้นตรงในพารามิเตอร์หากมีรูปแบบสมการกำลังสอง (ดังแสดงโดย Alex Williams) แต่ไม่ใช่โดยแบบจำลองที่มีรูปแบบการทำงานเชิงเส้น


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