Multivariate multiple Regression in R

68

Ich habe 2 abhängige Variablen (DVs), deren Punktzahl durch die Menge von 7 unabhängigen Variablen (IVs) beeinflusst werden kann. DVs sind kontinuierlich, während der Satz von IVs aus einer Mischung aus kontinuierlichen und binär codierten Variablen besteht. (Im folgenden Code werden fortlaufende Variablen in Großbuchstaben und binäre Variablen in Kleinbuchstaben geschrieben.)

Ziel der Studie ist es herauszufinden, wie diese DVs durch IVs-Variablen beeinflusst werden. Ich schlug das folgende Modell der multivariaten multiplen Regression (MMR) vor:

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

Um die Ergebnisse zu interpretieren, nenne ich zwei Aussagen:

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

Die Ausgaben beider Aufrufe werden unten eingefügt und unterscheiden sich erheblich. Kann jemand bitte erläutern, welche der beiden Aussagen ausgewählt werden sollte, um die Ergebnisse von MMR richtig zusammenzufassen, und warum? Jeder Vorschlag wäre sehr dankbar.

Ausgabe mit summary(manova(my.model))Anweisung:

> 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

Ausgabe mit Manova(my.model)Anweisung:

> 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 
Andrej
quelle

Antworten:

78

Kurz gesagt, dies liegt daran, dass Basis-R manova(lm())sequentielle Modellvergleiche für die sogenannte Typ-I-Quadratsumme verwendet, wohingegen car's Manova()standardmäßig Modellvergleiche für die Typ-II-Quadratsumme verwendet.

Ich gehe davon aus, dass Sie mit dem Ansatz des Modellvergleichs für die ANOVA oder die Regressionsanalyse vertraut sind. Dieser Ansatz definiert diese Tests, indem ein eingeschränktes Modell (das einer Nullhypothese entspricht) mit einem uneingeschränkten Modell (das der alternativen Hypothese entspricht) verglichen wird. Wenn Sie mit dieser Idee nicht vertraut sind, empfehle ich Maxwell & Delaneys hervorragendes Buch "Experimente entwerfen und Daten analysieren" (2004).

Für Typ I SS ist das eingeschränkte Modell in einer Regressionsanalyse für Ihren ersten Prädiktor cdas Nullmodell, das nur den absoluten Term verwendet:, lm(Y ~ 1)wobei Yin Ihrem Fall das multivariate DV definiert wäre durch cbind(A, B). Das uneingeschränkte Modell fügt dann einen Prädiktor hinzu c, dh lm(Y ~ c + 1).

Für SS vom Typ II ist das uneingeschränkte Modell in einer Regressionsanalyse für Ihren ersten Prädiktor cdas vollständige Modell, das alle Prädiktoren mit Ausnahme ihrer Interaktionen enthält, d lm(Y ~ c + d + e + f + g + H + I). H. Das eingeschränkte Modell entfernt den Prädiktor caus dem uneingeschränkten Modell, dh lm(Y ~ d + e + f + g + H + I).

Da beide Funktionen auf unterschiedlichen Modellvergleichen beruhen, führen sie zu unterschiedlichen Ergebnissen. Die Frage, welche vorzuziehen ist, ist schwer zu beantworten - es hängt wirklich von Ihren Hypothesen ab.

In den folgenden Abschnitten wird davon ausgegangen, dass Sie mit der Berechnung multivariater Teststatistiken wie dem Pillai-Bartlett-Trace auf der Grundlage des Nullmodells, des vollständigen Modells und des Paars nicht eingeschränkter Modelle vertraut sind. Der Kürze halber berücksichtige ich nur Prädiktoren cund Hund teste nur auf 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                                           

Zum Vergleich das Ergebnis carder Manova()Funktion mit SS Typ II.

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 ***

Überprüfen Sie nun beide Ergebnisse manuell. Erstellen Sie zuerst die Entwurfsmatrix und vergleichen Sie sie mit der Entwurfsmatrix von R.X

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

Definieren Sie nun die orthogonale Projektion für das ( unter Verwendung aller Prädiktoren). Dies gibt uns die Matrix .Pf=X(XX)1XW=Y(IPf)Y

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

Eingeschränkte und uneingeschränkte Modelle für SS Typ I mit ihren Projektionen und , die zu Matrix .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

Eingeschränkte und uneingeschränkte Modelle für SS Typ II plus deren Projektionen und , die zu Matrix . P U I I B I I = Y ' ( P U I I - P P r I I ) YPrIPuIIBII=Y(PuIIPPrII)Y

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

Pillai-Bartlett Spur für beide Arten von SS: Spur von .(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

Beachten Sie, dass die Berechnungen für die orthogonalen Projektionen die mathematische Formel imitieren, numerisch jedoch keine gute Idee sind. Man sollte crossprod()stattdessen wirklich QR-Zerlegungen oder SVD in Kombination mit verwenden.

caracal
quelle
3
Mein sehr großes +1 für diese schön illustrierte Antwort.
chl
Ich frage mich, dass ich, obwohl lmich die Funktion verwende, eine multivariate Regression nur durch Angabe von mehr als einer Antwortvariablen innerhalb der lmFunktion durchführe. Ich habe gelernt, dass durch die Verwendung der lmFunktion, wenn meine Daten tatsächlich multivariat sind, ein fehlerhaftes Ergebnis für Standardfehler erzielt wird. Aber in diesem Fall my.model <- lm(cbind(A, B) ~ c + d + e + f + g + H + I); wird vcov(my.model )der Standardfehler unterschätzen oder lmwird auf intelligente Weise die Korrelation zwischen den abhängigen Variablen einstellen?
Benutzer 31466
6

Nun, ich habe immer noch nicht genug Punkte, um die vorherige Antwort zu kommentieren, und deshalb schreibe ich sie als separate Antwort, also bitte verzeihen Sie mir. (Wenn möglich, schiebe mich bitte über die 50 Wiederholungspunkte;)

Hier sind also die 2 Cent: Bei den Fehlertests der Typen I, II und III handelt es sich im Wesentlichen um Abweichungen, die darauf zurückzuführen sind, dass die Daten nicht ausgeglichen sind. (Defn Unbalanced: Nicht gleiche Anzahl von Beobachtungen in jeder der Schichten). Wenn die Daten ausgeglichen sind, liefern die Fehlertests Typ I, II und III genau dieselben Ergebnisse.

Was passiert also, wenn die Daten unausgeglichen sind?

Betrachten Sie ein Modell, das zwei Faktoren A und B enthält. Es gibt also zwei Haupteffekte und eine Wechselwirkung, AB. SS (A, B, AB) zeigt das vollständige Modell an. SS (A, B) zeigt das Modell ohne Wechselwirkung an. SS (B, AB) gibt das Modell an, das die Auswirkungen von Faktor A usw. nicht berücksichtigt.

Diese Notation macht jetzt Sinn. Denken Sie daran.

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)

Typ I, auch "sequentielle" Quadratsumme genannt:

1) SS(A) for factor A.

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

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

Also schätzen wir zuerst den Haupteffekt von A, den Effekt von B bei A und dann die Wechselwirkung AB bei A und B. (Hier treten bei unausgeglichenen Daten die Unterschiede auf. Wenn wir zuerst den Haupteffekt schätzen, dann den Haupteffekt von anderen und dann Interaktion in einer "Sequenz")

Typ II:

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

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

Typ II testet die Signifikanz des Haupteffekts von A nach B und B nach A. Warum gibt es kein SS (AB | B, A)? Vorbehaltlich ist, dass die Typ-II-Methode nur angewendet werden kann, wenn wir bereits getestet haben, dass die Wechselwirkung unbedeutend ist. Da es keine Wechselwirkung gibt (SS (AB | B, A) ist unbedeutend), hat der Test Typ II eine bessere Leistung als Typ III

Typ III:

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

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

Wir testeten also die Interaktion während Typ II und die Interaktion war signifikant. Jetzt müssen wir den Typ III verwenden, da er den Interaktionsterm berücksichtigt.

Wie @caracal bereits sagte: Wenn die Daten ausgeglichen sind, sind die Faktoren orthogonal, und die Typen I, II und III liefern alle die gleichen Ergebnisse. Ich hoffe das hilft !

Offenlegung: Das meiste davon ist nicht meine eigene Arbeit. Ich fand diese ausgezeichnete Seite verlinkt und hatte das Gefühl, sie weiter zu reduzieren, um sie einfacher zu machen.

Mandar
quelle