R语言优雅的进行广义可加模型泊松回归分析
创作时间:
作者:
@小白创作中心
R语言优雅的进行广义可加模型泊松回归分析
引用
CSDN
1.
https://blog.csdn.net/dege857/article/details/140666143
泊松回归是一种用于分析计数数据的回归方法,在许多领域都有广泛的应用。本文将介绍如何使用R语言中的tidygam包进行广义可加模型(GAM)的泊松回归分析。通过一个具体的婴儿手势数据集,详细展示了模型建立、预测值生成以及可视化图表的绘制过程。
数据准备
首先,我们需要导入所需的R包和数据。数据使用的是tidygam自带的gest
数据集,这是一个关于10、11和12个月婴儿手势数量的数据集。
library(tidygam)
library(mgcv)
library(dplyr)
library(ggplot2)
data("gest")
theme_set(theme_light())
这个数据表包含了来自孟加拉、中国和英国背景的60名婴儿所做的三种手势的计数。变量说明如下:
dyad
:ID标识background
:表明来自哪个国家months
:月份,只有10,11,12共3个月gesture
:手势的类型count
:手势的计数,这是结局变量
基本模型
我们先建立一个基本的GAM模型,分析月份与手势计数的关系。
gs <- gam(
count ~ s(months, k = 3),
data = gest,
family = poisson
)
生成预测值:
gs_pred <- predict_gam(gs)
绘制图形:
gs_pred %>%
plot(series = "months")
由于生成的Y轴是count的对数值,我们需要转换一下:
predict_gam(gs, tran_fun = exp) %>%
plot(series = "months")
按国家分类的模型
如果想了解不同国家的差异,可以在模型中加入background
变量:
gs_by <- gam(
count ~ s(months, by = background, k = 3),
data = gest,
family = poisson
)
绘制分类图形:
gs_by %>%
predict_gam(length_out = 20, series = "months", tran_fun = exp) %>%
plot(comparison = "background")
可以使用ggplot2的方法进一步美化图形:
gs_by %>%
predict_gam(length_out = 20, series = "months", tran_fun = exp) %>%
plot(comparison = "background") +
scale_color_brewer(type = "qual") + scale_fill_brewer(type = "qual")
包含两个非连续变量的模型
如果考虑两个非连续变量的影响,可以在模型中定义:
gs_by_2 <- gam(
count ~ s(months, by = background, k = 3) +
s(months, by = gesture, k = 3),
data = gest,
family = poisson
)
绘制图形:
gs_by_2 %>%
predict_gam(length_out = 20, series = "months", tran_fun = exp) %>%
plot(comparison = "gesture") +
scale_color_brewer(type = "qual") + scale_fill_brewer(type = "qual") +
facet_grid(~ background)
交互效应模型
如果想了解background
和gesture
的交互关系,需要先生成一个交互变量:
gest <- gest %>%
mutate(back_gest = interaction(background, gesture))
然后使用这个交互变量进行模型分类:
gs_i <- gam(
count ~ s(months, by = back_gest, k = 3),
data = gest,
family = poisson
)
summary(gs_i)
绘制交互效应图形:
predict_gam(
gs_i, tran_fun = exp,
separate = list(back_gest = c("background", "gesture"))
) %>%
plot(series = "months", comparison = "gesture") +
facet_grid(~ background)
这样一个亚组交互图形就生成好了。
热门推荐
色谱分析中拖尾峰的产生原因及解决方法
三叉神经痛如何进行治疗?
茶叶冲泡:如何掌握好茶与水的比例?
75%酒精能否去除脚臭?专家解读其效果与局限
小车倒立摆系统的滑模变结构稳摆控制
串级PID控制(双环PID)详解
宠物养护必读——以健康饲喂为要点(从饮食、运动到心理,打造健康幸福的宠物生活)
电动滑板车上路怎么处罚?一文详解各地规定
高脂肪饮食为何易引发糖尿病
宜昌最美的八大景点,宛如一幅天然的“峡江画廊”
员工辞职时培训费怎么扣除?一文详解劳动权益保障
消费避坑指南:如何一眼看穿酱油的质量
插花水里放什么活得久(插花水里放什么保持时间久)
秦始皇的功与过:辉煌与暴政并存的一代霸主
小便泡沫暗藏健康隐患?如何识别病理性信号并及时应对!
仲裁开庭:法官提问技巧与流程解析
适合初学者的花卉推荐:20多种易种植且存活率高的花草品种
项目设备管理全攻略:从采购到绩效评估的系统化指南
糖尿病和你的日常一杯咖啡:咖啡的平衡作用
香港DSE考几科?全面解析,帮助你规划未来
职场遇到不公平待遇怎么办
游戏设计创新的四个层次:从世界观到体验
按使用量付费的服务器租赁:按需扩展,降低成本
原燃料的分类方式有哪些?这些分类方式的实际意义是什么?
华为云基础设施底座方案设计
根因分析法:探究问题根本原因的有效工具
星座与情感共鸣:哪些星座最善于共情他人?
西欧中世纪城市自治和行会
雅万高铁:连接现在与未来
别慌,口腔白斑病不是“癌”!