我使用包lme4和lsmeans和lmer函数计算了线性混合模型,其中我有一个因变量rv和相互作用因子处理,时间,年龄和种族。我对响应变量随时间的变化感兴趣,这就是我使用lstrends-function的原因。到现在为止还挺好。问题是,我必须将响应变量平方根,以便正确地拟合模型。但是对函数只给出对rv平方根的响应,难以解释!
所以我试图在对之后对响应变量进行反向转换:
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")
这显然不起作用,如包装本身所述:
# 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知道如何解决这个特殊问题?提前谢谢!
EDIT1:
它可能类似于以下代码:
summary(pairs(lsmeans(rg.regrid, ~ treat | race*age, trend="time")), type="response")
问题是,我不能改变lstrends的参考网格,只是为了lsmeans,因为lstrends中的第一个参数或者lsmeans with trend =&#34; time&#34;需要线性混合效果模型(model.lmer)只是参考网格,就像在lsmeans中一样,没有趋势论证......这可能是我无法用改回数据的原因
edit2:这里很好地总结了我的问题:
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"))
完美无缺。
summary(pairs(lsmeans(rg.regrid, ~treat | race*age, trend="time"), type = "response"))
给出以下错误:
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
如何避免错误并仍然能够对数据进行反向转换?
答案 0 :(得分:0)
它似乎根本不可能 - 后向转换将是一个复杂的过程,没有任何明显的模式。这就是包裹的创造者所说的。