R实现负二项回归模型项目实战

说明:这是一个实战项目(附带数据+代码+文档 ),如需数据+代码+文档 可以直接到文章最后关注 获取 或者私信获取。

1 . 项目背景

在医疗健康、公共卫生及社会科学研究中,计数型因变量(如患者年就诊次数、疾病发病次数等)极为常见。这类数据往往存在"过离散"(方差显著大于均值)现象,无法满足泊松回归的等离散假设。本项目以居民年度门诊就诊次数(visit_count)为研究目标,综合考虑年龄(age)、慢性病患病情况(chronic_disease)和收入水平(income)等关键因素,采用负二项回归模型进行建模分析。该模型通过引入离散参数有效处理过离散问题,不仅能准确估计各协变量对就诊频率的影响强度,还可计算发病率比(IRR),为理解就医行为驱动机制、优化医疗资源配置提供数据支持与决策依据。

2 . 数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

|------------|-----------------|------------|
| 编号 | 变量名称 | 描述 |
| 1 | visit_count | 就诊次数 |
| 2 | age | 年龄 |
| 3 | chronic_disease | 慢性病患病情况 |
| 4 | income | 收入水平 |

数据详情如下(部分展示):

3. 数据预处理

3.1 查看数据

使用head()方法查看前五行数据:

关键代码:

3.2 数据缺失查看

数据缺失信息:

从上图可以看到,数据中无缺失值。

关键代码:

3. 3数据描述性统计

通过summary方法来查看数据的平均值、最小值、分位数、最大值。

关键代码如下:

4. 探索性数据分析

4 .1 分布直方图

用ggplot工具绘制直方图:

4 .2 相关性分析

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。

5. 特征工程

5. 1 数据集拆分

通过createDataPartition方法按照80%训练集、20%测试集进行划分,关键代码如下:

6. 构建 负二项回归模型

主要通过R构建负二项回归模型,用于目标回归。

6. 1 构建模型

|------------|--------------|-----------------------------------------------|
| 编号 | 模型名称 | 参数 |
| 1 | 负二项回归模型 | visit_count ~ age + chronic_disease + income |
| 2 | 负二项回归模型 | data = train_data |

6. 2 模型摘要信息

|-----------------|-------------------------|------------------------|-------------|--------------|
| 变量 | 系数估计 (Estimate) | 标准误 (Std. Err) | z 值 | p 值 |
| (Intercept) | 0.9596 | 0.3031 | 3.166 | 0.0016*** |
| age | 0.0058 | 0.00409 | 1.417 | 0.1564 |
| chronic_disease | -0.01375 | 0.02832 | -0.486 | 0.6272 |
| incomeLow | 0.03372 | 0.09894 | 0.341 | 0.7333 |
| incomeMedium | -0.02118 | 0.10078 | -0.21 | 0.8335 |

该负二项回归模型结果显示,截距项显著为正(p = 0.0016),表明在参考水平(年龄为0、无慢性病、高收入)下,预期就诊次数的对数值显著大于0;然而,所有协变量------年龄(p = 0.156)、慢性病状态(p = 0.627)、收入水平(低收入 vs 高收入:p = 0.733;中收入 vs 高收入:p = 0.834)------均未达到统计显著性(p > 0.05),说明在当前样本中,这些因素对门诊就诊次数的影响尚无足够证据支持。模型整体拟合良好(AIC = 1930,残差偏差 ≈ 自由度),但提示可能需扩大样本量、引入非线性或交互效应以提升解释力。

7 . 模型评估

7.1评估指标及结果

测试集 RMSE: 3.277,测试集 MAE: 2.636。

关键代码如下:

7. 2 发病率比IRR

|-----------------|------|
| | IRR |
| (Intercept) | 2.61 |
| age | 1.01 |
| chronic_disease | 0.99 |
| incomeLow | 1.03 |
| incomeMedium | 0.98 |

模型的发病率比(IRR)结果显示:在控制其他变量的情况下,年龄每增加一岁,预期就诊次数约增加1%(IRR = 1.01);患有慢性病者的就诊次数约为无慢性病者的99%(IRR = 0.99),略低但差异微弱;低收入群体的就诊次数比高收入群体高约3%(IRR = 1.03),而中等收入群体则略低2%(IRR = 0.98)。截距项表明,参照组(年龄为0、无慢性病、高收入)的预期年就诊次数约为2.61次。总体来看,各协变量的IRR均非常接近1,结合此前不显著的p值,说明这些因素对门诊就诊频率的影响在统计上不显著,实际效应也微弱一些。

8. 结论与展望

综上所述,本文采用了R实现负二项回归模型项目实战,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。

相关推荐
软件开发JR21 小时前
基于Web的足球青训俱乐部管理后台系统的设计与开发
java·前端·spring boot·毕业设计
asyxchenchong8881 天前
R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术应用
开发语言·r语言
旺仔学长 哈哈3 天前
52486|高校专业评估不再靠表格:Spring Boot 本科专业质量评估管理系统实战
数据库·spring boot·毕业设计·教育管理
临床数据科学和人工智能兴趣组3 天前
R语言中,列表是一种非常灵活的数据结构,它可以存储不同类型的对象,如向量、矩阵、数据框、甚至其他列表
数据结构·数据库·r语言·r语言-4.2.1·临床试验
机器学习之心4 天前
CPO-SVR:用冠豪猪优化算法给支持向量回归机“自动调参“,一次预测多个指标
算法·回归·cpo-svr
IT学长编程4 天前
计算机毕业设计 基于用户评论主题挖掘的旅游景点推荐系统 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·python·django·毕业设计·数据可视化分析·旅游景点推荐系统·基于用户评论主题挖掘
临床数据科学和人工智能兴趣组4 天前
矩阵是一种二维数组,每个矩阵仅能包含一类数据(数值型、字符型或者逻辑型)
数据库·线性代数·矩阵·r语言·r语言-4.2.1·临床试验
承渊政道4 天前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从注意力到自回归生成:彻底理解Transformer解码器)
pytorch·回归·transformer·chatglm·注意力机制·解码器
jay神4 天前
深度学习为什么需要反向传播
人工智能·深度学习·yolo·目标检测·cnn·毕业设计