You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言分段线性混合效应模型的lsmeans正确获取方法

问题结论与解释

两种结果差异的原因

你拟合的是分段线性混合效应模型,time1和time2是互斥生效的分段变量,二者的取值有严格的对应逻辑,不存在任意组合的可能:

  • 时间点<0(冥想前):time2固定为0,仅time1随时间变化
  • 时间点=0(冥想启动周):time1和time2均为0
  • 时间点>0(冥想后):time1固定为0,仅time2随时间变化

你仅指定time1计算lsmeans时,输出明确标注了Results are averaged over the levels of: time2,也就是lsmeans默认将未指定的time2取所有观测值的平均,相当于强制把不符合逻辑的time1=-1同时time2=1这类不存在的组合纳入平均,得到的结果自然不符合你的实际需求。

正确的计算方法

你需要同时指定两个分段变量,且仅传入符合实际观测逻辑的取值组合,不要加入不存在的time1/time2配对:

# 三个时间点对应的正确分段变量取值
lsmeans(pwmodel, ~ time1 + time2,
        at = list(
          time1 = c(-1, 0, 0),
          time2 = c(0, 0, 1)
        ))

输出的三个结果分别对应时间点-1、0、1的边际均值。如果需要更直观的展示,可以给三个组合加上时间标签:

# 用emmeans包实现的版本也同理
library(emmeans)
emmeans(pwmodel, ~ time_point, 
        at = list(
          time1 = c(-1, 0, 0),
          time2 = c(0, 0, 1),
          time_point = c("-1周", "0周", "1周")
        ))

补充说明

你示例代码中time2的注释有误,误写为“Time (weeks) before introduction of routine”,实际应为冥想后的时间,注意不要影响后续变量定义。

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:54:06