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

基于MICE插补数据集的配对样本t检验与Cohen's d估计方法咨询

针对MICE插补后配对t检验与Cohen's d计算的解决方案

一、提取完整插补数据集

你可以通过complete()函数从MICE生成的插补对象中提取所有12个插补后的数据集,存为列表格式,方便后续逐个分析:

# 假设你的MICE插补对象名为imp
imputed_datasets <- lapply(1:12, function(i) complete(imp, action = i))

二、在每个插补数据集上执行配对t检验

用lapply()遍历所有插补数据集,运行配对t检验并保存结果:

# 假设配对变量为pre(前测)和post(后测)
t_test_results <- lapply(imputed_datasets, function(df) {
  t.test(df$pre, df$post, paired = TRUE)
})

三、用Rubin规则合并t检验结果

手动实现Rubin规则整合多个插补的t检验结果,得到合并后的统计量:

# 提取每个插补结果的关键指标
estimates <- sapply(t_test_results, function(x) x$estimate)
ses <- sapply(t_test_results, function(x) x$stderr)
dfs <- sapply(t_test_results, function(x) x$parameter)

# 计算合并估计值
pooled_est <- mean(estimates)
# 计算组内方差均值
w_var <- mean(ses^2)
# 计算组间方差
b_var <- var(estimates)
# 合并总方差
total_var <- w_var + (1 + 1/12)*b_var
pooled_se <- sqrt(total_var)
# 计算调整后的合并自由度(Barnard-Rubin法)
df_pooled <- (12 - 1) * (1 + (w_var / ((1 + 1/12)*b_var)))^2

# 得到合并t值与p值
pooled_t <- pooled_est / pooled_se
pooled_p <- 2 * pt(-abs(pooled_t), df = df_pooled)

四、计算并合并配对样本Cohen's d

先定义配对Cohen's d的计算函数,再遍历插补数据集计算,最后合并结果:

# 配对Cohen's d计算函数
paired_cohens_d <- function(pre, post) {
  diff <- post - pre
  mean_diff <- mean(diff)
  sd_diff <- sd(diff)
  return(mean_diff / sd_diff)
}

# 计算每个插补数据集的d值
d_values <- sapply(imputed_datasets, function(df) {
  paired_cohens_d(df$pre, df$post)
})

# 合并d值(通常取均值即可,若需更严谨可结合方差合并)
pooled_d <- mean(d_values)

五、对比完整案例分析结果

将完整案例的分析结果与MICE合并结果直接对比:

# 提取完整案例数据
complete_case <- na.omit(original_data)
# 完整案例配对t检验与Cohen's d
cc_t_test <- t.test(complete_case$pre, complete_case$post, paired = TRUE)
cc_d <- paired_cohens_d(complete_case$pre, complete_case$post)

# 输出对比结果
cat("完整案例分析结果:\n")
cat("t值:", round(cc_t_test$statistic, 3), "p值:", round(cc_t_test$p.value, 3), "Cohen's d:", round(cc_d, 3), "\n\n")
cat("MICE合并分析结果:\n")
cat("t值:", round(pooled_t, 3), "p值:", round(pooled_p, 3), "Cohen's d:", round(pooled_d, 3), "\n")

思路合理性说明

你的现有步骤完全没问题,with()+summary()适合线性模型的参数合并,但针对t检验这类非模型类分析,提取完整插补数据集后逐个分析再用Rubin规则合并是行业标准做法,无需调整核心思路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:06:24