原文链接:http://tecdat.cn/?p=23509

原文出处:拓端数据部落公众号

我们在研究工作中使用广义加性模型(GAMs)。mgcv软件包是一套优秀的软件,可以为非常大的数据集指定、拟合和可视化GAMs。

这篇文章介绍一下广义加性模型(GAMs)目前可以实现的功能。

我们需要加载mgcv

library('mgcv')

受欢迎的例子数据集

dat中的数据在GAM相关的研究中得到了很好的研究,包含了一些协变量--标记为x0到x3--这些协变量在不同程度上与因变量有非线性关系。

我们想通过使用样条来逼近协变量和因变量之间的真实关系来尝试拟合这些关系。为了拟合一个加性模型,我们使用

 gam(y ~ s(x0) + s(x1) + s(x2) + s(x3), dat,  "REML")

mgcv提供了一个summary()方法,用来提取关于拟合GAM的信息。

check()函数,用于检查模型中的每个光滑函数是否使用了足够数量的基函数。你可能没有直接使用check()——会输出其他诊断结果,也会产生四个模型诊断图。

绘制光滑函数

为了将估计的GAMs可视化,mgcv提供了plot.gam()方法和vis.gam()函数,从对象中产生类似ggplot2的图。为了使GAM模型中的四个估计光滑函数可视化,我们将使用

plot(mod)

结果是绘制mod GAM中每一个光滑函数

使用plot函数在绘图设备上绘制多个面板,并将各个绘图排成一行。

提取光滑函数数据

用于处理mod中表示的基础光滑函数,如果你想提取用于构建该图的大部分数据,你可以使用smooth()函数。

smooth(mod, "x1")

诊断图

由check()产生的诊断图

check(mod)

结果是一个包含四个诊断图的数组,包括模型残差的Q-Q图(左上)和直方图(左下),残差与线性预测器的图(右上),以及观察值与拟合值的图。

这四张图中的每一张都是通过用户可访问的函数生成的,函数实现了一个特定的图。例如,qqplot(mod)产生上图左上方的Q-Q图。

qqplot(mod)

qqplot(mod)的结果是一个残差的Q-Q图,其中的参考量值是通过模拟拟合模型的数据而得到。

还可以处理目前可用的许多更专业的光滑函数。例如,二维光滑函数


plot(mod)

二维光滑函数的默认绘制方式是使用plot()。

和因子光滑函数交互项,相当于光滑曲线的随机斜率和截距,被画在一个面板上,颜色被用来区分不同的随机光滑函数


## 模拟数据
f0 <- function(x) 2 * sin(pi * x)
f1 <- function(x, a=2, b=-1) exp(a * x)+b
f2 <- function(x) 0.2 * x^11 * (10 * (1 - x))^6 + 10 * (10 * x)^3 * (1 - x)^10
f <- f0(x0) + f1(x1, a[fac], b[fac]) + f2(x2)
fac <- factor(fac)
y <- f + rnorm(n) * 2plot(mod)

含有因子-光滑函数交互项的更复杂的GAM的结果,bs = 'fs'。

还能做什么?

可以处理mgcv可以估计的大多数光滑函数,包括带有因子和连续副变量的按变量光滑函数、随机效应光滑函数(bs = 're')、二维张量积光滑函数,以及带有参数项的模型。

参考文献

Augustin, N. H., Sauleau, E.-A., and Wood, S. N. (2012). On quantile quantile plots for generalized linear models. Computational statistics & data analysis 56, 2404–2409. doi:10.1016/j.csda.2012.01.026.


最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言混合效应逻辑回归Logistic模型分析肺癌

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

8.python用线性回归预测股票价格

9.R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

拓端tecdat|R语言广义相加(加性)模型(GAMs)与光滑函数可视化相关推荐

  1. R语言广义加性模型(GAMs:Generalized Additive Model)建模:数据加载、划分数据、并分别构建线性回归模型和广义线性加性模型GAMs、并比较线性模型和GAMs模型的性能

    R语言广义加性模型(GAMs:Generalized Additive Model)建模:数据加载.划分数据.并分别构建线性回归模型和广义线性加性模型GAMs.并比较线性模型和GAMs模型的性能 目录

  2. R语言广义加性模型GAMs:可视化每个变量的样条函数、样条函数与变量与目标变量之间的平滑曲线比较、并进行多变量的归一化比较、测试广义线性加性模型GAMs在测试集上的表现(防止过拟合)

    R语言广义加性模型GAMs:可视化每个变量的样条函数.样条函数与变量与目标变量之间的平滑曲线比较.并进行多变量的归一化比较.测试广义线性加性模型GAMs在测试集上的表现(防止过拟合) 目录

  3. R语言广义加性模型(generalized additive models,GAMs):使用广义线性加性模型GAMs构建logistic回归

    R语言广义加性模型(generalized additive models,GAMs):使用广义线性加性模型GAMs构建logistic回归 目录

  4. 二元置信椭圆r语言_一般加性模型的简介、应用举例及R语言操作

    一般加性模型的简介.应用及R语言操作举例前文在"平滑回归举例"中,提到当未知自变量和响应变量间的关系,难以选择合适的参数模型描述二者间的响应状态,或者期望探索二者可能的响应曲线形式 ...

  5. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  6. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  7. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  8. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  9. R语言广义加性模型GAMs分析温度、臭氧环境数据绘制偏回归图与偏残差图

    最近我们被客户要求撰写关于广义加性模型的研究报告,包括一些图形和统计输出. 视频:R语言广义相加模型(GAM)在电力负荷预测中的应用 拓端tecdat:R语言广义相加模型(GAM)在电力负荷预测中的应 ...

  10. R语言广义线性模型Logistic回归模型列线图分析(nomogram)

    R语言广义线性模型Logistic回归模型列线图分析(nomogram) 我们来看图说话: gist是一种胃肠道间质瘤,作者构建了无复发生存率的logistic回归模型. 并构建了如下的列线图或者no ...

最新文章

  1. 基于GA的TSP问题
  2. docker-compose 安装mysql
  3. Runtime之IMP指针,isa指针
  4. 软件工程实践2017第一次作业-051502125
  5. 一、使用两台Centos7系统搭建Hadoop-3.1.4完全分布式集群
  6. UITableViewCell高亮时其子视图的状态修改
  7. 移动端apm关键指标_3个经常被忽视的APM关键功能
  8. Proactor设计模式:单线程高并发
  9. 牛客网-《剑指offer》-跳台阶
  10. 不同php文件,不同文件构建PHP程序的正确方式
  11. 升级总代分享思路_旧笔记本光驱换SSD,升级内存,改造散热还能再战5年
  12. SSDP协议的Python示例
  13. Chrome插件——一键保存网页为PDF1.0发布
  14. html播放韰 寸 频,asp.net 汉字转换拼音及首字母实现代码
  15. 「Thymeleaf页面在浏览器加载不出来」
  16. 一台计算机两个硬盘怎么设置密码,怎样给硬盘加密码? 两招解决硬盘加密难题...
  17. Spyder 中 Reloaded modules 错误的解决方法
  18. ARM服务器和云手游
  19. 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作
  20. GEE开发之MODIS_NDVI年均值数据分析

热门文章

  1. 项目中坑记录:mongo 插入失败无提示
  2. linux查看硬件以及系统信息
  3. 2011年度IT博客大赛 “博”乐大行动(已结束)
  4. 数据安全超级守护进程
  5. 3月19日 视觉里程计,PnP方法对两帧求解,BA优化的直观理解
  6. Spring boot中使用Jackson ObjectMapper注入
  7. 一次Mysql 死锁事故
  8. perl里q,qq,qw等的用法
  9. 今天博客园肿了吗?希望团队修复一下
  10. Java- String类概述