逻辑回归是回归模型,其中响应变量(因变量y)具有诸如True / False或0/1的分类值。 它实际上基于将其与预测变量(自变量x)相关的数学方程测量二元响应的概率,作为响应变量的值。
逻辑回归的一般数学方程为 :
y = 1/(1+e^-(a+b1x1+b2x2+b3x3+…))
以下是所使用的参数的描述 :
- y是响应变量。
- x是预测变量。
- a和b是作为数字常数的系数。
glm()函数
逻辑回归中glm()函数的基本语法是:
glm(formula,data,family)
以下是所使用的参数的描述:
- formula是表示变量之间的关系的符号。
- data是给出这些变量的值的数据集。
- family是R语言对象来指定模型的细节。 它的值是二项逻辑回归。
举个栗子:
内置数据集“mtcars”描述具有各种发动机规格的汽车的不同型号。
在“mtcars”数据集中,传输模式(自动或手动)由am列描述,它是一个二进制值(0或1)。 我们可以在列“am”和其他3列(hp,wt和cyl)之间创建逻辑回归模型。
输入:
# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]
print(head(input))
输出:
am cyl hp wt
Mazda RX4 1 6 110 2.620
Mazda RX4 Wag 1 6 110 2.875
Datsun 710 1 4 93 2.320
Hornet 4 Drive 0 6 110 3.215
Hornet Sportabout 0 8 175 3.440
Valiant 0 6 105 3.460
……… …………… ………… …………
创建回归模型:
我们使用glm()函数创建回归模型,并得到其摘要进行分析。
输入:
input <- mtcars[,c("am","cyl","hp","wt")]
am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)
print(summary(am.data))
输出:
Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.17272 -0.14907 -0.01464 0.14116 1.27641
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 19.70288 8.11637 2.428 0.0152 *
cyl 0.48760 1.07162 0.455 0.6491
hp 0.03259 0.01886 1.728 0.0840 .
wt -9.14947 4.15332 -2.203 0.0276 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 43.2297 on 31 degrees of freedom
Residual deviance: 9.8415 on 28 degrees of freedom
AIC: 17.841
Number of Fisher Scoring iterations: 8
关于glm()报错的解答
Warning messages:
- glm.fit:算法没有聚合
- glm.fit:拟合機率算出来是数值零或一
上述两个报错点可以参照:
https://www.cnblogs.com/runner-ljt/p/4574275.html
详解summary
Deviance Residuals:偏差残差统计量。
在理想情况下服从正态分布,普通最小二乘法在数学上保证产生均值为0的残差。
- 在此例中,中位数的符号为负(-0.01464),表明向左偏移,中位数的大小表明偏斜的程度。
- 第一个四分位数(1Q)和第三个四分位数(3Q)为钟形分布的幅度。在这种情况下,3Q有较大的幅度(0.14116+|-0.14907|)表明向右倾斜。
- 最大和最小残差用来检验数据中产生较大残差的离群值。
Coefficients:系数。
如果一个变量的系数为0,那么这个变量是没有意义的,它对模型毫无贡献。
这里的系数只是估计,不会真正为0,那么从统计的角度而言,真正的系数为0的可能性是多大?这就依赖于z统计量(z value)和p值(Pr(>|t|))。
-
(Intercept)的Estimate ---- 公式中的b
-
vyl、hp、wt的Estimate ----公式中的系数
-
Pr(>|z|)—p-value:P值。概率p值估计了系数不显著的可能性,越小越好。如果p值很大,说明不显著的可能性很高。一般情况下如果p值远小于于显著水平α=0.05(可更换显著性水平的值)
-
Std.Error是回归系数的标准误差
-
Null deviance:无效偏差(零偏差); Residual deviance:剩余偏差 ;无效偏差和剩余偏差之间的差异越大越好
-
AIC:评价模型拟合的重要指标; AIC越低越好
结论:
在总结中,对于变量“cyl”和“hp”,最后一列中的p值(Pr(>|z|))大于0.05,我们认为它们对变量“am”的值有贡献是无关紧要的。 只有重量(wt)影响该回归模型中的“am”值。