在R中进行Logistic回归时使用手动预测()和手动计算不匹配。是什么原因?

问题描述 投票:0回答:1

[当我运行逻辑回归并使用predict()函数时,当我使用公式p = 1 /(1 + e ^-(b0 + b1 * x1 ...)手动计算时,我无法获得相同的答案。可能是什么原因?

>test[1,]
      loan_status loan_Amount interest_rate period      sector    sex age grade
10000           0         608      41.72451     12 Online Shop Female  44    D3

部门和期间微不足道,因此我从回归分析中将其删除。glm给出:

 Coefficients:
                Estimate Std. Error z value Pr(>|z|)    
(Intercept)   -1.1542256  0.7610472  -1.517  0.12936    
interest_rate -0.0479765  0.0043415 -11.051  < 2e-16 ***
sexMale       -0.8814945  0.0656296 -13.431  < 2e-16 ***
age           -0.0139100  0.0035193  -3.953 7.73e-05 ***
gradeB         0.3209587  0.8238955   0.390  0.69686    
gradeC1       -0.7113279  0.8728260  -0.815  0.41509    
gradeC2       -0.4730014  0.8427544  -0.561  0.57462    
gradeC3        0.0007541  0.7887911   0.001  0.99924    
gradeD1        0.5637668  0.7597531   0.742  0.45806    
gradeD2        1.3207785  0.7355950   1.796  0.07257 .  
gradeD3        0.9201400  0.7303779   1.260  0.20774    
gradeE1        1.7245351  0.7208260   2.392  0.01674 *  
gradeE2        2.1547773  0.7242669   2.975  0.00293 ** 
gradeE3        3.1163245  0.7142881   4.363 1.28e-05 ***
>predictions_1st <- predict(Final_Model, newdata = test[1,], type = "response")
>predictions_1st
answer: **0.05478904** 

但是当我这样计算时:

>prob_1 <- 1/(1+e^-((-0.0479764603)*41.72451)-0.0139099563*44)
>prob_1
answer: 0.09081154

我也用不重要的系数计算,但答案仍然不相同。可能是什么原因?

r glm predict
1个回答
0
投票

您也有一个(Intercept) -1.1542256和一个gradeD3 0.9201400

1/(1+exp(-1*(-1.1542256 -0.0479764603*41.72451 -0.0139099563*44 + 0.9201400)))
#[1] 0.05478904
© www.soinside.com 2019 - 2024. All rights reserved.