2016-08-09 6 views
0

Ich berechnete ein lineares gemischtes Modell unter Verwendung der Pakete lme4 und lsmeans mit der lmer-Funktion, wobei ich eine abhängige Variable rv und die interagierenden Faktoren Behandlung, Zeit, Alter und Rasse habe. Ich bin an der Änderung der Antwortvariablen im Laufe der Zeit interessiert, deshalb verwende ich die lstrends-Funktion. So weit, ist es gut. Das Problem ist, ich muss die Antwortvariable Wurzel setzen, um das Modell richtig zu passen. Aber die pairs-Funktion gibt nur eine Antwort auf die Quadratwurzel des rv, schwer zu interpretieren!Rücktransformierender Kontrast lstrends ergibt r

Also habe ich versucht, die Reaktionsvariable nach Paare Back-Transformation:

model.lmer <- lmer(sqrt(rv) ~ treat*time*age*race + (1|individual), data=mydata) 
model.lst <- lstrends(model.lmer, ~treat | age*race , var = "time", type="response") 
pairs(mouse.lst, type="response") 

Das ist offensichtlich nicht funktioniert, wie sie in der Verpackung angegebenen selbst:

# Transformed response 
sqwarp.rg <- ref.grid(update(warp.lm, sqrt(breaks) ~ .)) 
summary(sqwarp.rg) 

# Back-transformed results - compare with summary of 'warp.rg' 
summary(sqwarp.rg, type = "response") 

# But differences of sqrts can't be back-transformed 
summary(pairs(sqwarp.rg, by = "wool"), type = "response") 

# We can do it via regrid 
sqwarp.rg2 <- regrid(sqwarp.rg) 
summary(sqwarp.rg2) # same as for sqwarp.rg with type = "response" 
pairs(sqwarp.rg2, by = "wool") 

Anybode eine Idee, wie um dieses spezielle Problem zu lösen? Danke im Voraus!

edit1:

Es ist wie der folgende Code aussehen könnte:

summary(pairs(lsmeans(rg.regrid, ~ treat | race*age, trend="time")), type="response") 

Das Problem ist, ich kann nicht das Referenzgitter für lstrends ändern, nur für lsmeans, weil das erste Argument in lstrends oder lsmeans mit trend = "time" benötigt das lineare mixed-effect-model (model.lmer) nur aus dem referenzraster wie in lsmeans, ohne das trend-argument ... Das ist wahrscheinlich der Grund, warum ich die Daten nicht mit zurücktransformieren kann

edit2: Das hier fasst mein Problem vor tty gut:

model.sqrt <- lmer(sqrt(rv) ~ time*treat*race*age, data=mydata) 
rg <- ref.grid(model.sqrt) 
rg.regrid <- regrid(rg) 
summary(pairs(lsmeans(rg.regrid, ~treat | race*age*time), type = "response")) 

funktioniert perfekt.

summary(pairs(lsmeans(rg.regrid, ~treat | race*age, trend="time"), type = "response")) 

gibt die folgenden Fehler:

Error in summary(pairs(lsmeans(rg.regrid, ~vns | gen * age, trend = "time"), : 
error in evaluating the argument 'object' in selecting a method for function 'summary': Error in data[[var]] : subscript out of bounds 

Wie um den Fehler zu vermeiden und noch in der Lage sein, meine Daten Back-Transformation?

Antwort

0

Es scheint überhaupt nicht möglich zu sein - die Rücktransformation wäre ein komplizierter Vorgang ohne offensichtliches Muster. Das hat der Ersteller des Pakets gesagt.

+0

war das eine persönliche Kommunikation (z. B. E-Mail), oder ist es irgendwo dokumentiert? –

+0

Es war eine persönliche Mitteilung, aber es gibt kleine Hinweise in der lsmeans-Dokumentation selbst: "Hinweis: lstrends berechnet einen Differenzenquotienten basierend auf zwei leicht unterschiedlichen Referenzgittern. Daher muss er mit einem Modellobjekt aufgerufen werden, nicht ein ref.grid-Objekt. " Deshalb hat mein letzter Ansatz unter edit2 nicht funktioniert. Mathematisch gesehen ist es auch klar, dass es keine leichte Transformation sein würde, also deutete dies bereits darauf hin, dass es nicht funktionieren würde. –

+0

Hinweis - Ich habe eine Antwort dazu auf Cross Validated - http://stats.stackexchange.com/questions/228958/back-transforming-contrast-lstrends-results-in-r/229847#229847 geschrieben – rvl

Verwandte Themen