การถดถอยเชิงเส้นกับปัจจัยใน R


10

ฉันพยายามที่จะเข้าใจว่าปัจจัยการทำงานในอาร์ว่ากันว่าฉันต้องการที่จะเรียกใช้การถดถอยโดยใช้ข้อมูลตัวอย่างบางอย่างใน R:

> data(CO2)
> colnames(CO2)
[1] "Plant"     "Type"      "Treatment" "conc"      "uptake"   
> levels(CO2$Type)
[1] "Quebec"      "Mississippi"
> levels(CO2$Treatment)
[1] "nonchilled" "chilled"   
> lm(uptake ~ Type + Treatment, data = CO2)

Call:
lm(formula = uptake ~ Type + Treatment, data = CO2)

Coefficients:
 (Intercept)   TypeMississippi  Treatmentchilled  
       36.97            -12.66             -6.86  

ฉันเข้าใจว่าTypeMississippiและTreatmentchilledได้รับการปฏิบัติเหมือนเป็นบูลีน: สำหรับแต่ละแถวการดูดซับเริ่มต้นคือ36.97และเราลบ12.66ถ้ามันเป็นประเภทมิสซิสซิปปี้และ6.86ถ้ามันเย็น ฉันมีปัญหาในการทำความเข้าใจบางสิ่งเช่นนี้:

 > lm(uptake ~ Type * Treatment, data = CO2)

 Call:
 lm(formula = uptake ~ Type * Treatment, data = CO2)

 Coefficients:
                 (Intercept)                   TypeMississippi  
                      35.333                            -9.381  
            Treatmentchilled  TypeMississippi:Treatmentchilled  
                      -3.581                            -6.557  

การคูณสองปัจจัยเข้าด้วยกันหมายความว่าlmอะไร

คำตอบ:


17

ในการอธิบายอย่างละเอียดเกี่ยวกับคำตอบของ @ John: ในสูตรของ R คุณมีตัวดำเนินการบางอย่างที่คุณสามารถนำไปใช้กับคำศัพท์: "+" เพียงเพิ่มพวกเขา ":" หมายความว่าคุณเพิ่มคำ (หรือหลายคำ) ที่อ้างถึงปฏิสัมพันธ์ของพวกเขา ดูด้านล่าง), "*" หมายถึงทั้งสองอย่างนั่นคือ: "เอฟเฟ็กต์หลัก" ถูกเพิ่มเข้ามาและคำศัพท์โต้ตอบจะถูกเพิ่มเช่นกัน

ปฏิสัมพันธ์นี้หมายความว่าอย่างไร ในกรณีของตัวแปรต่อเนื่องมันเป็นคำที่เพิ่มเข้ามาซึ่งก็คือตัวคูณของสองตัวแปร หากคุณมีส่วนสูงและน้ำหนักเป็นตัวทำนายและใช้out ~ height * weightเป็นสูตรโมเดลเชิงเส้นจะมี 'ตัวแปร' สามตัวคือน้ำหนักส่วนสูงและผลิตภัณฑ์ (มีการโต้ตอบ แต่มีความสนใจน้อยกว่าที่นี่)

แม้ว่าฉันจะแนะนำเป็นอย่างอื่นข้างต้น: วิธีนี้ทำงานได้เหมือนกันทุกประการสำหรับตัวแปรเด็ดขาด แต่ตอนนี้ 'ผลิตภัณฑ์' ใช้กับตัวแปรจำลอง (ชุด) สำหรับแต่ละตัวแปรเด็ดขาด สมมติว่าส่วนสูงและน้ำหนักของคุณเป็นหมวดหมู่แต่ละหมวดมีสามหมวดหมู่ (S (ห้างสรรพสินค้า), M (edium) และ L (arge) จากนั้นในโมเดลเชิงเส้นแต่ละชุดจะถูกแทนด้วยชุดของตัวแปรจำลองสองตัวที่เป็น 0 หรือ 1 (มีวิธีการเข้ารหัสอื่น ๆ แต่นี่เป็นค่าเริ่มต้นใน R และใช้กันมากที่สุด) สมมติว่าเราใช้ S เป็นหมวดหมู่อ้างอิงสำหรับทั้งสองจากนั้นเราจะมีความสูงสองตัวในแต่ละครั้ง M และส่วนสูง L (และคล้ายกับน้ำหนัก)

ดังนั้นตอนนี้แบบจำลองจะout ~ height * weightมี 4 หุ่นจำลอง + ผลิตภัณฑ์ทั้งหมดของการรวมกันของหุ่นจำลอง (ฉันไม่ได้เขียนสัมประสิทธิ์ที่นี่อย่างชัดเจนพวกมันบอกเป็นนัย):

(intercept) + height.M + height.L + weight.M + weight.L + height.M * weight.M + height.L * weight.M + height.M * weight.L + height.L * weight.L.

ในบรรทัดข้างต้น '*' ตอนนี้หมายถึงผลิตภัณฑ์ที่เรียบง่าย แต่เวลาของหุ่นดังนั้นแต่ละผลิตภัณฑ์เองก็เป็น 1 เช่นกัน (เมื่อปัจจัยทั้งหมดคือ 1) หรือ 0 (เมื่ออย่างน้อยหนึ่งไม่ได้)

ในกรณีนี้ 8 'ตัวแปร' เปิดการใช้งานที่แตกต่างกัน (ค่าเฉลี่ย) ผลลัพธ์ในชุดทั้งหมดของสองตัวแปร: ผลกระทบของการมีน้ำหนักขนาดใหญ่อยู่ในขณะนี้ไม่เหมือนกันสำหรับคนขนาดเล็ก (สำหรับพวกเขาผลกระทบที่จะเกิดขึ้นได้ง่ายๆโดยคำweight.L) เช่น สำหรับคนขนาดใหญ่ (ที่นี่ผลกระทบคือweight.L + height.L * weight.L)


7

ติดตามคำตอบของจอห์นสูตรใน LM ไม่ได้ใช้สัญกรณ์คณิตศาสตร์พวกเขากำลังใช้สัญกรณ์สัญลักษณ์ขนาดกะทัดรัดเพื่ออธิบายแบบจำลองเชิงเส้น (เฉพาะสัญกรณ์วิลกินสันโรเจอร์สมีสรุปสั้นที่ดีที่นี่http: //www.physiol .ox.ac.uk / ~ raac / R.shtml )

โดยทั่วไปรวมถึง A * B ในสูตรโมเดลหมายความว่าคุณเหมาะสม A, B และ A: B (การโต้ตอบของ A และ B) หากระยะเวลาการโต้ตอบมีความสำคัญทางสถิติก็แสดงให้เห็นว่าผลกระทบของการรักษาจะแตกต่างกันสำหรับแต่ละประเภท


3

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


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