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.

ttnphns
sumber
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.

DWIN
sumber
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.