R de çok değişkenli çoklu regresyon


68

Her biri 7 bağımsız değişken grubundan etkilenebilecek 2 bağımlı değişkene (DV) sahibim. DV'ler süreklidir, IV'ler ise sürekli ve ikili kodlanmış değişkenlerin bir karışımından oluşur. (Aşağıdaki kodda sürekli değişkenler büyük harflerle ve ikili değişkenler küçük harflerle yazılmıştır.)

Çalışmanın amacı, bu DV'lerin IV değişkenleri tarafından nasıl etkilendiğini ortaya çıkarmaktır. Aşağıdaki çok değişkenli çoklu regresyon (MMR) modelini önerdim:

my.model <- lm(cbind(A, B) ~ c + d + e + f + g + H + I)

Sonuçları yorumlamak için iki cümle çağırırım:

  1. summary(manova(my.model))
  2. Manova(my.model)

Her iki çağrıdan gelen çıktılar aşağıda yapıştırılır ve önemli ölçüde farklıdır. Birisi MMR sonuçlarını doğru şekilde özetlemek için ikisi arasında hangi ifadenin seçilmesi gerektiğini açıklayabilir mi? Neden? Herhangi bir öneri çok takdir edilecektir.

summary(manova(my.model))Deyimi kullanarak çıktı :

> summary(manova(my.model))
           Df   Pillai approx F num Df den Df    Pr(>F)    
c           1 0.105295   5.8255      2     99  0.004057 ** 
d           1 0.085131   4.6061      2     99  0.012225 *  
e           1 0.007886   0.3935      2     99  0.675773    
f           1 0.036121   1.8550      2     99  0.161854    
g           1 0.002103   0.1043      2     99  0.901049    
H           1 0.228766  14.6828      2     99 2.605e-06 ***
I           1 0.011752   0.5887      2     99  0.556999    
Residuals 100                                              
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Manova(my.model)Deyimi kullanarak çıktı :

> library(car)
> Manova(my.model)

Type II MANOVA Tests: Pillai test statistic
  Df test stat approx F num Df den Df    Pr(>F)    
c  1  0.030928   1.5798      2     99   0.21117    
d  1  0.079422   4.2706      2     99   0.01663 *  
e  1  0.003067   0.1523      2     99   0.85893    
f  1  0.029812   1.5210      2     99   0.22355    
g  1  0.004331   0.2153      2     99   0.80668    
H  1  0.229303  14.7276      2     99 2.516e-06 ***
I  1  0.011752   0.5887      2     99   0.55700    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Yanıtlar:


78

Baz-R için Kısaca belirtilirse, bu manova(lm())kareler olarak adlandırılan tip I toplamı için ardışık örnek olarak kullanır ise, car's Manova(), varsayılan kareler Tip II toplamı için bir model olarak kullanır göre.

ANOVA ya da regresyon analizine model karşılaştırma yaklaşımını bildiğinizi varsayıyorum. Bu yaklaşım, bu testleri, sınırlandırılmamış bir modeli (boş hipoteze karşılık gelir) sınırsız bir modele (alternatif hipoteze karşılık gelir) karşılaştırarak tanımlar. Bu fikre aşina değilseniz, Maxwell & Delaney'nin mükemmel "Deneyler tasarlama ve verileri analiz etme" (2004) 'i öneririm.

Tip I SS için, ilk belirleyicisi için bir regresyon analiziyle sınırlı modeli c: sadece mutlak terimi kullanan boş bir modeldir lm(Y ~ 1), Ytarafından tanımlanan çok değişkenli DV olacaktır durumda da cbind(A, B). Kısıtlanmamış model daha sonra belirleyici ekler c, yani lm(Y ~ c + 1).

Tip II SS için, ilk tahmininiz için regresyon analizindeki sınırlandırılmamış model c, etkileşimleri dışındaki tüm tahminde bulunabilecek tam modeldir, yani lm(Y ~ c + d + e + f + g + H + I). Sınırlandırılmış model, öngörücüyü csınırsız modelden kaldırır , yani lm(Y ~ d + e + f + g + H + I).

Her iki fonksiyon da farklı model karşılaştırmalara dayandığından, farklı sonuçlara yol açar. Hangisinin tercih edilebileceği sorusuna cevap vermek zor - bu gerçekten sizin hipotezlerinize bağlı.

Aşağıda Pillai-Bartlett Trace gibi çok değişkenli test istatistiklerinin null model, tam model ve sınırlı kısıtlanmamış modellere dayanarak nasıl hesaplandığını bildiğinizi varsayalım. Kısa olması için, sadece prediktörlerini düşünün cve Hve tek bir test c.

N <- 100                             # generate some data: number of subjects
c <- rbinom(N, 1, 0.2)               # dichotomous predictor c
H <- rnorm(N, -10, 2)                # metric predictor H
A <- -1.4*c + 0.6*H + rnorm(N, 0, 3) # DV A
B <-  1.4*c - 0.6*H + rnorm(N, 0, 3) # DV B
Y <- cbind(A, B)                     # DV matrix
my.model <- lm(Y ~ c + H)            # the multivariate model
summary(manova(my.model))            # from base-R: SS type I
#           Df  Pillai approx F num Df den Df  Pr(>F)    
# c          1 0.06835   3.5213      2     96 0.03344 *  
# H          1 0.32664  23.2842      2     96 5.7e-09 ***
# Residuals 97                                           

Karşılaştırma için, elde edilen sonuç, cars' Manova()fonksiyonu SS tip II kullanılarak.

library(car)                           # for Manova()
Manova(my.model, type="II")
# Type II MANOVA Tests: Pillai test statistic
#   Df test stat approx F num Df den Df  Pr(>F)    
# c  1   0.05904   3.0119      2     96 0.05387 .  
# H  1   0.32664  23.2842      2     96 5.7e-09 ***

X

X  <- cbind(1, c, H)
XR <- model.matrix(~ c + H)
all.equal(X, XR, check.attributes=FALSE)
# [1] TRUE

Pf=X(XX)1XW=Y(IPf)Y

Pf  <- X %*% solve(t(X) %*% X) %*% t(X)
Id  <- diag(N)
WW  <- t(Y) %*% (Id - Pf) %*% Y

PrIPuIBI=Y(PuIPPrI)Y

XrI <- X[ , 1]
PrI <- XrI %*% solve(t(XrI) %*% XrI) %*% t(XrI)
XuI <- X[ , c(1, 2)]
PuI <- XuI %*% solve(t(XuI) %*% XuI) %*% t(XuI)
Bi  <- t(Y) %*% (PuI - PrI) %*% Y

PrIPuIIBII=Y(PuIIPPrII)Y

XrII <- X[ , -2]
PrII <- XrII %*% solve(t(XrII) %*% XrII) %*% t(XrII)
PuII <- Pf
Bii  <- t(Y) %*% (PuII - PrII) %*% Y

(B+W)1B

(PBTi  <- sum(diag(solve(Bi  + WW) %*% Bi)))   # SS type I
# [1] 0.0683467

(PBTii <- sum(diag(solve(Bii + WW) %*% Bii)))  # SS type II
# [1] 0.05904288

Ortogonal çıkıntılar için yapılan hesaplamaların matematiksel formülü taklit ettiğini, ancak sayısal olarak kötü bir fikir olduğunu unutmayın. Kişi bununla birlikte gerçekten QR-ayrıştırmaları veya SVD'yi crossprod()kullanmalıdır.


3
Bu güzel resimli tepki için benim çok büyük + 1'im.
chl

lmFonksiyonu kullanırken çok değişkenli regresyon yapıyorum , ancak fonksiyonun içinde birden fazla cevap değişkeni tanımlayarak lm. lmVerilerim aslında çok değişkenliyken işlevi kullanarak standart hata için hatalı sonuç verdiğimi öğrendim . Ancak bu durumda my.model <- lm(cbind(A, B) ~ c + d + e + f + g + H + I); olacaktır vcov(my.model )standart hatayı hafife veya lmakıllıca bağımlı değişkenler arasındaki korelasyonu ayarlayacaktır?
kullanıcı 31466,

6

Eh, hala önceki cevaba yorum yapmak için yeterli puanım yok ve bu yüzden ayrı bir cevap olarak yazıyorum, bu yüzden lütfen afedersiniz. (Mümkünse, lütfen beni 50 tekrar puanın üzerine itin;)

Öyleyse işte 2 sent: Tip I, II ve III hata testleri, verilerin dengesiz olmasından dolayı temelde varyasyonlardır. (Defn Dengesiz: Her tabakada eşit sayıda gözlem bulunmaması). Veriler dengeli ise, Tip I, II ve III hata testi de aynı sonuçları verir.

Peki, veri dengesiz olduğunda ne olur?

A ve B olmak üzere iki faktör içeren bir model düşünün; bu nedenle iki ana etki ve bir etkileşim var, AB. SS (A, B, AB) tam modeli gösterir SS (A, B) etkileşimi olmayan modeli gösterir. SS (B, AB), faktör A ve benzeri etkilerden açıklanmayan modeli belirtir.

Bu gösterim şimdi anlamlıdır. Sadece aklında tut.

SS(AB | A, B) = SS(A, B, AB) - SS(A, B)

SS(A | B, AB) = SS(A, B, AB) - SS(B, AB)

SS(B | A, AB) = SS(A, B, AB) - SS(A, AB)

SS(A | B)     = SS(A, B) - SS(B)

SS(B | A)     = SS(A, B) - SS(A)

Tip I, ayrıca “sıralı” karelerin toplamı olarak da adlandırılır:

1) SS(A) for factor A.

2) SS(B | A) for factor B.

3) SS(AB | B, A) for interaction AB.

Bu nedenle, önce A'nın temel etkisini, A'nın verilen B'nin etkisini ve ardından A ve B'nin verilen AB etkileşimini tahmin ediyoruz (Bu, dengesiz veri olduğu zaman, farklılıklar ortaya çıkar. Önce ana etkiyi tahmin ettikçe, sonra diğerinin ana ve sonra bir "dizi" olarak etkileşim)

II. Tip:

1) SS(A | B) for factor A.

2) SS(B | A) for factor B.

Tip II, A'dan B'ye ve B'den sonra ana etkinin önemini test eder. Neden SS (AB | B, A) yok? Dikkat, tip II yönteminin ancak etkileşimin önemsiz olduğunu test ettikten sonra kullanılabileceğidir. Etkileşim olmadığı göz önüne alındığında (SS (AB | B, A) önemsizdir) tip II testi tip III üzerinde daha iyi güce sahiptir

Tip III:

1) SS(A | B, AB) for factor A.

2) SS(B | A, AB) for factor B.

Bu yüzden tip II sırasında etkileşimi test ettik ve etkileşim anlamlıydı. Şimdi, etkileşim terimini hesaba katarken III. Tipini kullanmamız gerekiyor.

@Caracal'ın dediği gibi, Veriler dengelendiğinde, faktörler ortogonaldir ve I, II ve III tiplerinin hepsi aynı sonuçları verir. Umarım bu yardımcı olur !

Açıklama: Çoğu benim kendi işim değil. Bu mükemmel sayfayı bağlantılı buldum ve daha basit hale getirmek için daha da kaynatıyor gibiydim.

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.