我正在研究了解我使用 glm() 函数在 R 中构建的逻辑回归模型中的影响因素。
根据我的研究,似乎使用 summary() 函数来总结模型是一种流行的方法来识别哪些变量是显着的。然而,我似乎找不到的是对汇总函数为确定每个变量的重要性代码(例如 *)所做的工作的描述。这个答案表明重要性代码只是 p 值的分类,但我不太明白。
有没有人可以帮助我理解 R 是如何计算这个的?
我正在研究了解我使用 glm() 函数在 R 中构建的逻辑回归模型中的影响因素。
根据我的研究,似乎使用 summary() 函数来总结模型是一种流行的方法来识别哪些变量是显着的。然而,我似乎找不到的是对汇总函数为确定每个变量的重要性代码(例如 *)所做的工作的描述。这个答案表明重要性代码只是 p 值的分类,但我不太明白。
有没有人可以帮助我理解 R 是如何计算这个的?
首先,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,以避免多重共线性。