Frage

Ich frage mich, wie man ein multivariates lineares gemischtes Modell mit lme4 anpasst.Ich habe univariate lineare gemischte Modelle mit dem folgenden Code ausgestattet:

library(lme4)
lmer.m1 <- lmer(Y1~A*B+(1|Block)+(1|Block:A), data=Data)
summary(lmer.m1)
anova(lmer.m1)

lmer.m2 <- lmer(Y2~A*B+(1|Block)+(1|Block:A), data=Data)
summary(lmer.m2)
anova(lmer.m2)

Ich möchte wissen, wie man ein multivariates lineares gemischtes Modell mit lme4 anpasst.Die Daten sind unten:

Block A B    Y1    Y2
 1    1 1 135.8 121.6
 1    1 2 149.4 142.5
 1    1 3 155.4 145.0
 1    2 1 105.9 106.6
 1    2 2 112.9 119.2
 1    2 3 121.6 126.7
 2    1 1 121.9 133.5
 2    1 2 136.5 146.1
 2    1 3 145.8 154.0
 2    2 1 102.1 116.0
 2    2 2 112.0 121.3
 2    2 3 114.6 137.3
 3    1 1 133.4 132.4
 3    1 2 139.1 141.8
 3    1 3 157.3 156.1
 3    2 1 101.2  89.0
 3    2 2 109.8 104.6
 3    2 3 111.0 107.7
 4    1 1 124.9 133.4
 4    1 2 140.3 147.7
 4    1 3 147.1 157.7
 4    2 1 110.5  99.1
 4    2 2 117.7 100.9
 4    2 3 129.5 116.2

Vielen Dank im Voraus für Ihre Zeit und Zusammenarbeit.

War es hilfreich?

Lösung

Dies kann manchmal in nlme / lme4 zufriedenstellend gefälscht werden, indem Sie einfach Ihre Daten wie neu formatieren

require(reshape)
Data = melt(data, id.vars=1:3, variable_name='Y')
Data$Y = factor(gsub('Y(.+)', '\\1', Data$Y))
> Data
  Block A B Y value
1     1 1 1 1 135.8
2     1 1 2 1 149.4
3     1 1 3 1 155.4
4     1 2 1 1 105.9
5     1 2 2 1 112.9
6     1 2 3 1 121.6
...

und fügen Sie dann die neue Variable Y in Ihr lineares gemischtes Modell ein.

Für echte multivariate generalisierte lineare gemischte Modelle (MGLMM) benötigen Sie jedoch wahrscheinlich das sabreR-Paket oder ähnliches.Zum Paket gibt es auch ein ganzes Buch, Multivariate Generalized Linear Mixed Models Using R .Wenn Sie einen Proxy für eine abonnierende Institution haben, können Sie diesen möglicherweise sogar kostenlos von http://www.crcnetbase.com herunterladen/ isbn / 9781439813270 .Ich würde Sie dort für weitere Ratschläge verweisen, da dies ein fleischiges Thema ist und ich ein Anfänger bin.

Andere Tipps

lmer und sein älteres Geschwister lme sind von Natur aus "ein Parameter übrig von ~".Schauen Sie sich die Autopakete an.Es bietet keine Unterstützung für wiederholte Messungen von der Stange, aber Sie finden einige Kommentare zu diesem Thema, indem Sie die R-Liste durchsuchen:

John Fox über Autopaket

@ Johns Antwort oben sollte weitgehend richtig sein.Sie fügen dem Modell eine Dummy-Variable hinzu (dh die Faktorvariable Y).Hier haben Sie 3 Indizes i= 1...N für Beobachtungen, j=1,...,4 für Blöcke und h=1,2 für die abhängige Variable.Sie müssen aber auch den Fehlerterm der Stufe 1 auf 0 (oder nahe Null) setzen, was ich nicht sicher bin, ob lme4 dies tut.Ben Bolker könnte weitere Informationen liefern.Dies wird ausführlicher in Goldstein (2011), Kapitel 6 und Kapitel 7 für latente multivariate Modelle beschrieben.

IE

Y_hij=beta_ {01} z_ {1ij} + \ beta_ {02} z_ {2ij} + \ beta X + u_ {1j} z_ {1ij} + u_ {2j} z_ {2ij}

Also:

require(reshape2)
Data = melt(data, id.vars=1:3, variable_name='Y')
Data$Y = factor(gsub('Y(.+)', '\\1', Data$Y))

m1 <- lmer(value ~ Y + A*B + (1|Block) + (1|Block*A), data= Data)
# not sure how to set the level 1 variance to 0, @BenBolker
# also unclear to me if you're requesting Y*A*B instead of Y + A*B

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top