我一直使用https://stats.stackexchange.com/questions/13361/fitting-piecewise-linear-curves-with-lmer上发布的lme4
函数在knots()
中进行分段混合效果增长曲线回归,以创建结,然后像这样调用lmer
:< / p>
> df$knot<-knots(df$time,seq(1.5,3.5,.5)
> lmer(outcome ~ predictor*knot + (1+knot|id), data=df)
这很好。 str(df$knot)
表明它是一个矩阵:
num [1:1492895, 1:5] 0 0 0 0 0 0 0 0 0 0 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:5] "1.5" "2" "2.5" "3" ...
为了提高速度,我想使用Julia(通过JuliaCall)来拟合这些模型,但是Julia并不像R那样迷惑矩阵RHS。
所以,我的问题是:R lm
/ lmer
如何在公式的RHS上理解矩阵,我可以将矩阵“扩展”为数据帧中的规则矢量列吗?朱莉娅不会抱怨吗?
我尝试过:
> df$knot1<-df$knot[,1]
> ...
> df$knot5<-df$knot[,5]
然后使用公式
outcome ~ predictor*(knot1+knot2+knot3+knot4+knot5) + (1+knot1+knot2+knot3+knot4+knot5|id)
是吗? R对RHS矩阵预测变量有何作用?
答案 0 :(得分:0)
基于具有较小数据集的运行测试模型,似乎确实将矩阵扩展为五个虚拟变量确实可以按预期工作,其中R和Julia产生了相同的结果(但Julia运行了6分钟,lme4运行了大约2分钟)。 5%的数据子集使用相同的随机截距和斜率模型的小时)。