Etkileşim terimlerini lm cinsinden yazmak için farklı yollar?


42

Regresyon modelinde bir etkileşimi belirtmenin en iyi yolunun hangisi olduğu hakkında bir sorum var. Aşağıdaki verileri göz önünde bulundurun:

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")

Modeli etkileşimlerle belirtmenin iki eşdeğer yolu şunlardır:

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

Sorum şu; etkileşimi aynı düzeyde olan yeni bir değişken (rs) göz önüne alarak etkileşimi belirleyebilseydim:

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

Bu yaklaşımın hangi avantajları / dezavantajları var? Ve neden bu iki yaklaşımın sonuçları farklı?

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

Bunun rstanımlandığı anlamına interaction(r, s)mı geliyorsun ?
chl

Belki bize rsr1s2'yi oluşturan kodu gösterebilir misiniz?
jbowman

Rs faktörü manuel olarak tanımlandı (sadece r ve s hamur faktörleri). Veri setine bakınız.
Manuel Ramón

1
Sanırım değişkenlerin ilişkisine attr(terms(lm1),"factors")attr(terms(lm2),"factors")
bakma

Yanıtlar:


8

Sonuçlar farklıdır, çünkü lm'nin etkileşime sahip modeli kurma biçimi, kendiniz kurduğunuzda ayarlanmış olandan farklıdır. Artık sd'ye bakarsanız, aynıdır (ki bu kesin değildir), temel modellerin aynı olduğunu gösterir, sadece farklı şekilde ifade edilir (lm içsellerine).

Etkileşiminizi parametre paste(d$s, d$r)değeriniz yerine tanımlarsanız, paste(d$r, d$s)tahminler ilginç şekillerde tekrar değişecektir.

Lm1 için model özetinizde ss2 için katsayı tahmini, lm2 için olandan 4.94 daha düşüktür, rr2: ss2 için katsayı 4.95'dir (fark 3 basamağa basarsanız). Bu, terimlerin iç düzenlemesinin gerçekleştiğinin bir başka göstergesidir.

Kendin yapmanın hiçbir avantajı düşünemiyorum, ancak tam bir etkileşim terimi istemediğiniz daha karmaşık modellere sahip olabilir, bunun yerine iki veya daha fazla faktör arasındaki "çapraz" terimlerinden yalnızca bazıları.


Etkileşimleri lm2'deki gibi tanımladığım tek avantaj, etkileşim terimi için çoklu karşılaştırmalar yapmanın kolay olmasıdır. Tam olarak anlamadığım şey, eğer prensipte 2 yaklaşım aynı görünüyorsa, neden farklı sonuçlar alındığıdır.
Manuel Ramón

5
Yaklaşımlar aynı, ancak tahmin edilen modelin kesin parametreleri farklı, bu nedenle sonuçlar farklı görünüyor. İki ikili regresörlü ve bir etkileşimi olan bir model düşünün . Dört kategoriniz var, ancak modeli birkaç farklı yolla yazabilirsiniz, örneğin, değişkenlerin veya veya diğerleri. Değişkenler birbirlerinin sadece doğrusal kombinasyonlarıdır. Katsayı tahminleri farklı olacaktır, ancak model gerçekten aynıdır.x1,x2(1,x1,x2,x1x2)(x1,x2,x1x2,(1x1)(1x2)
jbowman

Bu nedenle, farklı olmasına rağmen, her iki yaklaşım da doğru, öyle değil mi?
Manuel Ramón

Sağ. Matematiksel olarak, çeşitli formülasyonlardaki bağımsız değişkenlerin matrisleri, birbirlerinin doğrusal dönüşümleridir, bu nedenle eğer bir modelin parametre tahminleri, eğer iki modelin gerçekte nasıl kurulduğunu bilirse, diğerinin parametre tahminlerinden hesaplanabilir.
jbowman

9

Model matrislerine bakarsanız bu davranışı daha iyi anlayabilirsiniz.

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

Bu matrislere baktığınızda, takımyıldızlarını s2=1diğer değişkenlerle karşılaştırabilirsiniz (yani, diğer değişkenlerin s2=1hangi değerleri aldığı?). Bu takımyıldızların biraz farklı olduğunu göreceksiniz, bu da sadece temel kategorinin farklı olduğu anlamına geliyor. Geriye kalan her şey esasında aynıdır. Gözlerinde o özellikle, notta lm1, üzerinde katsayı ss2katsayıları eşittir ss2+rsr1s2arasında lm2, kısa hataları yuvarlama, = 8,76-4,95 3,82 yani.

Örneğin, aşağıdaki kodu çalıştırmak size otomatik R ayarını kullanmakla tamamen aynı çıktıyı verir:

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

Bu aynı zamanda sorunuza hızlı bir cevap da veriyor: Faktörlerin kurulma şeklini değiştirmenin tek nedeni, açıklık sağlamak. Aşağıdaki örneği düşünün: Bir azınlığa ait olup olmadığınızı belirten bir faktörle etkileşime giren lisenin tamamlanması için kukla ücretin gerilediğini varsayalım.

Şöyle ki:wage=α+β edu+γ eduminority+ϵ

Eğer bir azınlık aittir yaparsanız söz konusu azınlık faktörü değeri 1 sürerse, katsayı lise tamamlayan olmayan azınlık bireyler için bir ücret farkı olarak yorumlanabilir. Eğer bu sizin ilgi katsayınız ise, o şekilde kodlamanız gerekir. Aksi takdirde, eğer bir azınlığa ait değilseniz azınlık faktörünün 1 değerini aldığını varsayalım. O zaman, azınlık sahibi olmayan kişilerin liseyi bitirdiklerinde ne kadar kazandıklarını görmek için, "elle" hesaplamanız gerekir . Ancak tüm bilgilerin tahminlerde yer aldığını ve önemli sonuçların faktörleri farklı şekilde ayarlayarak değişmediğini unutmayın!β + γββ+γ

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.