Ini bukan masalah khusus untuk R. R menggunakan tampilan koefisien konvensional.
Ketika Anda membaca output regresi tersebut (dalam makalah, buku teks, atau dari perangkat lunak statistik), Anda perlu mengetahui variabel mana yang "kontinu" dan mana yang "kategorikal":
Yang "kontinyu" secara eksplisit numerik dan nilai numeriknya digunakan apa adanya dalam penyesuaian regresi.
Variabel "kategoris" dapat dari jenis apa pun , termasuk yang numerik! Apa yang membuat mereka kategorikal adalah bahwa perangkat lunak memperlakukan mereka sebagai "faktor": yaitu, setiap nilai berbeda yang ditemukan dianggap sebagai indikator sesuatu yang berbeda.
Sebagian besar perangkat lunak akan memperlakukan nilai-nilai non-numerik (seperti string) sebagai faktor. Sebagian besar perangkat lunak dapat dibujuk untuk memperlakukan nilai numerik sebagai faktor juga. Misalnya, kode layanan pos (kode ZIP di AS) terlihat seperti angka tetapi sebenarnya hanya kode untuk satu set kotak surat; tidak masuk akal untuk menambah, mengurangi, dan melipatgandakan kode ZIP dengan angka lain! (Fleksibilitas ini adalah sumber kesalahan umum: jika Anda tidak hati-hati, atau tidak disengaja, perangkat lunak Anda dapat memperlakukan variabel yang Anda anggap kategorikal sebagai kontinu, atau sebaliknya. Berhati-hatilah!)
Namun demikian, variabel kategori harus diwakili dalam beberapa cara sebagai angka untuk menerapkan algoritma pemasangan. Ada banyak cara untuk menyandikannya . Kode dibuat menggunakan "variabel dummy." Cari tahu lebih lanjut tentang penyandian variabel dummy dengan mencari di situs ini; detailnya tidak penting di sini.
Dalam pertanyaan kita diberitahu itu h
dan f
merupakan nilai kategorikal ("diskrit"). Secara default, log(d)
dan a
berkelanjutan. Hanya itu yang perlu kita ketahui. Modelnya adalah
y= - 0,679695+ 1,791294 log ( d)+ 0,870735- 0,447570+ 0,542033+ 0,037362 a - 0,588362+ 0,816825+ 0,534440- 0,085658 a - 0,034970 a - 0,040637 a jika h = h1 jika h = h2 jika h = h3 jika f= f1 jika f= f2 jika f= f3 jika h = h1 jika h = h2 jika h = h3
Aturan yang diterapkan di sini adalah:
Istilah "memotong", jika muncul, adalah konstanta aditif (baris pertama).
Variabel kontinu dikalikan dengan koefisien mereka, bahkan dalam "interaksi" seperti h1:a
, h2:a
, dan h3:a
istilah. (Ini menjawab pertanyaan awal.)
Setiap variabel kategori (atau faktor) dimasukkan hanya untuk kasus-kasus di mana nilai faktor itu muncul.
Misalnya, misalkan , , , dan . Nilai pas dalam model ini adalahcatatan( d) = 2h = h3a = - 1f= f2
y^= - 0,6797 + 1,7913 × ( 2 ) + 0,5420 + 0,0374 × ( - 1 ) + 0,8168 - 0,0406 × ( - 1 ) .
Perhatikan bagaimana sebagian besar koefisien model tidak muncul dalam perhitungan, karena h
dapat mengambil tepat satu dari tiga nilai , , dan oleh karena itu hanya satu dari tiga koefisien berlaku untuk dan hanya salah satu dari tiga koefisien akan berlipat ganda dalam interaksi; sama halnya, hanya satu koefisien yang berlaku untuk setiap kasus tertentu.h 2 h 3 ( 0,870735 , - 0,447570 , 0,542033 ) ( - 0,085658 , - 0,034970 , - 0,040637 )h1h2h3( 0,870735 , - 0,447570 , 0,542033 )h
( - 0,085658 , - 0,034970 , - 0,040637 )a
h:a
f
g1
c
mungkin membingungkan dalam kasus khusus ini, karena saya memilih dua huruf untuk mewakili level g1, tetapi biasanya cukup intuitif - dan itu murni tex sehingga kita masih dapat mengedit file sumber setelahnya). Terlampir adalah ringkasan lain di mana saya diubahg1
sehingga sekarang menjadi faktor empat tingkat. Namun, dengan 0/1 label yang mungkin lebih membingungkan .Anda dapat memeriksa "kontras" Anda sebagai default dengan
options()
dan mencari:Jika kontras Anda yang tidak berurutan ditetapkan sebagai
contr.treatment
(sebagaimana mestinya kecuali Anda telah mengubahnya), maka tingkat pertama dari masing-masing faktor Anda akan ditetapkan sebagai garis dasar. Anda hanya akan diberikan perkiraan untuk koefisien di depan variabel dummy yang dibuat untuk lainnya tingkat faktor. Akibatnya, koefisien-koefisien tersebut akan "seberapa berbeda rata-rata dengan variabel respons pada tingkat faktor ini, dibandingkan dengan tingkat dasar faktor tersebut, setelah mengendalikan semua hal lain dalam model".Saya menduga dari output Anda ada a
h0
danf0
yang merupakan level dasar untuk h dan f (kecuali jika Anda memiliki opsi non-default untuk kontras, dalam hal ini ada beberapa kemungkinan; coba?contr.treatment
bantuan).Ini mirip dengan interaksinya. Jika paragraf saya sebelumnya benar, estimasi yang diberikan
a
akan benar-benar menjadi kemiringana
kapanh=h0
. Perkiraan yang diberikan dalam ringkasan yang berlaku untuk interaksi adalah seberapa banyak perubahan kemiringan untuk berbagai tingkath
.Jadi, dalam contoh Anda di mana h = h1 dan f = f2, coba:
Oh, dan Anda dapat menggunakan
predict()
untuk melakukan banyak hal berguna juga ... jika Anda benar-benar ingin memprediksi sesuatu (daripada menuliskan persamaan untuk laporan). Cobalah?predict.lm
untuk melihat apa yangpredict()
dilakukan oleh objek yang dibuatlm
.sumber
options()
. Anda harus menggulir banyak sampah untuk menemukan yang Anda butuhkan. Anda dapat mencobaoptions()$contrasts
, yang hanya akan menghasilkan apa yang Anda inginkan.