广义线性模型(GLM)通过使用一个连接函数关联线性模型与响应变量,并且考虑所有度量的变量偏差对预测值的影响来建立线性回归。广义线性模型结合了其他多个统计模型,包括线性回归、逻辑回归以及泊松回归。glm()函数用来拟合广义线性模型,并通过线性预测变量的符号描述和误差分布描述指定。 下面接着使用mboost包中bodyfat数据集,通过glm()函数建立广义线性模型来预测人体体脂重,简单回顾一下该数据集结构: age:年龄; DEXfat:以DXA计算的体脂重,响应变量; waistcirc:腰围; hipcirc:臀围; elbowbreadth:肘宽; kneebreadth:膝宽; anthro3a:三项人体测量的对数和; anthro3b:三项人体测量的对数和; anthro3c:三项人体测量的对数和; anthro4:三项人体测量的对数和; 下面进行代码建模分析: > data("bodyfat", package="TH.data") > myFormula <- DEXfat ~ age + waistcirc + hipcirc + elbowbreadth + kneebreadth > bodyfat.glm <- glm(myFormula, family=gaussian("log"), data=bodyfat) > summary(bodyfat.glm) Call: glm(formula=myFormula, family=gaussian("log"), data=bodyfat) Deviance Residuals: Min 1Q Median 3Q Max -11.5688 -3.0065 0.1266 2.8310 10.0966 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.734293 0.308949 2.377 0.02042 * age 0.002129 0.001446 1.473 0.14560 waistcirc 0.010489 0.002479 4.231 7.44e-05 *** hipcirc 0.009702 0.003231 3.003 0.00379 ** elbowbreadth 0.002355 0.045686 0.052 0.95905 kneebreadth 0.063188 0.028193 2.241 0.02843 * --- Signif. codes: 0 '***’ 0.001 '**’ 0.01 '*’ 0.05 '.’ 0.1 ' ’ 1 (Dispersion parameter for gaussian family taken to be 20.31433) Null deviance: 8536.0 on 70 degrees of freedom Residual deviance: 1320.4 on 65 degrees of freedom AIC: 423.02 Number of Fisher Scoring iterations: 5 > pred <- predict(bodyfat.glm, type="response") 上面的代码中,参数type表示预测类型,默认情况下是线性预测变量,类型为“response”表示响应变量的尺度。然后使用下面的代码绘制预测结果图像: > plot(bodyfat$DEXfat,pred,xlab="Observed Values", ylab="Predicted Values") > abline(a=0,b=1)
上述代码中,如果设置参数family=gaussian("identity"),则生成的模型将近似于线性回归模型。如果将参数family设置为binomial("logit"),则生成的模型为逻辑回归模型。 |
|
来自: 新用户8719ag3P > 《待分类》