R - 总结逻辑回归模型时如何确定显着性代码?

机器算法验证 r 物流 统计学意义 p 值
2022-04-04 10:41:02

我正在研究了解我使用 glm() 函数在 R 中构建的逻辑回归模型中的影响因素。

根据我的研究,似乎使用 summary() 函数来总结模型是一种流行的方法来识别哪些变量是显着的。然而,我似乎找不到的是对汇总函数为确定每个变量的重要性代码(例如 *)所做的工作的描述。这个答案表明重要性代码只是 p 值的分类,但我不太明白。

有没有人可以帮助我理解 R 是如何计算这个的?

2个回答

首先,z 或 t 值(取决于您经营的家庭)是系数除以标准误差。然后使用此 z 或 t 值从正态或 t 分布导出 p 值。

在我看来,星星并没有真正增加太多。您将在系数表下方看到有一行以“Signif”开头。码”。这给出了关键。因此,标记的系数***是 p 值 < 0.001 的系数。一个其系数被标记**为 p < 0.01。等等。

例如(取自https://stats.idre.ucla.edu/r/dae/logit-regression/):

mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(mylogit)

给出以下输出:

Call:
glm(formula = admit ~ gre + gpa + rank, family = "binomial", 
    data = mydata)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.6268  -0.8662  -0.6388   1.1490   2.0790  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.989979   1.139951  -3.500 0.000465 ***
gre          0.002264   0.001094   2.070 0.038465 *  
gpa          0.804038   0.331819   2.423 0.015388 *  
rank2       -0.675443   0.316490  -2.134 0.032829 *  
rank3       -1.340204   0.345306  -3.881 0.000104 ***
rank4       -1.551464   0.417832  -3.713 0.000205 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 499.98  on 399  degrees of freedom
Residual deviance: 458.52  on 394  degrees of freedom
AIC: 470.52

Number of Fisher Scoring iterations: 4

您可以看到它gre的 ap 值 = 0.038。这有一个星号,因为它 < 0.05。rank4具有 ap 值 = 0.0002,因此具有三个星号,因为它 < 0.001。

我只是使用星号快速扫描表格,但除此之外我从不查看它们。

如果您想立即知道哪些变量(自变量,IV)对您的因变量 (DV) 影响最大,您可以使用以下方法:

install.packages("caret") # run install only if you've never installed it before
library(caret) 
fit<-lm(DV~IV1+IV2+IV3, data=mydata)
varImp(fit, scale = FALSE)

      overall
IV1     -4.3
IV2     7.65
IV3     12.37

具有最高值的 IV 影响最大。确保您不使用 2 个相互之间具有高度相关性的 IV,以避免多重共线性。