R ตัวแปรเชิงเส้นถดถอยหมวดหมู่ "ซ่อน" ค่า


10

นี่เป็นเพียงตัวอย่างที่ฉันเจอหลายครั้งดังนั้นฉันจึงไม่มีข้อมูลตัวอย่าง ใช้แบบจำลองการถดถอยเชิงเส้นใน R:

a.lm = lm(Y ~ x1 + x2)

x1เป็นตัวแปรต่อเนื่อง x2เป็นหมวดหมู่และมีสามค่าเช่น "ต่ำ", "ปานกลาง" และ "สูง" อย่างไรก็ตามเอาต์พุตที่กำหนดโดย R จะเป็นดังนี้:

summary(a.lm)
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.521     0.20       1.446   0.19        
x1            -0.61     0.11       1.451   0.17
x2Low         -0.78     0.22       -2.34   0.005
x2Medium      -0.56     0.45       -2.34   0.005

ฉันเข้าใจว่า R แนะนำการเข้ารหัสแบบหลอกบางอย่างเกี่ยวกับปัจจัยดังกล่าว ( x2เป็นปัจจัย) ฉันแค่สงสัยว่าฉันจะตีความx2ค่า "สูง" ได้อย่างไร? ตัวอย่างเช่น "High" x2มีผลกระทบอะไรกับตัวแปรตอบกลับในตัวอย่างที่ให้ไว้ที่นี่?

ฉันเห็นตัวอย่างของที่อื่น (เช่นที่นี่ ) แต่ไม่พบคำอธิบายที่ฉันเข้าใจ

r  regression  categorical-data  regression-coefficients  categorical-encoding  machine-learning  random-forest  anova  spss  r  self-study  bootstrap  monte-carlo  r  multiple-regression  partitioning  neural-networks  normalization  machine-learning  svm  kernel-trick  self-study  survival  cox-model  repeated-measures  survey  likert  correlation  variance  sampling  meta-analysis  anova  independence  sample  assumptions  bayesian  covariance  r  regression  time-series  mathematical-statistics  graphical-model  machine-learning  linear-model  kernel-trick  linear-algebra  self-study  moments  function  correlation  spss  probability  confidence-interval  sampling  mean  population  r  generalized-linear-model  prediction  offset  data-visualization  clustering  sas  cart  binning  sas  logistic  causality  regression  self-study  standard-error  r  distributions  r  regression  time-series  multiple-regression  python  chi-squared  independence  sample  clustering  data-mining  rapidminer  probability  stochastic-processes  clustering  binary-data  dimensionality-reduction  svd  correspondence-analysis  data-visualization  excel  c#  hypothesis-testing  econometrics  survey  rating  composite  regression  least-squares  mcmc  markov-process  kullback-leibler  convergence  predictive-models  r  regression  anova  confidence-interval  survival  cox-model  hazard  normal-distribution  autoregressive  mixed-model  r  mixed-model  sas  hypothesis-testing  mediation  interaction 

3
คุณอาจได้รับคำตอบที่ดีที่นี่ แต่ฉันจะตั้งค่าสถานะนี้สำหรับการโยกย้ายไปยัง stats.SE เนื่องจากคำตอบของคำถามนี้จำเป็นอย่างยิ่งที่จะต้องเข้าใจว่าการถดถอยเชิงเส้นเป็นอย่างไร
joran

ใช่นั่นยุติธรรมเพียงพอ จะดีกว่าไหมถ้าฉันลบมันและย้ายมันไปเอง หรือว่าไม่จำเป็น?

1
คุณไม่จำเป็นต้องทำอะไรเลย ฉันติดธงทำเครื่องหมาย แต่อาจใช้เวลาหนึ่งหรือสองชั่วโมงก่อนที่ตัวดัดแปลงจะไปถึงตัวมันซึ่งเป็นวันอาทิตย์
joran

3
ฉันจะไม่ให้คำตอบที่นี่เพราะคำถามจะถูกย้าย แต่คุณสามารถลองบางสิ่งเพื่อทำความเข้าใจว่าเกิดอะไรขึ้น: 1. เรียกใช้ lm (Y ~ x1 + x2 - 1) "-1" จะลบการสกัดกั้น 2. ใช้ความเกี่ยวข้องเพื่อเปลี่ยนหมวดหมู่อ้างอิงของ x2
Manoel Galdino

คำตอบ:


14

ถาม: "... ฉันจะตีความค่า x2" High "ได้อย่างไรตัวอย่างเช่น" High "x2s จะมีผลอย่างไรต่อตัวแปรตอบกลับในตัวอย่างที่ให้ไว้ที่นี่ ??

ตอบ: คุณไม่ต้องสงสัยเลยว่ามีการเอ่ยถึง x2 = "สูง" ในผลลัพธ์ ในขณะนี้ x2 สูงได้รับเลือกเป็น "กรณีฐาน" นั่นเป็นเพราะคุณเสนอตัวแปรปัจจัยพร้อมการเข้ารหัสเริ่มต้นสำหรับระดับแม้ว่าการสั่งซื้อจะเป็น L / M / H ตามธรรมชาติมากขึ้นต่อจิตใจมนุษย์ แต่คำว่า "H" นั้นเป็นคำศัพท์ก่อนตัวอักษร "L" และ "M" ทั้งสองตัวถูกเลือกโดย R เป็นตัวพิมพ์ใหญ่

เนื่องจากไม่ได้รับคำสั่ง 'x2' ความแตกต่างที่รายงานแต่ละรายการจึงสัมพันธ์กับ x2 = "สูง" และ x2 == "ต่ำ" จึงประมาณที่ -0.78 เมื่อเทียบกับ x2 = "สูง" ในขณะนี้การสกัดกั้นคือค่าโดยประมาณของ "Y" เมื่อ x2 = "สูง" และ x1 = 0 คุณอาจต้องการเรียกใช้การถดถอยของคุณอีกครั้งหลังจากเปลี่ยนระดับการสั่งซื้อ (แต่ไม่ใช่ปัจจัยที่สั่ง)

x2a = factor(x2, levels=c("Low", "Medium", "High"))

จากนั้นประมาณการ 'ปานกลาง' และ 'สูง' ของคุณจะสอดคล้องกับสิ่งที่คุณคาดหวังมากขึ้น

แก้ไข: มีการจัดเรียงการเข้ารหัสทางเลือก (หรือการจัดเรียงอย่างแม่นยำมากกว่าของเมทริกซ์โมเดล) ตัวเลือกเริ่มต้นสำหรับความแตกต่างใน R คือ "การรักษาแตกต่าง" ซึ่งระบุระดับปัจจัยหนึ่ง (หรือการรวมกันของระดับปัจจัย) เป็นระดับ ความแตกต่างของค่าเฉลี่ยโดยประมาณสำหรับระดับหรือชุดค่าผสมอื่น ๆ อย่างไรก็ตามคุณสามารถมีระดับการอ้างอิงเป็นค่าเฉลี่ยโดยการบังคับให้ Intercept เป็น 0 (ไม่แนะนำ) หรือใช้หนึ่งในตัวเลือกความคมชัดอื่น ๆ :

?contrasts
?C   # which also means you should _not_ use either "c" or "C" as variable names.

คุณสามารถเลือกความแตกต่างที่แตกต่างกันสำหรับปัจจัยต่าง ๆ แม้ว่าการทำเช่นนั้นดูเหมือนจะกำหนดภาระการตีความเพิ่มเติม S-Plus ใช้ความแตกต่างของ Helmert โดยค่าเริ่มต้นและ SAS ใช้ความแตกต่างของการรักษา แต่เลือกระดับปัจจัยสุดท้ายมากกว่าระดับแรกเป็นระดับอ้างอิง


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