Nilai variabel tersembunyi regresi linear R "bernilai"


10

Ini hanya contoh yang saya temui beberapa kali, jadi saya tidak punya data sampel. Menjalankan model regresi linier di R:

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

x1adalah variabel kontinu. x2bersifat kategorikal dan memiliki tiga nilai, mis. "Rendah", "Sedang" dan "Tinggi". Namun output yang diberikan oleh R akan menjadi seperti:

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

Saya mengerti bahwa R memperkenalkan semacam pengkodean boneka pada faktor-faktor tersebut ( x2menjadi faktor). Saya hanya ingin tahu, bagaimana cara menafsirkan x2nilai "Tinggi"? Misalnya, efek apa yang x2dimiliki "Tinggi" pada variabel respons dalam contoh yang diberikan di sini?

Saya telah melihat contoh-contoh ini di tempat lain (misalnya di sini ) tetapi belum menemukan penjelasan yang dapat saya mengerti.

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
Anda mungkin mendapatkan jawaban yang baik di sini, tapi saya akan menandai ini untuk migrasi ke stats.SE, karena jawaban untuk pertanyaan ini pada dasarnya bermuara pada pemahaman bagaimana regresi linier bekerja.
joran

Ya itu cukup adil. Apakah akan lebih baik jika saya menghapusnya dan memindahkannya sendiri? Atau itu tidak perlu?

1
Anda tidak perlu melakukan apa pun. Saya menandai itu, tetapi mungkin butuh satu atau dua jam sebelum mod sampai ke sana, itu menjadi hari Minggu dan semua.
joran

3
Saya tidak akan memberikan jawaban di sini, karena pertanyaannya akan dipindahkan. Tetapi Anda dapat mencoba beberapa hal untuk memahami apa yang terjadi: 1. jalankan lm (Y ~ x1 + x2 - 1). "-1" akan menghapus intersep. 2. gunakan relevel untuk mengubah kategori referensi x2.
Manoel Galdino

Jawaban:


14

T: "... bagaimana cara menginterpretasikan nilai x2" Tinggi "? Misalnya, apa pengaruh x2" Tinggi "terhadap variabel respons dalam contoh yang diberikan di sini ??

A: Anda tidak ragu-ragu memperhatikan bahwa tidak ada menyebutkan x2 = "Tinggi" dalam output. Saat ini x2High dipilih sebagai "kasus dasar". Itu karena Anda menawarkan variabel faktor dengan pengkodean default untuk level meskipun pemesanan yang seharusnya L / M / H lebih alami ke pikiran manusia. Tapi "H" menjadi leksikal sebelum "L" dan "M" dalam alfabet, dipilih oleh R sebagai kasus dasar.

Karena 'x2' tidak dipesan, masing-masing kontras yang dilaporkan relatif terhadap x2 = "Tinggi" sehingga x2 == "Rendah" diperkirakan -0,78 relatif terhadap x2 = "Tinggi". Saat ini Intercept adalah nilai estimasi "Y" ketika x2 = "Tinggi" dan x1 = 0. Anda mungkin ingin menjalankan kembali regresi Anda setelah mengubah level pemesanan (tetapi tidak membuat faktor dipesan).

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

Maka perkiraan 'Sedang' dan 'Tinggi' Anda akan lebih sesuai dengan yang Anda harapkan.

Sunting: Ada pengaturan pengkodean alternatif (atau pengaturan matriks model yang lebih akurat.) Pilihan default untuk kontras dalam R adalah "kontras pengobatan" yang menentukan satu tingkat faktor (atau satu kombinasi tertentu dari tingkat faktor) sebagai tingkat referensi dan laporan estimasi perbedaan rata-rata untuk level atau kombinasi lainnya. Anda dapat, namun memiliki tingkat referensi menjadi rata-rata keseluruhan dengan memaksa Intercept menjadi 0 (tidak disarankan) atau menggunakan salah satu dari pilihan kontras lainnya:

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

Anda dapat memilih kontras yang berbeda untuk faktor-faktor yang berbeda, meskipun hal itu tampaknya akan membebankan tambahan beban interpretatif. S-Plus menggunakan kontras Helmert secara default, dan SAS menggunakan kontras pengobatan tetapi memilih tingkat faktor terakhir daripada yang pertama sebagai tingkat referensi.


Itu masuk akal. Saya kira jelas x2tidak bisa memiliki "tidak ada nilai" karena itu pasti salah satu dari "Tinggi", "Sedang" atau "Rendah". Terima kasih atas jawaban anda.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.