Apakah interaksi mungkin antara dua variabel kontinu?

27

Semua variabel saya kontinu. Tidak ada level. Apakah mungkin untuk bahkan memiliki interaksi antara variabel?

TheCloudlessSky
sumber

Jawaban:

31

Ya kenapa tidak Pertimbangan yang sama seperti variabel variabel akan berlaku dalam kasus ini: Pengaruh pada hasil tidak sama tergantung pada nilai . Untuk membantu memvisualisasikannya, Anda dapat memikirkan nilai yang diambil oleh saat mengambil nilai tinggi atau rendah. Bertentangan dengan variabel kategori, di sini interaksi hanya diwakili oleh produk dan . Sebagai catatan, lebih baik untuk memusatkan dua variabel Anda terlebih dahulu (sehingga koefisien untuk katakanlah dibaca sebagai efek ketika berada pada mean sampelnya). Y X 2 X 1 X 2 X 1 X 2 X 1 X 1 X 2X1YX2X1X2X1X2X1X1X2

Seperti disarankan oleh @whuber, cara mudah untuk melihat bagaimana bervariasi dengan sebagai fungsi X 2 ketika istilah interaksi dimasukkan, adalah dengan menuliskan model . YX1YX2E(Y|X)=β0+β1X1+β2X2+β3X1X2

Kemudian, dapat dilihat bahwa efek peningkatan satu unit dalam ketika dipertahankan konstan dapat dinyatakan sebagai:X 2X1X2

E(Y|X1+1,X2)E(Y|X1,X2)=β0+β1(X1+1)+β2X2+β3(X1+1)X2(β0+β1X1+β2X2+β3X1X2)=β1+β3X2

Demikian juga, efek ketika meningkat satu unit sambil menahan konstan adalah . Ini menunjukkan mengapa sulit untuk menafsirkan efek ( ) dan ( ) secara terpisah. Ini bahkan akan lebih rumit jika kedua prediktor berkorelasi tinggi. Penting juga untuk mengingat asumsi linearitas yang dibuat dalam model linier seperti itu.X2X1β2+β3X1X1β1X2β2

Anda dapat melihat regresi berganda: menguji dan menafsirkan interaksi , oleh Leona S. Aiken, Stephen G. West, dan Raymond R. Reno (Sage Publications, 1996), untuk tinjauan umum tentang berbagai jenis efek interaksi dalam regresi berganda . (Ini mungkin bukan buku terbaik, tetapi tersedia melalui Google)

Berikut ini contoh mainan di R:

library(mvtnorm)
set.seed(101)
n <- 300                      # sample size
S <- matrix(c(1,.2,.8,0,.2,1,.6,0,.8,.6,1,-.2,0,0,-.2,1), 
            nr=4, byrow=TRUE) # cor matrix
X <- as.data.frame(rmvnorm(n, mean=rep(0, 4), sigma=S))
colnames(X) <- c("x1","x2","y","x1x2")
summary(lm(y~x1+x2+x1x2, data=X))
pairs(X)

di mana output sebenarnya berbunyi:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.01050    0.01860  -0.565    0.573    
x1           0.71498    0.01999  35.758   <2e-16 ***
x2           0.43706    0.01969  22.201   <2e-16 ***
x1x2        -0.17626    0.01801  -9.789   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.3206 on 296 degrees of freedom
Multiple R-squared: 0.8828, Adjusted R-squared: 0.8816 
F-statistic: 743.2 on 3 and 296 DF,  p-value: < 2.2e-16 

Dan di sini adalah bagaimana data yang disimulasikan terlihat seperti:

teks alternatif

Untuk mengilustrasikan komentar kedua @ whuber, Anda selalu dapat melihat variasi sebagai fungsi pada nilai yang berbeda dari (mis., Dicile atau deciles); tampilan teralis berguna dalam hal ini. Dengan data di atas, kami akan melanjutkan sebagai berikut:YX2X1

library(Hmisc)
X$x1b <- cut2(X$x1, g=5) # consider 5 quantiles (60 obs. per group)
coplot(y~x2|x1b, data=X, panel = panel.smooth)

teks alternatif

chl
sumber
5
(+1) Jika Anda punya waktu dan kecenderungan, Anda mungkin memperkuat jawaban ini dengan memperluas klaim Anda bahwa termasuk X1 * X2 membuat efek X1 pada Y berbeda dengan X2. Khususnya, model Y = b0 + b1 * X1 + b2 * X2 + b3 * (X1 * X2) + kesalahan juga dapat dilihat memiliki bentuk Y = b0 + (b1 + b3 * X2) * X1 + b2 * X2 + error, menunjukkan dengan tepat bagaimana koefisien X1 - yang sama dengan b1 + b3 * X2 - bervariasi dengan X2 (dan, secara simetris, koefisien X2 bervariasi dengan X1). Itu adalah bentuk "interaksi" yang sederhana dan alami.
whuber
1
@ chl - Terima kasih atas tanggapannya. Masalah yang saya miliki adalah bahwa saya memiliki besar n(11K) dan saya menggunakan Minitab untuk melakukan Plot Interaksi dan dibutuhkan selamanya untuk menghitung tetapi tidak menunjukkan apa-apa. Saya hanya tidak yakin bagaimana saya melihat apakah ada interaksi dengan dataset ini.
TheCloudlessSky
3
@TheCloudlessSky: Salah satu pendekatan adalah mengiris data menjadi nampan sesuai dengan nilai X1. Plot Y versus bin X2 dengan nampan, mencari perubahan kemiringan karena nampan bervariasi. Lakukan hal yang sama dengan peran X1 dan X2 terbalik.
whuber
3
@chl Tampilan teralis adalah ilustrasi yang bagus. Mengiris satu variabel pada kuantil interval yang sama menarik. Ada beberapa pendekatan lain. Misalnya, Tukey merekomendasikan mengiris dengan membagi dua ekornya: yaitu, mengiris nilai-nilai X2 menjadi dua di median, kemudian mengiris setengahnya dengan median mereka , kemudian mengiris setengah bagian bawah dari kelompok terendah di median dan setengah atas dari yang tertinggi kelompok pada mediannya, dan seterusnya, berlanjut selama kelompok baru memiliki cukup data.
whuber
1
@whuber Itu lagi poin yang bagus. Saya akan melihat kemungkinan implementasi R, atau mencobanya sendiri.
chl