我有这样的数据:
dat <- data.frame(ID = rep(1:4, each = 4),
score = c(0, 0, -3, -5, 0, -4, -4, -4, -1, -1, -2, -3, 0, 1, -2, -2),
visit1 = c(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0),
visit2 = c(0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0),
visit4 = c(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),
visit = c(v1, v1, v1, v1, v2, v2, v2, v2, v3, v3, v3, v3, v4, v4, v4, v4),
trt = c(A, A, A, A, A, A, A, A, P, P, P, P, P, P, P, P))现在,我使用mmrm包(https://cran.r-project.org/web/packages/mmrm/index.html)安装了一个混合模型重复度量,如下所示:
fit <- mmrm(formula = score ~ visit1 + visit2 + visit4 + visit2:trt + visit4:trt + us(ID | visit), data = dat)我感兴趣的是,在最近一次访问(访问4/V4)的治疗组的LS方法和这方面的对比。使用下面的模型fit2 <- mmrm(formula = score ~ visit + visit:trt + us(ID | visit), data = dat),我可以简单地执行emmeans(m1, specs = pairwise ~ treat | visit)。但是,如果我尝试为访问使用0/1变量(visit1、visit2和visit4),则会得到一个错误:Error in h_df_1d_list(est = est, var = var, v_num = v_num, v_denom = v_denom) : Assertion on 'var' failed: Element 1 is not >= 2.22507e-308.
关于这一切,我有两个问题:
发布于 2022-11-10 21:42:09
这失败了,因为模型中没有名为visit的预测器。
emmeans()将不使用虚拟变量作为预测器。emmeans()的设计是对所有预测值的组合使用一个参考网格,例如,对visit1 = 1和visit2 = 1进行预测是没有意义的。
重新调整你的模型,用因素作为预测因子。或者使用score作为多变量响应。我不知道mmrm()需要什么,但是如果它不支持这些可能性之一,它应该支持。
https://stackoverflow.com/questions/74387384
复制相似问题