r - 如何用 RHS 上的矩阵项理解/扩展 r 公式

标签 r matrix julia formula

我一直在使用 knots() 函数在 lme4 中进行分段混合效应增长曲线回归 https://stats.stackexchange.com/questions/13361/fitting-piecewise-linear-curves-with-lmer创建结,然后像这样调用 lmer:

> 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 上的矩阵,我能否将矩阵“扩展”为常规向量列在数据框中,这样 Julia 就不会提示了?

我试过:

> 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 矩阵预测器?

最佳答案

基于运行具有较小数据集的测试模型,看起来将矩阵扩展为五个虚拟变量确实按预期工作,R 和 Julia 产生相同的结果(但 Julia 运行 6 分钟,lme4 大约 1 分钟) 5% 的数据子集上的相同随机截距和斜率模型小时)。

关于r - 如何用 RHS 上的矩阵项理解/扩展 r 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565228/

相关文章:

r - 如何有选择地乘以列

julia - 在 Julia 中将水平数组转换为垂直数组

julia - 如何为直方图中的两个组获得相同的 bin 大小? ( Julia )

R:如何编写函数以从数据帧中提取特定值以便输入另一个数据帧

R:用根据上一个值和下一个值计算的增量值填充数据间隙

arrays - 复杂表达式的简化

android - 在 Android 中的 Canvas 上显示位图图像的一部分

dataframe - 如何让函数聚合 "ignore"列?

r 相当于 group by 和立方体

c++ - 使用 Eigen 就地进行 LDLT 分解