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
相关产品推荐
相关产品推荐

