当前位置:   article > 正文

广义线性模型(GLM)_glm模型

glm模型

广义线性模型(generalized linear model, GLM)是简单最小二乘回归(OLS)的扩展,在OLS的假设中,响应变量是连续数值数据且服从正态分布,而且响应变量期望值与预测变量之间的关系是线性关系。而广义线性模型则放宽其假设,首先响应变量可以是正整数或分类数据,其分布为某指数分布族。其次响应变量期望值的函数(连接函数)与预测变量之间的关系为线性关系。因此在进行GLM建模时,需要指定分布类型和连接函数

 
在R中通常使用glm函数构造广义线性模型,其中分布参数包括了binomaial(两项分布)、gaussian(正态分布)、gamma(伽马分布)、poisson(泊松分布)等。和lm函数类似,glm的建模结果可以通过下述的泛型函数进行二次处理,如summary()、coef()、confint()、residuals()、anova()、plot()、predict()
 
一、Logistic回归
 
Logistic回归中假设响应变量服从二项分布,参数family设置为binomial,连接函数link设置为logit,我们以AER包中的Affairs数据集作为例子。该数据集是关于婚姻出轨,其中affairs变量表示出轨次数,数据集中还包括结婚时间、教育、宗教等其它变量。由于affairs为正整数,为了进行Logistic回归先要将其转化为二元变量。
1data(Affairs, package='AER')
2Affairs$ynaffair[Affairs$affairs < 0] <- 1
3Affairs$ynaffair[Affairs$affairs < 0] <- 0
4Affairs$ynaffair <- factor(Affairs$ynaffair,
5levels=c(0,1),
6labels=c("No","Yes"))
7model.L <- glm(ynaffair ~ age + yearsmarried + religiousness +rating, data=Affairs, family=binomial())
8summary(model.L)
 
若样本观测值变异性过大,即出现了过度离散现象,此时仍使用二项分布假设就会影响系数检测的显著性。那么补救的方法是使用准二项分布(quasibinomial)。首先要检测样本是否存在过度离散现象,方法是用残差除以残差自由度,若超过1则意味着过度离散。那么将family参数改为quasibinomial。
 
其它和Logistic回归相关的函数还包括:robust包中的glmRob函数实施稳健GLM;mlogit包中的mlogit函数对多分类变量进行logistic回归;rms包中的lrm函数对顺序变量进行Logistic回归。
 二、Poisson回归
 
泊松回归假设响应变量服从泊松分布,而连接函数为log函数。仍以前面未转化的Affairs数据集为例。建立模型后通过coef函数来提取模型系数,因为泊松回归中响应变量经过了log函数变换,所以对系数进行指数变换可更好的对结果进行解释。从中观察到,在其它变量不变前提下,结婚时间增长1年,那么出轨次数期望值则变为之前的1.11倍。

1model.P <- glm(affairs ~ age + yearsmarried + religiousness +rating, data=Affairs, family=poisson())
2exp(coef(model.P))

 (Intercept)          age  yearsmarried religiousness        rating
15.6175253     0.9733061     1.1163656     0.6971279     0.6691823
 
同样,在进行泊松分布也要考虑过度离散现象。其检测方法同样是残差除以其自由度。若确定过度离散存在,则要将family参数设置为准泊松分布(quasipoisson)。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/722762
推荐阅读
相关标签
  

闽ICP备14008679号