如何使用逻辑回归 beta + 原始数据来获得概率

机器算法验证 回归 物流
2022-01-25 19:47:07

我有一个模型(来自文献)。我也有预测变量的原始数据。

我应该使用什么方程来获得概率?基本上,我如何结合原始数据和系数来获得概率?

2个回答

逻辑模型的链接函数是f:xlogx1x. 它的倒数是g:xexpx1+expx.

在逻辑模型中,左侧是π,成功的概率:

f(π)=β0+x1β1+x2β2+

因此,如果你想π你需要评估g在右侧:

π=g(β0+x1β1+x2β2+).

这是应用研究人员的答案(使用统计包 R)。

首先,让我们创建一些数据,即我正在为一个简单的二元逻辑回归模型模拟数据log(p1p)=β0+β1x

> set.seed(3124)
> 
> ## Formula for converting logit to probabilities 
> ## Source: http://www.statgun.com/tutorials/logistic-regression.html
> logit2prop <- function(l){exp(l)/(1+exp(l))}
> 
> ## Make up some data
> y <- rbinom(100, 1, 0.2)
> x <- rbinom(100, 1, 0.5)

预测变量x是一个二分变量:

> x
  [1] 0 1 1 1 1 1 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 
 [48] 1 1 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 0
 [95] 1 1 1 1 1 0

其次,估计截距(β0) 和斜率 (β1)。如您所见,截距是β0=0.8690斜率为β1=1.0769.

> ## Run the model
> summary(glm.mod <- glm(y ~ x, family = "binomial"))

[...]

    Coefficients:
            Estimate Std. Error z value Pr(>|z|)   
(Intercept)  -0.8690     0.3304  -2.630  0.00854 **
x            -1.0769     0.5220  -2.063  0.03910 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

[...]

第三,与大多数统计软件包一样,R 可以计算拟合值,即概率。我将使用这些值作为参考。

> ## Save the fitted values
> glm.fitted <- fitted(glm.mod)

四、这一步直接指你的问题:我们有原始数据(这里:x) 我们有系数 (β0β1)。现在,让我们计算 logits 并将这些拟合值保存在glm.rcdm

> ## "Raw data + coefficients" method (RDCM)
## logit = -0.8690 + (-1.0769) * x
glm.rdcm <- -0.8690 + (-1.0769)*x

最后一步是比较基于 Rfitted函数 ( glm.fitted) 和我的“手工”方法 ( logit2prop.glm.rdcm) 的拟合值。我自己的函数logit2prop(见第一步)将 logits 转换为概率:

> ## Compare fitted values and RDCM
> df <- data.frame(glm.fitted, logit2prop(glm.rdcm))
> df[10:25,]
> df[10:25,]
   glm.fitted logit2prop.glm.rdcm.
10  0.1250000            0.1250011
11  0.2954545            0.2954624
12  0.1250000            0.1250011
13  0.2954545            0.2954624
14  0.2954545            0.2954624
15  0.1250000            0.1250011
16  0.1250000            0.1250011
17  0.1250000            0.1250011
18  0.2954545            0.2954624
19  0.1250000            0.1250011
20  0.1250000            0.1250011
21  0.1250000            0.1250011
22  0.1250000            0.1250011
23  0.1250000            0.1250011
24  0.1250000            0.1250011
25  0.2954545            0.2954624