基于R语言实现的负二项回归模型【理解与实现】-理解负二项回归模型和泊松回归模型之间的区别

前言

我们可以在R语言中使用MASS包中的glm.nb函数来拟合负二项模型,以及使用glm函数来拟合泊松模型。以下是一个详细的过程,包括模拟数据的生成、模型的拟合、结果的比较和解释。

需要的包

if (!require("MASS")) install.packages("MASS")
if (!require("ggplot2")) install.packages("ggplot2")library(MASS)
library(ggplot2)

产生模拟数据

生成具有过度离散特性的计数数据。

set.seed(123)  # 设置随机数种子# 创建一些预测变量
n <- 1000
x1 <- rnorm(n)
x2 <- rnorm(n)# 创建过度离散数据
mu <- exp(1 + 0.3*x1 - 0.4*x2)  # 真实均值
size <- 1.5  # 负二项分布的大小参数,控制离散程度
k <- rnbinom(n, mu = mu, size = size)data <- data.frame(counts=k, x1=x1, x2=x2)

在这里插入图片描述

拟合泊松模型

使用glm函数以泊松分布拟合数据。

poisson_model <- glm(counts ~ x1 + x2, family = poisson, data = data)
summary(poisson_model)

在这里插入图片描述

拟合负二项模型

使用glm.nb函数以负二项分布拟合同样的数据。

negbin_model <- glm.nb(counts ~ x1 + x2, data = data)
summary(negbin_model)

在这里插入图片描述

结果的比较和诊断

比较两个模型的拟合优度,检查是否有过度离散。

# 计算泊松模型的离散统计量
poisson_dispersion <- sum(residuals(poisson_model, type = "pearson")^2) / poisson_model$df.residual
cat("泊松模型的离散统计量:", poisson_dispersion, "\n")# 使用AIC比较模型
cat("泊松模型的AIC:", AIC(poisson_model), "\n")
cat("负二项模型的AIC:", AIC(negbin_model), "\n")# 检验回归系数的显著性
coef(summary(poisson_model))
coef(summary(negbin_model))# 可视化
ggplot(data, aes(x = counts)) +geom_histogram(binwidth = 1, fill = "blue", alpha = 0.5) +labs(title = "Count Data Distribution", x = "Count", y = "Frequency")

在这里插入图片描述
在这里插入图片描述

解释

  • 离散统计量:泊松模型的离散统计量应接近1。如果这个值显著大于1,就说明有过度离散。
  • AIC(赤池信息量准则):AIC提供了一个衡量模型拟合优度的方法,考虑到了模型复杂性。更小的AIC值通常意味着更好的模型。
  • 回归系数:对于两个模型,我们都可以查看回归系数的估计和它们的统计显著性。
  • 可视化:生成数据的直方图可以帮助我们直观了解数据的分布。对于过度离散的数据,我们预期直方图会显示出尾部较重或者集中在0的频数较多。
    通过这个过程,我们可以清楚地看到负二项模型和泊松模型在处理过度离散数据时的不同表现。实际上,负二项模型更适合这些数据,因为它考虑到了变异性,并且AIC值也应该较低,表明更好的数据拟合。通过查看系数和它们的显著性,我们可以确定哪个模型提供了更可信的解释。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/619320.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【opencv】示例-travelsalesman.cpp 使用模拟退火算法求解旅行商问题

// 载入 OpenCV 的核心头文件 #include <opencv2/core.hpp> // 载入 OpenCV 的图像处理头文件 #include <opencv2/imgproc.hpp> // 载入 OpenCV 的高层GUI(图形用户界面)头文件 #include <opencv2/highgui.hpp> // 载入 OpenCV 的机器学习模块头文件 #includ…

2024第十五届蓝桥杯 JAVA B组 填空题

没参加这次蓝桥杯算法赛&#xff0c;十四届蓝桥杯被狂虐&#xff0c;对算法又爱又恨&#xff0c;爱我会做的题&#xff0c;痛恨我连题都读不懂的题&#x1f62d;,十四届填空只做对一个&#xff0c;今天闲的蛋疼想看看这次比赛能做对几个。 暂时没找到题目&#xff0c;这是网上找…

【氮化镓】GaN HEMTs结温和热阻测试方法

文章《Temperature rise detection in GaN high-electron-mobility transistors via gate-drain Schottky junction forward-conduction voltages》&#xff0c;由Xiujuan Huang, Chunsheng Guo, Qian Wen, Shiwei Feng, 和 Yamin Zhang撰写&#xff0c;发表在《Microelectroni…

Form表单控件主要标签及属性。name属性,value属性,id属性详解。表单内容的传递流程,get和post数据传递样式。表单数据传递实例

form表单 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

记一次小郭被挖矿后的应急响应

谨以此篇纪念我第n1次被挖矿经历。 时间&#xff1a;2024年3月18日&#xff08;星期一&#xff09; 地点&#xff1a;阿里云服务器 响应&#xff1a;确认–>抑制–>消除–>恢复–>总结 确认阶段&#xff1a; 2024年3月18日星期一早上收到了阿里云的短信和邮件…

【QT+QGIS跨平台编译】161:【qgispython跨平台编译】—【qgis_python.h生成】

点击查看专栏目录 文章目录 一、qgis_python.h介绍二、信息分析三、qgis_python.h生成一、qgis_python.h介绍 qgis_python.h 是 QGIS(Quantum Geographic Information System)GIS 软件的一个头文件。QGIS 是一个开源的地理信息系统软件,提供了丰富的地图制图和空间分析功能。…

NUC11更新 ESXi 8.0U2B 安装过程

1、下载 镜像名称&#xff1a;VMware-VMvisor-Installer-8.0U2b-23305546.x86_64.iso下载地址&#xff1a;https://docs.vmware.com/tw/VMware-vSphere/8.0/rn/vmware-vsphere-80-release-notes/index.html 2、制作镜像启动盘 2、查看镜像版本信息 3、启动设备安装系统 1、启…

【Vue】新手一步一步安装 vue 语言开发环境

文章目录 1、下载node.js安装包 1、下载node.js安装包 1.打开node.js的官网下载地址&#xff1a;http://nodejs.cn/download/ 选择适合自己系统的安装包&#xff1a;winds、mac 2. 配置node.js和npm环境变量 安装好之后&#xff0c;对npm安装的全局模块所在路径以及缓存所在路…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.7 总账模块报表 -2.7.2 对外报表:现金流量表

2.7.2 对外报表&#xff1a;现金流量表 现金流量表包括直接法和间接法。使用SAP出具现金流量表&#xff0c;一般只能出具直接法报表。间接法是指按照净利润倒推出现金流量的发生额&#xff0c;由于其中存在人为“分析”的因素&#xff0c;很难直接通过科目的加加减减得出所需要…

前端console用法分享

console对于前端人员来讲肯定都不陌生&#xff0c;相信大部分开发者都会使用console来进行调试&#xff0c;但它能做的绝不仅限于调试。 最常见的控制台方法 作为开发者&#xff0c;最常用的 console 方法如下&#xff1a; 控制台打印结果&#xff1a; 今天我分享的是一些 co…

kibana源码编译

一、安装nodejs16.14.2及yarn &#xff08;一&#xff09;nodejs 1、下载 https://cdn.npmmirror.com/binaries/node/v16.14.2/node-v16.14.2-linux-x64.tar.gz2、解压 tar -zxf node-v16.14.2-linux-x64.tar.gz -C /app cd /app mv node-v16.14.2-linux-x64 node3、配置环…

numpy学习笔记(5),其他实用函数

8. 更多函数 8.1 随机数 8.1.1 常用随机数 8.1.1.1 numpy.random.rand(d0, d1, …, dn) 返回[0.0, 1.0)随机浮点数&#xff0c;即大于等于0.0&#xff0c;小于1.0。d0, d1, …, dn&#xff1a;返回的数组形状 # 使用numpy.random.rand函数 import numpy as np np.random.r…