基于混合模型设计,如何用R计算神经影像研究的样本量?
神经影像研究统计方案咨询
研究背景与模型设定
我计划开展一项神经影像研究,要求被试填写问卷得到技术使用得分,该得分将作为连续协变量纳入模型(非被试内变量)。研究关注被试在3种任务条件下的任务准确率,每种条件下包含两类任务(同任务不同刺激),设定的被试内变量为:3种任务条件,每种条件下含5种任务类型(因某类任务重复两次,故取5而非6)。
拟构建的模型如下:
Accuracy (因变量) ~ score*Task Conditions(3)/Task Type (5/6) 或 score + Task Conditions/Task Type (5/6) + Gender
咨询问题
- 选用MANOVA是否合适?
- 如何基于以下参数计算样本量:
effect size f = 0.314 power = 0.80 alpha = 0.05
- 无其他参数时,推荐使用R的哪个包/函数?
回答
1. MANOVA适用性判断
MANOVA并不适合你的研究设计,核心原因:
- 你的研究仅以准确率这单一指标作为因变量,而MANOVA的核心应用场景是多独立因变量的统计检验,单因变量场景下重复测量方差分析(Repeated Measures ANOVA)或线性混合效应模型更适配。
- 你的模型包含连续协变量(技术使用得分)、被试内变量(任务条件、任务类型)以及被试间变量(性别),更适合采用含协变量的混合设计ANOVA(重复测量ANCOVA),或是线性混合效应模型——后者能更好处理任务类型嵌套在任务条件下的结构,也更灵活应对数据缺失等问题。
2. 样本量计算方法
基于你给出的参数,针对重复测量设计的样本量计算逻辑如下:
- 你提供的效应量f属于Cohen's f,0.314对应中等偏大的效应强度。
- 重复测量设计的样本量计算需要考虑被试内变量的组内相关系数(ICC),若无预设值,可采用0.5的通用经验值(任务间相关性高则上调,低则下调)。
- 计算时可先通过单因素ANOVA的样本量公式得到基础值,再根据被试内水平数、ICC计算校正因子,最终得到所需样本量。
3. R包与函数推荐
针对重复测量ANOVA的样本量计算
推荐使用pwr包的pwr.f2.test()函数,可将重复测量设计转化为协方差分析框架计算:
library(pwr) # 将Cohen's f转换为f² f_squared <- (0.314^2)/(1 - 0.314^2) # df1为被试内变量的自由度(例:3种任务条件的自由度为3-1=2) power_result <- pwr.f2.test(u = 2, f2 = f_squared, sig.level = 0.05, power = 0.8) # 样本量n = 误差自由度(v) + 分子自由度(u) + 协变量自由度(性别为1) + 1 sample_size <- power_result$v + power_result$u + 1 + 1
贴合嵌套设计的模拟方法
如果要适配任务类型嵌套在任务条件下的结构,推荐用simr包结合lme4做模拟计算,更贴合实际研究设计:
library(lme4) library(simr) # 构建模拟用的混合效应模型框架(需先准备模拟数据集sim_data) model <- lmer(Accuracy ~ score * TaskCondition + Gender + (1|Subject) + (1|TaskCondition/TaskType), data = sim_data) # 设定目标效应量 fixef(model)["score:TaskCondition2"] <- 0.314 # 模拟检验效能,调整样本量至达标 powerSim(model, nsim = 100, power = 0.8)
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

