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

Stata中如何存储混合模型各学生的随机斜率与随机截距

提取混合模型中个体的随机截距与斜率

问题背景

用户有如下面板数据:

STUDENT TIME    SCORE
1   1   9
1   2   11
1   3   7
2   1   8
2   2   6
2   3   14
2   4   11
3   1   14
3   2   10
3   3   9
4   1   14
4   2   6

已执行混合模型命令:

mixed SCORE || STUDENT:TIME

需要为每个STUDENT提取对应的随机截距(RANDOMINTERCEPT)和随机斜率(RANDOMSLOPE),生成仅包含这两个字段的个体级数据集。


解决方案

方法1:用predict提取后汇总

运行完mixed命令后,直接用predict提取每个观测的随机效应,再按学生分组汇总:

// 提取随机截距(对应模型中STUDENT组的截距项)
predict random_intercept, reffects level(1)
// 提取随机斜率(对应STUDENT组中TIME的随机效应)
predict random_slope, reffects level(1) eq(STUDENT:TIME)

// 按学生分组,保留唯一的截距和斜率
collapse (first) random_intercept random_slope, by(STUDENT)

执行后,当前数据集就只有4行(对应4个学生),包含STUDENT、random_intercept、random_slope三个变量。

方法2:用ranef直接导出随机效应数据集

ranef命令可以一步生成包含所有个体随机效应的数据集,操作更简洁:

// 先运行混合模型
mixed SCORE || STUDENT:TIME
// 导出随机效应到当前数据集
ranef, post
// 重命名变量为目标名称
rename _re1 random_intercept
rename _re2 random_slope
// 只保留需要的变量
keep STUDENT random_intercept random_slope

这个方法会直接生成个体级的结果数据集,无需额外汇总步骤。

两种方法得到的结果完全一致,可根据个人习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:13:23