广义可加模型(generalized additive models,GAMs)是广义线性模型和可加模型的结合,由 Hastie T 和 Tibshirani R于1986 年首先提出,其不要求应变量与自变量满足线性关系,适用于非线性数据的研究。既往我们已经介绍了使用VGAM包进行广义可加模型,今天我们继续来介绍使用mgcv包进行广义可加模型,这里我们使用我们原来的臭氧的数据(公众号回复:臭氧可以获得数据),主要描述的是臭氧浓度和大气一些相关指标的情况,因为有些数据是非线性的,使用Logistic回归不合适我们先导入数据看一下

library(foreign)
library(mgcv)
be <- read.spss("E:/r/test/ozone.sav",use.value.labels=F, to.data.frame=T)
names(be)


数据中有七个变量,ozon每日臭氧水平为结局变量,Inversion base height(ibh)反转基准高度,Pressure gradient (mm Hg) 压力梯度(mm Hg),Visibility (miles) 能见度(英里),Temperature (degrees F) 温度(华氏度),Day of the year日期,vh我也不知道是什么,反正就是一参数,这里所有的变量都是连续的。
我们先来进行单因素分析,假设我们想了解臭氧浓度和反转基准高度的关系

mgam<-gam(ozon~dpg+s(ibh),data=bc,family= poisson (),model=T)
summary(mgam)


截距项Intercept的Z=101.64,P小于0.05,表明截距项有统计学意义

假设检验结果表明平滑函数s(ibh)有统计意义,(X=687.5,P小于0.05),表明 ibh与
因变量臭氧氧浓度具有某种非线性关系。

伪判定系数 R-sq. ( adj) 显 示 了 模 型 的 解 释 能 力 为R-sq.(adj) =0.459,Deviance explained 表明模型可解释的偏差为51.6%。
可以进一步绘预测变量的制残差图

plot(mgam)


由上图我们可以指导,高度过低和过高对臭氧浓度都存在影响。同理可以做出其他指标的单因素分析。
做完单因素分析后我们开始做多因素分析,我们先建立好模型方程

mgam1<-gam(ozon~s(vh)+s(ibh)+s(dpg)+s(vis)+s(temp),data=be,family=poisson(),model=T)
summary(mgam1)


这里可以看到vh指标大于0.05了,接下来我们对模型进行共线性分析

由此可以看到vh和temp3项都超过0.5了,有可能存在共线性,我们把它们剔除掉,重新进行拟合

mgam2<-gam(ozon~s(ibh)+s(dpg)+s(vis),data=be,family=poisson(),model=T)
summary(mgam2)


从上图表明ibh,dpg,vis具有统计学意义,进一步绘图

plot(mgam2,pages=1)


可以通过三维立体图来显示变量的影响,下图可知ibh,dpg可能存在一定的交互

vis.gam(mgam2)


广义可加模型要求平滑函数效应是可加的,如果两变量间具有交互效应,如果ibh和dpg具有交互效应,则可以通过如下拟合

mgam3<-gam(ozon~ti(ibh)+ti(dpg)+ti(ibh,dpg),family=poisson(),data=be)
summary(mgam3)


由上表可知,ibh和dpg存在交互效应,我们可以进一步绘制交互可视化图形

vis.gam(mgam3,c("ibh","dpg"),theta=30,ticktype="detailed",xlab="高度",ylab ="压力") #模型可视化


由上图可知,压力会对高度存在交互影响,在一定的高度下,过大或者过小的压力都会对臭氧浓度造成影响。
参考文献
1.mgcv包解释文件
2.向伟. 广义可加模型在出生缺陷影响因素分析中的应用及R语言实现过程[J]. 中国妇幼保健,v.29(29):4711-4715.

R语言基于mgcv包进行广义可加模型及交互作用演示(2)相关推荐

  1. R语言使用mgcv包的gam函数拟合广义加性模型回归模型:使用predict函数和训练好的模型进行预测推理、使用ggplot2可视化预测值和实际值的曲线进行对比分析

    R语言使用mgcv包的gam函数拟合广义加性模型回归模型:使用predict函数和训练好的模型进行预测推理.使用ggplot2可视化预测值和实际值的曲线进行对比分析 目录

  2. R语言使用mgcv包中的gam函数拟合广义加性模型(Generalized Additive Model,GAMs):从广义加性模型GAM中抽取学习到的样条函数(spline function)

    R语言使用mgcv包中的gam函数拟合广义加性模型(Generalized Additive Model,GAMs):从广义加性模型GAM中抽取学习到的样条函数(spline function) 目录

  3. R语言基于mediation包行中介效应分析(2)

    中介变量(mediator) 是一个重要的统计概念,如果自变量 X 通过某一变量 M 对因变量 Y 产生一定影响,则称 M 为 X 和 Y 的中介变量.我们既往已经介绍了<R语言基于mediat ...

  4. R语言基于MASS包中的shuttle数据集以及neuralnet包构建神经网络模型

    R语言基于MASS包中的shuttle数据集以及neuralnet包构建神经网络模型 目录 R语言基于MASS包中的shuttle数据集以及neuralnet包构建神经网络模型

  5. R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置、置信区间、坐标轴(刻度、标签、范围)、无效线去除、水平线、辅助线、box形状、色彩等

    R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置.置信区间.坐标轴(刻度.标签.范围).无效线去除.水平线.辅助线.box形状.色彩等 目录

  6. R语言基于DALEX包进行特征筛选(feature selection)

    R语言基于DALEX包进行特征筛选(feature selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为"特征"(featu ...

  7. R语言基于mediation包行中介效应分析

    中介变量(mediator) 是一个重要的统计概念,如果自变量 X 通过某一变量 M 对因变量 Y 产生一定影响,则称 M 为 X 和 Y 的中介变量.我们既往已经介绍了SPSS行中介效应分析,今天继 ...

  8. R语言基于Matching包进行倾向评分匹配(PSM)

    倾向评分匹配(Propensity Score Matching,简称PSM)是一种统计学方法,用于处理观察研究(Observational Study)的数据,在SCI文章中应用非常广泛.在观察研究 ...

  9. R语言基于dcurves包绘制COX回归临床决策曲线

    因为R的rmda包做不了COX回归临床决策曲线,很多朋友都是通过ggdca包来绘制COX回归临床决策曲线,最近很多粉丝使用ggdca包来绘制COX回归临床决策曲线出现问题过来问我,我绘制的时候没发现什 ...

  10. R语言基于ems包标准化死亡率 (SMR)计算(1)

    分析队列人群有无死亡人数超额,通常应用标准人群死亡率来校正,即刻观察到中的实际死亡数(D)与定一个标准的死亡人数(E),D与E之比称为死亡比(standarized Mortality ratio,S ...

最新文章

  1. 在C#中,变量名前的@符号是什么意思? [重复]
  2. iOS开发——高级技术地图功能的实现
  3. [DiscuzNt]整合DiscuzNt论坛目前所发现的小BUG及个人简单解决办法
  4. centos7镜像加速_使用阿里云容器镜像服务托管私有Docker镜像
  5. C,C++,C#的点评
  6. IDEA : IDEA 打开使用内存监控
  7. 奇异值与主成分分析(PCA)
  8. 第四:Pytest框架之命令行参数(二)
  9. SqlServer中 查询语句 case when 用法
  10. Opencv之读取yuv420P
  11. axure 8 表格合并_多人编辑,自动汇总,领导可见所有?用 SeaTable 表格更简单
  12. Prometheus 架构 - 每天5分钟玩转 Docker 容器技术(83)
  13. pat A1052:Linked List Sorting静态链表+链表排序
  14. grasshopper for rhino 6下载_Grasshopper做分形图案
  15. 矩阵分析与应用(一)
  16. 任意数的matlab中阶乘,数组表示
  17. Java 笔试练习 01: T1~19
  18. 如何申请微信公众平台帐号
  19. 当当网按关键字搜索商品教程
  20. ArrayList 和 Vector 的区别是什么?

热门文章

  1. 华为设备配置VRRP冗余链路 防止单点故障
  2. eclipse开发webservice实例及问题解决
  3. 数据库系统概念(中文第六版):杨冬青-电子书
  4. win10装kali linux双系统,win10安装kali组成双系统攻略
  5. 抖音火爆表白小程序(C#语言实现)
  6. java毕业生设计学生实验报告管理系统计算机源码+系统+mysql+调试部署+lw
  7. 爬虫学习5-JSON 数据的分析与解析
  8. c语言课程设计题目 吃豆子,C语言吃豆子游戏
  9. navicat下载安装
  10. 2018 IEEE International Conference on Cyborg and Bionic Systems (CBS)国际会议的组织和参入感悟