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实现负二项回归模型项目实战,最终证明了我们提出的模型效果良好。此模型可用于日常产品的预测。

相关推荐
莫逸风20 小时前
【毕设源码二期01】校园失物招领系统:从发布线索到核验交接
spring boot·毕业设计·课程设计·react
北京中科新远科技20 小时前
兼容光模块上线前怎么测:识别、DOM、误码与批次回归清单
人工智能·数据挖掘·回归
星辰云-1 天前
基于Spring Boot+Vue的高校校园二手物品交易平台(论文+源码+演示视频)
毕业设计·课程设计·论文笔记·毕设
布吉岛的石头2 天前
Java 程序员第 50 阶段2:预训练的目标函数:自回归语言建模本质
java·开发语言·人工智能·深度学习·回归·transformer
衡石科技2 天前
同一句业务问题,怎样持续问对数?衡石 ChatBI 的语义准备与回归验证
人工智能·数据挖掘·回归·chatbi
dfjdkfahkjd3 天前
开源项目吐槽大会:技术文章大纲
r语言
霍格沃兹测试学院-小舟畅学3 天前
京东JoyCode公开Testing Agent后,仓库级回归该怎样设计?
人工智能·数据挖掘·回归
Mr.D学长4 天前
毕业设计项目 基于机器视觉的车牌识别系统
python·毕业设计·毕设
爱读书的小胖4 天前
Codewars:Last digit of a large number(C)解题分析
c语言·开发语言·r语言
Mr.D学长4 天前
毕业设计项目 基于python的答题卡识别评分系统
python·毕业设计·毕设