广义线性模型(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回归先要将其转化为二元变量。
1 data(Affairs, package='AER')
2 Affairs$ynaffair[Affairs$affairs < 0] <- 1
3 Affairs$ynaffair[Affairs$affairs < 0] <- 0
4 Affairs$ynaffair <- factor(Affairs$ynaffair,
5 levels=c(0,1),
6 labels=c("No","Yes"))
7 model.L <- glm(ynaffair ~age + yearsmarried + religiousness +rating, data=Affairs, family=binomial())
8 summary(model.L)

若样本观测值变异性过大,即出现了过度离散现象,此时仍使用二项分布假设就会影响系数检测的显著性。那么补救的方法是使用准二项分布(quasibinomial)。首先要检测样本是否存在过度离散现象,方法是用残差除以残差自由度,若超过1则意味着过度离散。那么将family参数改为quasibinomial。
其它和Logistic回归相关的函数还包括:robust包中的glmRob函数实施稳健GLM;mlogit包中的mlogit函数对多分类变量进行logistic回归;rms包中的lrm函数对顺序变量进行Logistic回归。
二、Poisson回归
泊松回归假设响应变量服从泊松分布,而连接函数为log函数。仍以前面未转化的Affairs数据集为例。建立模型后通过coef函数来提取模型系数,因为泊松回归中响应变量经过了log函数变换,所以对系数进行指数变换可更好的对结果进行解释。从中观察到,在其它变量不变前提下,结婚时间增长1年,那么出轨次数期望值则变为之前的1.11倍。
1 model.P <- glm(affairs ~ age + yearsmarried + religiousness +rating, data=Affairs, family=poisson())
2 exp(coef(model.P))

(Intercept)          age  yearsmarried religiousness        rating
15.6175253     0.9733061     1.1163656     0.6971279     0.6691823
同样,在进行泊松分布也要考虑过度离散现象。其检测方法同样是残差除以其自由度。若确定过度离散存在,则要将family参数设置为准泊松分布(quasipoisson)。

广义线性模型(GLM)相关推荐

  1. 广义线性模型GLM、GLMM、LMM、MLM、GMM、GEE、广义线性模型GLM和广义线性混合模型的GLMM区别

    R语言广义线性模型GLM.GLMM.LMM.MLM.GMM.GEE.广义线性模型GLM和广义线性混合模型的GLMM区别 目录

  2. c++ error函数_R语言中广义线性模型(GLM)中的分布和连接函数分析

    原文链接:http://tecdat.cn/?p=14874 通常,GLM的连接函数可能比分布更重要.为了说明,考虑以下数据集,其中包含5个观察值 x = c(1,2,3,4,5)y = c(1,2, ...

  3. 广义线性模型(Generalized Linear Models, GLM)与线性回归、逻辑回归的关系

    线性回归和逻辑回归都是广义线性模型的特例. 1 指数分布族 如果一个分布可以用如下公式表达,那么这个分布就属于指数分布族. 这是<数理统计>课本中的相关定义,大多数利用的定义如下(y不是一 ...

  4. 机器学习-算法背后的理论与优化(part2)--广义线性模型

    学习笔记,仅供参考,有错必纠 参考自:机器学习-算法背后的理论和优化: 广义线性模型 广义线性模型的定义 对于第一个问题,后面的分析中会看到在一定的假设下选择Sigrnoid函数是一种必然. 关于第二 ...

  5. logit模型应用实例_广义线性模型应用举例之beta回归及R计算

    广义线性模型应用举例之beta回归及R计算 在前文"广义线性模型 "中,提到广义线性模型(GLM)可概括为服务于一组来自指数分布族的响应变量的模型框架,正态分布.指数分布.伽马分布 ...

  6. PySpark线性回归与广义线性模型

    PySpark线性回归与广义线性模型 1.线性回归 2.岭回归(Ridge Regression)与LASSO回归(LASSO Regression) 3.广义线性模型 (GLM) 本文为销量预测第7 ...

  7. R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析

    R语言广义线性模型函数GLM.广义线性模型(Generalized linear models).GLM函数的语法形式.glm模型常用函数.常用连接函数.逻辑回归.泊松回归.系数解读.过散度分析 目录

  8. R语言构建xgboost模型:使用xgboost构建广义线性模型(GLM):使用gblinear算法拟合线性模型并配置L1和L2正则化

    R语言构建xgboost模型:使用xgboost构建广义线性模型(GLM):使用gblinear算法拟合线性模型并配置L1和L2正则化 目录

  9. GLM+广义线性模型

    GLM+广义线性模型 广义线性模型预经典线性模型的对比: 广义线性模型相对于经典的线性模型(y=wx+b),核心在于引入了连接函数g(.),形式变为:y=g−1(wx+b).,其中g-1表示g函数的逆 ...

最新文章

  1. ASP.NET常用加密解密方法
  2. php如何在添加div的背景颜色_css3颜色渐变:css3如何实现背景颜色渐变?
  3. iTunes 降级安装 12.6
  4. jquery 获取checkbox的checked属性总是undefined
  5. 如何构建高并发高可用的剧场直播云端混流服务?
  6. 【ArcGIS微课1000例】0005:空间连接(Spatial Join)
  7. C++ Primer 第4章数组和指针
  8. 域控制器部署组策略,立即下发强制更新,显示“远程过程调用被取消”,错误代码 8007071a;以及RPC服务器不可用,800706ba【解决方案】
  9. 如何使用xp_cmdshell扩展过程
  10. POJ 2010 Moo University - Financial Aid【堆的应用】
  11. clone ubuntu 启动不能启动网卡
  12. java 发送 json数据_Java web中怎样取得Android通过post发送的json数据
  13. springboot实现支付宝支付功能
  14. rust 案例_深入浅出rust.pdf 高清版
  15. P2627 [USACO11OPEN]Mowing the Lawn G
  16. [好消息]大连.NET俱乐部QQ群开放注册~~~注册有好礼!
  17. 转发:审稿人的拒稿意见
  18. 最近发现一个很全面的历史网站,包含世界各国各个时代内容
  19. 让知识构建未来—知识图谱技术与应用 | AI TIME-33
  20. CentOS7安装K8S V1.23.3

热门文章

  1. 解决区块链三大问题的利器
  2. mysqllongblob
  3. access中,客户端和服务器端链接数据库的详细代码
  4. SSM和Springboot框架比较的优缺点
  5. 设计模式(10)——策略模式
  6. 最新kali之davtest
  7. XMPP 协议的原理和介绍
  8. crontab环境变量问题
  9. sharedpreferences用法,京东面试真题解析,大厂面试题汇总
  10. Linux 状态命令之 sar