Mengapa beberapa perkiraan regresi berbeda dengan perubahan tanda, tetapi yang lain tidak, ketika saya mengubah tingkat referensi?

8

Misalkan saya memiliki hasil yang terus menerus ydan dua prediktor faktorial, masing-masing dengan dua level. Salah satu prediktor kategori saya drug,, dapat memiliki dua level ("A" atau "B"), yang lain adalah smokeYes. Ketika saya menjalankan model regresi saya dapat memilih garis dasar atau tingkat referensi druguntuk menjadi "A", seperti yang saya lakukan di model1:

set.seed(123)
y<-rnorm(100, 100, 10)
drug.ab<-factor(sample(c("A", "B"), 100, T), levels=c("A", "B"))
drug.ba<-factor(drug.ab, levels=c("B", "A"))
smoke<-factor(sample(c("Yes", "No"), 100, T), levels=c("No", "Yes"))

#model1:
coef(summary(lm(y~drug.ab*smoke)))
                     Estimate Std. Error    t value     Pr(>|t|)
(Intercept)       100.7484158   2.065091 48.7864379 1.465848e-69
drug.abB            0.9030541   2.796146  0.3229639 7.474250e-01
smokeYes           -0.8693598   2.632484 -0.3302431 7.419359e-01
drug.abB:smokeYes   0.8709116   3.746684  0.2324487 8.166844e-01

Atau saya dapat mengatur baseline ke "B", seperti yang saya lakukan di model2:

#model2:
coef(summary(lm(y~drug.ba*smoke)))
                       Estimate Std. Error       t value     Pr(>|t|)
(Intercept)       101.651469922   1.885161 53.9218978856 1.377147e-73
drug.baA           -0.903054145   2.796146 -0.3229638818 7.474250e-01
smokeYes            0.001551843   2.666021  0.0005820821 9.995368e-01
drug.baA:smokeYes  -0.870911601   3.746684 -0.2324486531 8.166844e-01

Pertanyaan saya adalah mengapa estimasi untuk smokeYesberbeda antara model1dan model2? Mengapa tidak berbeda dengan perubahan tanda suka drug.baAdan istilah interaksi?

David Z
sumber
3
Cari penjelasan yang baik tentang kontras pengobatan. Secara singkat, jika Anda menghitung prediksi untuk drugB dan smokeYa: (mod1) 100.75 + 0.90 - 0.87 + 0.87 = 101.65 | (mod2) 101.65 + 0.00 = 101.65
Roland
Saya pikir itu bisa dibilang on-topik untuk SO ketika aku melihat duplikat pertanyaan di sana, karena ada garis R yang sangat sederhana dari kode yang menghitung semua sarana kelompok: tapply( y, interaction( drug.ab, smoke) ,mean). Penjelasan yang lebih luas mungkin melibatkan menunjukkan perbedaan antara kontras pengobatan dan jumlah kontras.
DWin
@Dwin, bahkan dengan dua jawaban yang sudah diposting saya pikir pasti ada ruang untuk jawaban lain yang membahas masalah kontras. Saya harap seseorang memposting jawaban yang mengambil pendekatan itu.
Silverfish

Jawaban:

8

Biarkan saya membuat contoh sederhana bagi Anda untuk menjelaskan konsep, maka kami dapat memeriksanya terhadap koefisien Anda.

Perhatikan bahwa dengan memasukkan variabel dummy "A / B" dan istilah interaksi, Anda secara efektif memberikan model Anda fleksibilitas agar sesuai dengan intersep yang berbeda (menggunakan dummy) dan kemiringan (menggunakan interaksi) pada data "A" dan data "B". Dalam apa yang mengikuti itu benar-benar tidak masalah apakah prediktor lainxadalah variabel kontinu atau, seperti dalam kasus Anda, variabel dummy lain. Jika saya berbicara dalam hal "mencegat" dan "kemiringan", ini dapat diartikan sebagai "tingkat ketika boneka adalah nol" dan "berubah tingkat ketika boneka diubah dari0 untuk 1" jika kamu memilih.

Misalkan model yang dipasang OLS pada data "A" saja y^=12+5x dan pada "B" data saja y^=11+7x. Data mungkin terlihat seperti ini:

Plot sebar untuk dua kelompok

Sekarang anggaplah kita mengambil "A" sebagai level referensi kita, dan menggunakan variabel dummy b maka b=1 untuk pengamatan di Grup B tetapi b=0 di Grup A. Model yang dipasang pada seluruh dataset adalah

y^i=β^0+β^1xi+β^2bi+β^3xibi

Untuk pengamatan di Grup A kami punya y^i=β^0+β^1xi dan kami dapat meminimalkan jumlah residu kuadratnya dengan menetapkan β^0=12 dan β^1=5. Untuk data Grup B,y^i=(β^0+β^2)+(β^1+β^3)xi dan kita dapat meminimalkan jumlah residu kuadrat dengan mengambil β^0+β^2=11 dan β^1+β^3=7. Jelas bahwa kita dapat meminimalkan jumlah residu kuadrat dalam regresi keseluruhan dengan meminimalkan jumlah untuk kedua kelompok, dan bahwa ini dapat dicapai dengan menetapkanβ^0=12 dan β^1=5 (dari Grup A) dan β^2=1 dan β^3=2(karena data "B" harus memiliki intersep satu lebih rendah dan kemiringan dua lebih tinggi). Amati bagaimana keberadaan istilah interaksi diperlukan bagi kita untuk memiliki fleksibilitas yang memadai untuk meminimalkan jumlah residu kuadrat untuk kedua kelompok sekaligus . Model saya yang cocok adalah:

y^i=12+5xi1bi+2xibi

Ganti semua ini sehingga "B" adalah level referensi dan a adalah pengkodean variabel dummy untuk Grup A. Dapatkah Anda melihat bahwa saya sekarang harus cocok dengan model

y^i=11+7xi+1ai2xiai

Artinya, saya mengambil intersepsi (11) dan kemiringan (7) dari grup "B" awal saya, dan gunakan istilah dummy dan interaksi untuk menyesuaikannya dengan grup "A" saya. Penyesuaian ini saat ini berada di arah sebaliknya (saya perlu intersep satu lebih tinggi dan kemiringan dua lebih rendah ) oleh karena itu tanda-tanda dibalik dibandingkan dengan ketika saya mengambil "A" sebagai kelompok referensi, tetapi harus jelas mengapa koefisien lainnya memiliki tidak hanya beralih tanda.


Mari kita bandingkan dengan output Anda. Dalam notasi yang mirip dengan di atas, model pertama Anda yang dilengkapi dengan baseline "A" adalah:

y^i=100.7484158+0.9030541bi0.8693598xi+0.8709116xibi

Model pas kedua Anda dengan baseline "B" adalah:

y^saya=101.651469922-0.903054145Sebuahsaya+0,001551843xsaya-0.870911601xsayaSebuahsaya

Pertama, mari kita verifikasi bahwa kedua model ini akan memberikan hasil yang sama. Mari kita taruhbsaya=1-Sebuahsaya dalam persamaan pertama, dan kami memperoleh:

y^saya=100.7484158+0,9030541(1-Sebuahsaya)-0.8693598xsaya+0.8709116xsaya(1-Sebuahsaya)

Ini menyederhanakan untuk:

y^saya=(100.7484158+0,9030541)-0,9030541Sebuahsaya+(-0.8693598+0.8709116)xsaya-0.8709116xsayaSebuahsaya

Sedikit aritmatika cepat menegaskan bahwa ini sama dengan model pas kedua; Selain itu sekarang harus jelas koefisien mana yang telah bertukar tanda dan koefisien mana yang telah disesuaikan dengan baseline lainnya!

Kedua, mari kita lihat apa model yang dipasang pada kelompok "A" dan "B". Model pertama Anda segera memberiy^saya=100.7484158-0.8693598xsaya untuk grup "A", dan model kedua Anda segera memberi y^i=101.651469922+0.001551843xiuntuk grup "B". Anda dapat memverifikasi model pertama memberikan hasil yang benar untuk grup "B" dengan menggantibi=1ke dalam persamaannya; aljabar, tentu saja, bekerja dengan cara yang sama seperti contoh yang lebih umum di atas. Demikian pula, Anda dapat memverifikasi bahwa model kedua memberikan hasil yang benar untuk grup "A" dengan menetapkanai=1.

Ketiga, karena dalam kasus Anda, regresi lainnya juga merupakan variabel dummy, saya sarankan Anda menghitung sarana bersyarat yang cocok untuk keempat kategori ("A" dengan x=0, "A" dengan x=1, "B" dengan x=0, "B" dengan x=1) di bawah kedua model dan periksa Anda memahami mengapa mereka setuju. Sebenarnya ini tidak perlu, karena kami telah melakukan aljabar yang lebih umum di atas untuk menunjukkan hasilnya akan konsisten bahkan jikaxterus menerus , tapi saya pikir ini tetap latihan yang berharga. Saya tidak akan mengisi rincian karena aritmatika mudah dan lebih sesuai dengan semangat jawaban JonB yang sangat bagus. Poin utama yang perlu dipahami adalah bahwa, kelompok referensi mana pun yang Anda gunakan, model Anda memiliki cukup fleksibilitas untuk disesuaikan dengan setiap mean bersyarat secara terpisah. (Di sinilah membuat perbedaan bahwa Andax adalah dummy untuk faktor biner daripada variabel kontinu - dengan prediktor kontinu kita biasanya tidak mengharapkan estimasi rata-rata bersyarat y^ untuk mencocokkan rata-rata sampel untuk setiap kombinasi prediktor yang diamati.) Hitung rata-rata sampel untuk masing-masing dari empat kombinasi kategori tersebut, dan Anda akan menemukan mereka cocok dengan rata-rata bersyarat yang sesuai.

Kode R untuk menggambar plot dan mengeksplorasi model yang sesuai, diprediksi y^ dan sarana kelompok

#Make data set with desired conditional means
data.df <- data.frame(
  x = c(0,0,0,        1,1,1,        0,0,0,        1,1,1),
  b = c(0,0,0,        0,0,0,        1,1,1,        1,1,1),
  y = c(11.8,12,12.2, 16.8,17,17.2, 10.8,11,11.2, 17.8,18,18.2)
)
data.df$a <- 1 - data.df$b

baselineA.lm <- lm(y ~ x * b, data.df)
summary(baselineA.lm) #check this matches y = 12 + 5x - 1b + 2xb

baselineB.lm <- lm(y ~ x * a, data.df)
summary(baselineB.lm) #check this matches y = 11 + 7x + 1a - 2xa

fitted(baselineA.lm)
fitted(baselineB.lm) #check the two models give the same fitted values for y...
with(data.df, tapply(y, interaction(x, b), mean)) #...which are the group sample means

colorSet <- c("red", "blue")
symbolSet <- c(19,17)
with(data.df, plot(x, y, yaxt="n", col=colorSet[b+1], pch=symbolSet[b+1],
                   main="Response y against other predictor x",
                   panel.first = {
                     axis(2, at=10:20)
                     abline(h = 10:20, col="gray70")
                     abline(v = 0:1,  col="gray70")
                   }))
abline(lm(y ~ x, data.df[data.df$b==0,]), col=colorSet[1])
abline(lm(y ~ x, data.df[data.df$b==1,]), col=colorSet[2])
legend(0.1, 17, c("Group A", "Group B"), col = colorSet,
       pch = symbolSet, bg = "gray95")
Gegat
sumber
Ya, penjelasan yang bagus jadi saya akan memilih ini!
JonB
@ DavidZ Terima kasih! Saya sarankan untuk tidak memilih kotak "terima" terlalu dini, karena mungkin ada jawaban lain yang akan datang. Penjelasan saya cukup rapi tetapi saya telah membahas aspek yang cukup umum yang juga akan berhasil untuk terus menerusx. Dimungkinkan untuk mendekati pertanyaan Anda dengan cara yang lebih memperhatikan sifat kategorik dari prediksi Anda, jadi saya sarankan Anda menghapusnya untuk mendorong lebih banyak partisipasi dari orang lain. (@JobB Terima kasih! Saya juga menyukai jawaban Anda, +1)
Silverfish
3

Itu ada hubungannya dengan bagaimana intersepsi didefinisikan. Dalam contoh pertama, intersep didefinisikan sebagai mereka yang tidak merokok dan yang memiliki obat A. Perokok, yang juga memiliki obat A, akan memiliki nilai 100,75 - 0,87 = 99,9 sedangkan perokok yang memiliki obat B akan memiliki nilai 100,75 + 0,90 - 0,87 + 0,87 = 101,65.

Dalam contoh kedua, intersep didefinisikan sebagai mereka yang tidak merokok dan memiliki obat B. Perokok dengan obat B kemudian akan memiliki nilai 101,65 + 0,001 = 101,65, dan perokok dengan obat A akan memiliki nilai 100,65 - 0,90 + 0,001-0,87 = 99,9.

Jadi semuanya menambahkan upp, itu hanya masalah bagaimana intersep didefinisikan, yaitu tingkat ketika semua faktor diatur ke kategori referensi.

JonB
sumber