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

基于R语言lme4的组间组内交互混合实验设计模型验证

模型规范验证与修正建议

研究设计与核心假设梳理

  • 受试者:6名急诊医生、6名消化科医生,均接受相同治疗
  • 测量方案:治疗前后分别通过3个不同quality(诊断描述详细程度)的急诊病例,采集诊断评分(diag_diff_ge_pre为治疗前,diag_diff_ge_post为治疗后)
  • 核心假设:
    1. 急诊医生的绩效提升幅度(治疗后-治疗前)高于消化科医生,对应group*time交互效应
    2. 随着病例quality提升,急诊医生的绩效提升幅度比消化科医生更大,对应group*quality交互效应

当前模型的核心问题

  1. 数据结构不匹配:原数据为宽格式(pre/post分两列),但模型中调用了time变量,实际数据中并无该字段,直接运行会报错。必须先将数据转换为包含time变量的长格式。
  2. 随机效应设定不合理:(quality|id)的设定逻辑有误——quality是病例的固定属性,并非随个体变化的随机变量。正确的嵌套结构是病例嵌套在个体之下,应优先考虑个体和病例的随机截距。
  3. 样本量限制:仅12个个体,复杂的随机斜率模型(如(quality|id))容易出现收敛问题,统计效力不足。

修正步骤与模型代码

步骤1:转换数据为长格式

生成time变量,将pre/post评分合并为一列:

library(tidyr)
data_ex_long <- data_ex %>%
  pivot_longer(cols = c(diag_diff_ge_pre, diag_diff_ge_post),
               names_to = "time",
               values_to = "diag_diff_ge",
               names_prefix = "diag_diff_ge_") %>%
  mutate(time = factor(time, levels = c("pre", "post")))

步骤2:修正后的推荐模型(ANCOVA思路,统计效力更高)

该思路以治疗后评分为因变量,纳入治疗前评分控制基线差异,同时验证交互效应:

library(lme4)
model_correct <- lmer(diag_diff_ge ~ time * group + quality * group + 
                        diag_diff_ge_pre + experience + autonomy + know_exp + attitude +
                        (1|id) + (1|case),  # 控制个体、病例的随机截距
                      data = data_ex_long)
summary(model_correct)
  • time:group交互项:直接验证"急诊医生绩效提升幅度是否高于消化科医生"的核心假设
  • quality:group交互项:验证"病例quality越高,急诊医生提升幅度优势越明显"的假设
  • 随机效应(1|id)控制个体间的基线差异,(1|case)控制不同病例的固有评分差异

备选模型:直接建模绩效提升幅度

若更直观地关注"提升幅度",可先计算治疗前后的差值,再建模:

data_ex <- data_ex %>%
  mutate(diag_diff_change = diag_diff_ge_post - diag_diff_ge_pre)

model_alternative <- lmer(diag_diff_change ~ group * quality + 
                            experience + autonomy + know_exp + attitude +
                            (1|id) + (1|case),
                          data = data_ex)
summary(model_alternative)
  • 因变量diag_diff_change直接反映绩效提升,group:quality交互项验证第二个假设,group主效应验证第一个假设

额外说明

如果确实想检验个体对不同quality病例的响应差异,可将随机效应替换为(quality|id) + (1|case),但需注意:12个个体的样本量可能无法支撑该复杂模型,容易出现收敛警告,此时可简化为(0 + quality|id) + (1|id) + (1|case)(仅允许个体对quality的斜率变异,不包含截距交叉项)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:15:30