Engellemeyi kaldırmak farklı bir model, ancak meşru olduğu birçok örnek var. Şimdiye kadar verilen cevaplar, gerçek müdahalenin 0 olduğu bir örneği daha önce tartışmışlardır. Atipik bir model parametrelendirmesi ile ilgilenebileceğimiz birkaç örneğe odaklanacağım.
Örnek 1: ANOVA tarzı Model. Kategorik değişkenler için genellikle grup üyeliğini kodlayan ikili vektörler oluştururuz. Standart regresyon modeli kesişme + k - 1 kukla vektörler olarak parametrelendirilmiştir. Kesişme, "referans" grubu için beklenen değeri veya ihmal edilen vektörü kodlar ve kalan vektörler, her grup ve referans arasındaki farkı test eder. Ancak bazı durumlarda, her grubun beklenen değerine sahip olmak faydalı olabilir.
dat <- mtcars
dat$vs <- factor(dat$vs)
## intercept model: vs coefficient becomes difference
lm(mpg ~ vs + hp, data = dat)
Coefficients:
(Intercept) vs1 hp
26.96300 2.57622 -0.05453
## no intercept: two vs coefficients, conditional expectations for both groups
lm(mpg ~ 0 + vs + hp, data = dat)
Coefficients:
vs0 vs1 hp
26.96300 29.53922 -0.05453
Örnek 2: Standart veri durumu. Bazı durumlarda, standart verilerle çalışıyor olabilir. Bu durumda, kesişme, tasarım gereği 0'dır. Bunun klasik bir örneği, verilerin kovaryans matrislerinde işletilen eski stil yapısal denklem modelleri veya faktör olduğunu düşünüyorum. Aşağıdaki durumda, yine de, sadece ek bir serbestlik derecesini düşürmek için (ortalama tahmin edildiği için yine de kaybetmiş olmanız gerekirdi), ancak bu yolla bir avuç var. inşaat, araçlar 0 olabilir (örneğin, katılımcıların derecelendirme atadığı, ancak eşit pozitifleri ve negatifleri vermekle sınırlı kaldıkları bazı deneyler).
dat <- as.data.frame(scale(mtcars))
## intercept is 0 by design
lm(mpg ~ hp + wt, data = dat)
Coefficients:
(Intercept) hp wt
3.813e-17 -3.615e-01 -6.296e-01
## leaving the intercept out
lm(mpg ~ 0 + hp + wt, data = dat)
Coefficients:
hp wt
-0.3615 -0.6296
Örnek 3: Çok Değişkenli Modeller ve Gizli Kavşaklar. Bu örnek bir çok yönden ilkine benzer. Bu durumda, veriler üst üste konmuştur, böylece iki farklı değişken şimdi bir uzun vektör içindedir. İkinci bir değişken yanıt vektörü, olup olmadığı hakkında bilgi kodlayan y
, aittir mpg
veya disp
. Bu durumda, her bir sonuç için ayrı kesişim noktaları elde etmek için, genel kesişmeyi bastırır ve ölçüm için her iki sahte vektörü de dahil edersiniz. Bu bir çeşit çok değişkenli analizdir. Genellikle kullanılarak yapılmazlm()
çünkü tekrarlanan önlemler aldınız ve muhtemelen bağımsız olmamaya izin vermelisiniz. Ancak, bunun gerekli olduğu bazı ilginç durumlar vardır. Örneğin, rastgele etkilere sahip bir arabuluculuk analizi yapmaya çalışırken, tüm varyans kovaryans matrisini elde etmek için, verileri istifleyerek ve kukla vektörlerin akıllıca kullanılmasıyla aynı anda tahmin edilen her iki modele de ihtiyaç duyarsınız.
## stack data for multivariate analysis
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
timevar = "measure", times = c("mpg", "disp"), direction = "long")
dat$measure <- factor(dat$measure)
## two regressions with intercepts only
lm(cbind(mpg, disp) ~ 1, data = mtcars)
Coefficients:
mpg disp
(Intercept) 20.09 230.72
## using the stacked data, measure is difference between outcome means
lm(y ~ measure, data = dat)
Coefficients:
(Intercept) measurempg
230.7 -210.6
## separate 'intercept' for each outcome
lm(y ~ 0 + measure, data = dat)
Coefficients:
measuredisp measurempg
230.72 20.09
Kavramaların genel olarak kaldırılması gerektiğini, ancak esnek olmanın iyi olduğunu savunmuyorum.