反转变形对比lstrends导致r

时间:2016-08-09 14:06:22

标签: r transformation linear mixed-models lsmeans

我使用包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

如何避免错误并仍然能够对数据进行反向转换?

1 个答案:

答案 0 :(得分:0)

它似乎根本不可能 - 后向转换将是一个复杂的过程,没有任何明显的模式。这就是包裹的创造者所说的。