跳到主要内容

随机效应模型

一、直观理解:把个体差异当成“随机抽到的截距”​

随机效应(Random Effects, RE)同样承认个体异质性 aia_i,但假定

ai∼(0,σa2)a_i\sim (0,\sigma_a^2)

且 aia_i 与回归元 XitX_{it} 不相关。模型:

yit=xitTβ+ai+εity_{it}=x_{it}^\mathsf{T}\beta+a_i+\varepsilon_{it}

与 FE 不同,RE 不把 aia_i 当作要消掉的固定参数,而当作误差的一部分,从而可用 GLS 更有效地估计 β\beta,并允许估计不随时间变化的变量系数(在外生时)。

直觉:若个体差异像“随机噪声”而不是与解释变量纠缠的混杂,RE 比混合 OLS 更高效,也比 FE 更能利用 between 信息。

二、适用场景与优缺点​

类型说明
适用场景可辩护 ai⊥Xa_i\perp X;需要估计时不变解释变量;个体是更大总体的随机样本;某些多层/层级数据。
核心优点比 FE 有效(假定成立时);可留时不变 XX;与混合效应/层级模型衔接。
局限与缺点相关随机效应一旦成立失败,RE 不一致;Hausman 显著时常转向 FE;政策评估中 aia_i 与处理相关很常见。

三、核心原理​

复合误差 vit=ai+εitv_{it}=a_i+\varepsilon_{it} 使同一观测在时间内相关:

Corr(vit,vis)=σa2σa2+σε2,t≠s\mathrm{Corr}(v_{it},v_{is})=\frac{\sigma_a^2}{\sigma_a^2+\sigma_\varepsilon^2},\quad t\neq s

RE-GLS 通过对数据进行准去均值实现:

yit−θyˉi=(xit−θxˉi)Tβ+误差y_{it}-\theta\bar y_i=(x_{it}-\theta\bar x_i)^\mathsf{T}\beta+\text{误差}

其中 θ\theta 依赖于 σa2,σε2,T\sigma_a^2,\sigma_\varepsilon^2,T。θ=1\theta=1 时变成 FE;θ=0\theta=0 时变成混合 OLS。

估计步骤:先估方差分量,再 GLS。也可用极大似然/REML(混合模型框架)。

四、关键决策​

1. 关键假定能否成立​

问:XX 的组间差异是否可能与能力、制度等未观测相关?若是,不要 RE。

2. Mundlak 折中​

把个体均值 xˉi\bar x_i 加入 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));

六、如何解释结果​

  1. 为何认为随机效应外生可接受;
  2. 方差分量 σa2,σe2\sigma_a^2,\sigma_e^2 与组内相关;
  3. β\beta 估计与 SE;
  4. 时不变变量的含义;
  5. 与 FE、OLS 对照及 Hausman/Mundlak 结果;
  6. 若 RE 被拒绝,说明改用 FE。

七、常见误区​

1. 因为能估计性别就强行 RE​

识别代价可能是严重偏倚。

2. 把 RE 的 aia_i 当固定可推的个体参数去做排名​

预测的随机效应有收缩,解释要谨慎。

3. 忽略聚类推断​

复合误差结构不等于 SE 自动正确。

4. 与 FE 结果差很大却不追究​

差别大往往提示相关异质性,应偏向 FE。

八、小结​

随机效应模型的核心是:

将个体截距视为与 XX 不相关的随机变量,并用 GLS/混合模型利用 within 与 between 信息。

它在假定成立时更高效、能留时不变变量;一旦个体异质性与解释变量相关,应转向固定效应。报告中必须为“随机”假定提供实质理由,而不是只因软件默认。