随机效应模型
一、直观理解:把个体差异当成“随机抽到的截距”
随机效应(Random Effects, RE)同样承认个体异质性 ,但假定
且 与回归元 不相关。模型:
与 FE 不同,RE 不把 当作要消掉的固定参数,而当作误差的一部分,从而可用 GLS 更有效地估计 ,并允许估计不随时间变化的变量系数(在外生时)。
直觉:若个体差异像“随机噪声”而不是与解释变量纠缠的混杂,RE 比混合 OLS 更高效,也比 FE 更能利用 between 信息。
二、适用场景与优缺点
| 类型 | 说明 |
|---|---|
| 适用场景 | 可辩护 ;需要估计时不变解释变量;个体是更大总体的随机样本;某些多层/层级数据。 |
| 核心优点 | 比 FE 有效(假定成立时);可留时不变 ;与混合效应/层级模型衔接。 |
| 局限与缺点 | 相关随机效应一旦成立失败,RE 不一致;Hausman 显著时常转向 FE;政策评估中 与处理相关很常见。 |
三、核心原理
复合误差 使同一观测在时间内相关:
RE-GLS 通过对数据进行准去均值实现:
其中 依赖于 。 时变成 FE; 时变成混合 OLS。
估计步骤:先估方差分量,再 GLS。也可用极大似然/REML(混合模型框架)。
四、关键决策
1. 关键假定能否成立
问: 的组间差异是否可能与能力、制度等未观测相关?若是,不要 RE。
2. Mundlak 折中
把个体均值 加入 RE 回归,检验其系数,可看作相关随机效应装置,连接 FE/RE。
3. 推断
仍推荐聚类 SE;方差分量估计也有不确定性。
4. 与多层模型
RE 与随机截距层级模型在正态假定下高度相通;教育、医疗嵌套数据常用 fitlme。
五、MATLAB 示例
rng(21);
N = 60; T = 6;
id = repelem((1:N)', T);
a = repelem(randn(N,1)*1.0, T);
x_timevarying = randn(N*T,1);
z_timeinvariant = repelem(randn(N,1), T); % 与 a 不相关
y = 1 + 0.8*x_timevarying + 0.5*z_timeinvariant + a + 0.6*randn(N*T,1);
% 混合 OLS
mdl_pool = fitlm([x_timevarying z_timeinvariant], y);
fprintf("OLS: bx=%.3f, bz=%.3f\n", mdl_pool.Coefficients.Estimate(2:3));
% 用 fitlme 做随机截距(RE)
tbl = table(id, x_timevarying, z_timeinvariant, y, ...
'VariableNames', {'id','x','z','y'});
tbl.id = categorical(tbl.id);
lme = fitlme(tbl, "y ~ x + z + (1|id)");
disp(lme);
% 手工准去均值示意:先估 theta
% 1) FE 残差估 sigma_e,2) between 估 sigma_a
y_w = y; x_w = x_timevarying;
for i = 1:N
idx = id==i;
y_w(idx) = y(idx)-mean(y(idx));
x_w(idx) = x_timevarying(idx)-mean(x_timevarying(idx));
end
sig_e2 = var(y_w - x_w*(x_w\y_w), 1);
% between
ybar = accumarray(id, y, [], @mean);
xbar = accumarray(id, x_timevarying, [], @mean);
zbar = accumarray(id, z_timeinvariant, [], @mean);
% 粗估
sig_a2 = max(var(ybar) - sig_e2/T, 0);
theta = 1 - sqrt(sig_e2/(T*sig_a2 + sig_e2));
fprintf("theta≈%.3f, sig_a2≈%.3f, sig_e2≈%.3f\n", theta, sig_a2, sig_e2);
y_star = y; x_star = x_timevarying; z_star = z_timeinvariant;
for i = 1:N
idx = id==i;
y_star(idx) = y(idx) - theta*mean(y(idx));
x_star(idx) = x_timevarying(idx) - theta*mean(x_timevarying(idx));
z_star(idx) = z_timeinvariant(idx) - theta*mean(z_timeinvariant(idx));
end
b_re = [ones(N*T,1) x_star z_star]\y_star;
fprintf("RE-GLS 近似: intercept=%.3f, bx=%.3f, bz=%.3f\n", b_re(1), b_re(2), b_re(3));
六、如何解释结果
- 为何认为随机效应外生可接受;
- 方差分量 与组内相关;
- 估计与 SE;
- 时不变变量的含义;
- 与 FE、OLS 对照及 Hausman/Mundlak 结果;
- 若 RE 被拒绝,说明改用 FE。
七、常见误区
1. 因为能估计性别就强行 RE
识别代价可能是严重偏倚。
2. 把 RE 的 当固定可推的个体参数去做排名
预测的随机效应有收缩,解释要谨慎。
3. 忽略聚类推断
复合误差结构不等于 SE 自动正确。
4. 与 FE 结果差很大却不追究
差别大往往提示相关异质性,应偏向 FE。
八、小结
随机效应模型的核心是:
将个体截距视为与 不相关的随机变量,并用 GLS/混合模型利用 within 与 between 信息。
它在假定成立时更高效、能留时不变变量;一旦个体异质性与解释变量相关,应转向固定效应。报告中必须为“随机”假定提供实质理由,而不是只因软件默认。