Berbagai cara untuk menulis istilah interaksi dalam lm?


42

Saya punya pertanyaan tentang yang merupakan cara terbaik untuk menentukan interaksi dalam model regresi. Pertimbangkan data berikut:

d <- structure(list(r = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
     1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("r1","r2"),
     class = "factor"), s = structure(c(1L, 1L, 1L, 1L, 1L, 
     2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), 
    .Label = c("s1","s2"), class = "factor"), rs = structure(c(1L, 1L,
     1L,1L, 1L,2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L),
    .Label = c("r1s1","r1s2", "r2s1", "r2s2"), class = "factor"), 
     y = c(19.3788027518437, 23.832287726332, 26.2533235300492,
     15.962906892112, 24.2873740664331, 28.5181676764727, 25.2757801195961,
     25.3601044326474, 25.3066440027202, 24.3298865128677, 32.5684219007394,
     31.0048406654209, 31.671238316086, 34.1933764518288, 36.8784821769123,
     41.6691435168277, 40.4669714825801, 39.2664137501106, 39.4884849591932,
     49.247505535468)), .Names = c("r","s", "rs", "y"), 
     row.names = c(NA, -20L), class = "data.frame")

Dua cara yang setara untuk menentukan model dengan interaksi adalah:

lm0 <- lm(y ~ r*s, data=d)
lm1 <- lm(y ~ r + s + r:s, data=d)

Pertanyaan saya adalah apakah saya dapat menentukan interaksi mempertimbangkan variabel baru (rs) dengan tingkat interaksi yang sama:

lm2 <- lm(y ~ r + s + rs, data=d)

Apa keuntungan / kerugian dari pendekatan ini? Dan mengapa hasil dari dua pendekatan ini berbeda?

summary(lm1)

lm(formula = y ~ r + s + r:s, data = d, x = TRUE)
            coef.est coef.se
(Intercept) 21.94     1.46  
rr2         11.32     2.07  
ss2          3.82     2.07  
rr2:ss2      4.95     2.92  
---
n = 20, k = 4
residual sd = 3.27, R-Squared = 0.87


summary(lm2)

lm(formula = y ~ r + s + rs, data = d, x = TRUE)
            coef.est coef.se
(Intercept) 21.94     1.46  
rr2         11.32     2.07  
ss2          8.76     2.07   # ss2 coef is different from lm1
rsr1s2      -4.95     2.92  
---
n = 20, k = 4
residual sd = 3.27, R-Squared = 0.87

Maksudmu itu rsdidefinisikan interaction(r, s)?
chl

Mungkin Anda bisa menunjukkan kepada kami kode yang membuat rsr1s2?
jbowman

Faktor rs didefinisikan secara manual (cukup rekatkan faktor r dan s). Lihat kumpulan data.
Manuel Ramón

1
Saya kira ini terkait dengan cara dalam variabel terkait melihat attr(terms(lm1),"factors")danattr(terms(lm2),"factors")
Galled

Jawaban:


8

Hasilnya berbeda karena cara saya mengatur model dengan interaksi berbeda dari cara mengaturnya ketika Anda mengaturnya sendiri. Jika Anda melihat sisa sd, itu sama, yang menunjukkan (tidak pasti) bahwa model yang mendasarinya sama, hanya diekspresikan (ke internal lm) berbeda.

Jika Anda mendefinisikan interaksi Anda sebagai paste(d$s, d$r)ganti paste(d$r, d$s)estimasi parameter Anda akan berubah lagi, dengan cara yang menarik.

Perhatikan bagaimana dalam ringkasan model Anda untuk lm1, estimasi koefisien untuk ss2 adalah 4,94 lebih rendah daripada dalam ringkasan untuk lm2, dengan koefisien untuk rr2: ss2 menjadi 4,95 (jika Anda mencetak ke 3 tempat desimal, perbedaannya hilang). Ini adalah indikasi lain bahwa penataan ulang ketentuan internal telah terjadi.

Saya tidak dapat memikirkan keuntungan untuk melakukannya sendiri, tetapi mungkin ada satu dengan model yang lebih kompleks di mana Anda tidak ingin istilah interaksi penuh tetapi sebaliknya hanya beberapa istilah dalam "persilangan" antara dua faktor atau lebih.


Satu-satunya keuntungan yang saya lihat untuk mendefinisikan interaksi seperti pada lm2 adalah mudah untuk melakukan beberapa perbandingan untuk istilah interaksi. Apa yang saya tidak begitu mengerti adalah mengapa hasil yang berbeda diperoleh jika, pada prinsipnya, tampaknya kedua pendekatan itu sama.
Manuel Ramón

5
Pendekatannya sama, tetapi parameterisasi yang tepat dari model yang diperkirakan berbeda, sehingga hasilnya tampak berbeda. Pertimbangkan model dengan dua regresi biner dan sebuah interaksi. Anda memiliki empat kategori, tetapi Anda dapat menulis model dengan beberapa cara berbeda, misalnya, biarkan 1 menjadi istilah konstan, dengan variabel atau , atau yang lainnya. Variabelnya hanya kombinasi linear satu sama lain. Perkiraan koefisien akan berbeda, tetapi modelnya benar-benar sama.x1,x2(1,x1,x2,x1x2)(x1,x2,x1x2,(1x1)(1x2)
jbowman

Karena itu, meski berbeda, kedua pendekatan itu benar, bukan?
Manuel Ramón

Kanan. Secara matematis matriks variabel independen dalam berbagai formulasi hanyalah transformasi linear satu sama lain, sehingga estimasi parameter dari satu model dapat dihitung dari estimasi parameter yang lain jika ada yang tahu bagaimana kedua model sebenarnya diatur.
jbowman

9

Anda mungkin memahami perilaku ini lebih baik jika Anda melihat matriks model.

 model.matrix(lm1 <- lm(y ~ r*s, data=d))
 model.matrix(lm2 <- lm(y ~ r + s + rs, data=d))

Ketika Anda melihat matriks ini, Anda dapat membandingkan rasi bintang s2=1dengan variabel lain (yaitu kapan s2=1, nilai mana yang diambil oleh variabel lain?). Anda akan melihat bahwa rasi bintang ini sedikit berbeda, yang berarti bahwa kategori dasarnya berbeda. Segala sesuatu yang lain pada dasarnya sama. Secara khusus, catatan bahwa dalam Anda lm1, koefisien pada ss2sama dengan koefisien ss2+rsr1s2dari lm2, yaitu 3.82 = 8,76-4,95, singkat kesalahan pembulatan.

Misalnya, mengeksekusi kode berikut memberi Anda output yang sama persis dengan menggunakan pengaturan otomatis R:

  d$rs <- relevel(d$rs, "r1s1")
  summary(lm1 <- lm(y~ factor(r) + factor(s) + factor(rs), data=d))

Ini juga memberikan jawaban cepat untuk pertanyaan Anda: satu-satunya alasan untuk mengubah cara faktor diatur adalah untuk memberikan kejelasan eksposisi. Pertimbangkan contoh berikut: Misalkan Anda mundur upah pada boneka untuk menyelesaikan sekolah menengah berinteraksi dengan faktor yang menunjukkan apakah Anda termasuk minoritas.

Yaitu:wage=α+β edu+γ eduminority+ϵ

Jika faktor minoritas tersebut mengambil nilai 1 jika Anda termasuk dalam minoritas, koefisien dapat diartikan sebagai perbedaan upah untuk individu non-minoritas yang telah menyelesaikan sekolah menengah. Jika ini adalah koefisien minat Anda, maka Anda harus mengkodekannya. Kalau tidak, misalkan faktor minoritas mengambil nilai 1 jika Anda bukan milik minoritas. Kemudian, untuk melihat berapa banyak penghasilan non-minoritas saat mereka menyelesaikan sekolah menengah, Anda harus "secara manual" menghitung . Namun perlu dicatat bahwa semua informasi terkandung dalam perkiraan, dan hasil yang substansial tidak berubah dengan mengatur faktor-faktor secara berbeda!β + γββ+γ

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.