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

Stata中margins命令不同分组语法的差异探究

Stata中margins admit与margins, over(admit)的差异解释

你遇到的差异来自两个margins命令对非目标协变量的取值处理逻辑完全不同,具体拆解如下:

核心区别

  • margins admit, at(gre = (220 (100) 800))
    这条命令的逻辑是:针对admit的每个水平(0和1),固定gre为指定的一系列值,其余协变量(比如你的模型里的rank)使用整个样本的均值来计算边际预测值。简单说,就是用全局均值来代表rank的“典型值”,再结合不同admit和gre组合算预测值。

  • margins, over(admit) at(gre = (220 (100) 800))
    这条命令的逻辑是:先按admit分组(分成admit=0和admit=1两个子样本),在每个组内,固定gre为指定值,其余协变量(rank)使用当前组内的均值来计算预测值。也就是每个admit组用自己组的rank平均水平,而非全局均值。

为什么大数据集中差异更显著?

在你的示例数据里,admit两组的rank均值差异可能很小,所以结果差异不明显。但在大数据集中,如果admit不同组之间的协变量(比如rank)分布差异很大,那么用组内均值 vs 全局均值计算出来的预测值、标准误就会出现显著差距——毕竟协变量的取值直接影响回归模型的预测结果。

验证方法

你可以手动计算两组的rank均值来验证:

bysort admit: summarize rank

对比全局均值(summarize rank)和分组均值,就能直观看到差异来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:35:04