线性混合效应模型:同被试回归因子分离及数据结构构建疑问
问题1:在线性混合效应模型中分离同一被试的两个回归因子
要搞定这个问题,核心是把变量的层次关系和随机效应的设定理清楚,具体可以这么做:
- 先明确两个回归因子的层级:如果它们都是被试内的观测级变量(比如每个被试的每一次观测都有这两个变量的值),直接把它们都放进固定效应里,同时给被试加上随机截距(用来捕捉被试间的个体差异)。比如用lme4包的话,代码大概是:
如果这两个因子的效应在不同被试身上有差异(比如有的被试对X1更敏感,有的对X2更敏感),还可以给它们加随机斜率:lmer(Y ~ X1 + X2 + (1 | subj_id), data = your_data)lmer(Y ~ X1 + X2 + (1 + X1 + X2 | subj_id), data = your_data) - 如果两个回归因子是嵌套在被试下的不同组(比如每个被试有好几个X1的水平,每个X1水平下又有X2的取值),那一定要把数据整理成长格式——每一行对应一个单独的观测,这样模型才能准确区分两个因子的独立效应。
问题2:线性混合效应模型的数据结构构建
先帮你梳理下你的实验设计:6种条件是「0%/20%/30%」和「X3=0/1」的交叉组合,每个被试在每种条件下有1个Y值;三个预测变量在每个条件下有6次试次数据。针对这个情况,我给你一步步说怎么搭数据结构:
- 第一步:整理Y数据到长格式
每个被试对应6行数据,每行对应一种条件。你可以把条件拆成两个单独的列:比如percentage(取值0、20、30)和cond_X3(取值0、1,避免和预测变量的X3混淆),再加上被试IDsubj_id和对应的Y值,这部分的结构大概是:subj_id percentage cond_X3 Y 1 0 0 12 1 0 1 15 1 20 0 18 - 第二步:处理预测变量的6次试次数据
因为你的Y是条件级的(每个条件1个值),预测变量也需要汇总到条件级:把每个被试×每个条件下的6次试次数据取均值(或者你需要的其他统计量,比如中位数),得到每个条件下的预测变量值,然后和上面的Y数据合并。比如三个预测变量是X1、X2、pred_X3,合并后的数据结构就变成:subj_id percentage cond_X3 Y X1_mean X2_mean pred_X3_mean 1 0 0 12 3.2 5.1 0.4 - 第三步:模型构建的小建议
- 固定效应可以加入
percentage(如果是连续变量就直接用,要是想看不同百分比的差异就转成分类变量)、cond_X3,还有三个汇总后的预测变量,以及你感兴趣的交互项(比如percentage:cond_X3,看百分比和X3的交互效应)。 - 随机效应至少要加被试的随机截距
(1 | subj_id),如果某个固定效应的影响在被试间差异很大(比如不同被试对百分比的反应不一样),可以加上对应的随机斜率,比如(1 + percentage | subj_id)。
- 固定效应可以加入
- 关于你提到的「被迫合并三个条件下的响应变量」:只要你保留了区分原条件的标识列(比如加一个
original_condition列),直接把这个列放进固定效应里,就能分离不同原条件的影响,完全不影响你达成研究目标,不用太担心。
内容的提问来源于stack exchange,提问作者user196416
相关产品推荐
相关产品推荐

