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

Logistic回归新增变量后均值预测概率变化及STATA计算问询

关于Stata Logistic回归中预测概率下降及百分比变化计算的解答

一、为什么加入更多变量后均值处的预测概率会下降?

这其实是Logistic回归模型拟合后的正常现象,核心原因可以拆解为两点:

  • 参数重新调整的影响:每加入新变量,Stata会重新拟合整个模型,所有变量的回归系数都会被重新估计。如果新变量(比如你例子里的distance)和因变量outcome呈负相关,或者和已有变量存在共线性,就可能拉低所有变量均值组合下的预测概率。
  • 均值计算范围的变化:margins, atmeans是用当前模型所有变量的均值来计算预测概率的。加入新变量后,这个“平均个体”的定义变了——多了新变量的均值维度,和之前仅用部分变量均值计算的结果自然会有差异。

举个直观的例子:如果distance越大,outcome发生的概率越低,那加入distance后,用它的均值代入计算,整体预测概率自然会比不含distance时更低,这完全符合数据规律,不是模型出错了。

二、如何计算加入感兴趣变量后预测概率的百分比变化?

你可以通过分别拟合精简模型和全模型,提取两个模型在均值处的预测概率,再手动计算变化率,具体代码如下:

* 加载示例数据
use http://www.stata-press.com/data/r13/margex

* 第一步:拟合不含感兴趣变量(比如distance)的精简模型并保存结果
quietly logit outcome i.sex age i.group
margins, atmeans
estimates store model_simple  // 把精简模型结果存起来

* 第二步:拟合包含所有变量的全模型并保存结果
quietly logit outcome i.sex age distance i.group
margins, atmeans
estimates store model_full  // 把全模型结果存起来

* 第三步:提取两个模型的均值处预测概率
estimates restore model_simple
scalar prob_simple = _b[_cons]  // 提取精简模型的预测概率

estimates restore model_full
scalar prob_full = _b[_cons]  // 提取全模型的预测概率

* 第四步:计算百分比变化并展示
scalar pct_change = (prob_full - prob_simple) / prob_simple * 100
display "加入变量后均值处预测概率的百分比变化为: " %6.2f pct_change "%"

运行这段代码后,你就能得到精确的百分比变化值。如果结果为负,就对应你观察到的预测概率下降现象。

另外,如果你想单独看某个变量(比如distance)对预测概率的边际影响,还可以用margins的at()选项固定其他变量均值,对比该变量不同取值下的概率变化:

quietly logit outcome i.sex age distance i.group
margins, at(distance=(mean mean+1)) atmeans  // 对比distance在均值和均值+1时的概率差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:16:32