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

news/2024/9/23 2:28:21/

前言

我们可以在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.ppmy.cn/news/1428631.html

相关文章

实战:通用二进制格式安装 MySQL(mysql-5.6.47)-2024.4.6(测试成功)

目录 文章目录 目录实验环境1、下载url2、准备用户3、准备数据目录&#xff0c;建议使用**逻辑卷**4、准备二进制程序5、准备配置文件6、创建数据库文件7、准备服务脚本&#xff0c;并启动服务8、PATH路径9、安全初始化10、测试shell一键安装关于我最后 实验环境 链接&#xf…

前端请求发送成功,后端收到null

1、dishId为64&#xff0c;有数据 2、但是后端调试接不到数据&#xff0c;为null 3、形参部分缺少RequestBody接收JSON数据&#xff0c;加上即可

mac安装nvm详细教程

0. 前提 清除电脑上原有的node (没有装过的可以忽略)1、首先查看电脑上是否安装的有node,查看node版本node -v2、如果有node就彻底删除nodesudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}2、保证自己的电脑上有安装git,不然下载n…

在java中使用线程池会有哪些坑?

在Java中使用线程池时&#xff0c;确实存在一些常见的陷阱和坑。下面是一些示例来说明这些潜在问题&#xff1a; 1. 线程池大小设置不当 线程池的大小应该根据任务的性质和系统资源来设置。如果线程池太大&#xff0c;会消耗过多的系统资源&#xff0c;导致性能下降&#xff…

Cocos Creator 3D游戏成像全过程详解与Shader详解

前言 Cocos Creator是一款由Cocos2d-x团队开发的游戏开发引擎&#xff0c;它不仅支持2D游戏的开发&#xff0c;还能够创建3D游戏。在本文中&#xff0c;我们将详细介绍Cocos Creator 3D游戏成像的全过程&#xff0c;并深入探讨Shader的实现细节。 对惹&#xff0c;这里有一个…

RabbitMQ入门实战

文章目录 RabbitMQ入门实战基本概念安装快速入门单向发送多消费者 RabbitMQ入门实战 官方&#xff1a;https://www.rabbitmq.com 基本概念 AMQP协议&#xff1a;https://www.rabbitmq.com/tutorials/amqp-concepts.html 定义&#xff1a;高级信息队列协议&#xff08;Advanc…

【学习】自动化测试有哪些优势和不足

在当今这个数字化时代&#xff0c;软件测试已经成为了任何一款产品成功的关键因素之一。而在诸多的测试方法中&#xff0c;自动化测试凭借着其独特的魅力吸引着越来越多的企业。今天就让我们一起走进自动化测试的世界&#xff0c;探讨它的优势与不足。 一、自动化测试优势 1.…

测试技术的发展趋势是什么

测试技术的发展趋势是在不断提高灵敏度、精确度和可靠性的基础上&#xff0c;向小型化、非接触化、多功能化、智能化和网络化方向发展。 测试人员技能需求的转变&#xff1a;测试人员需要具备更多的技能&#xff0c;如编程、脚本编写、数据分析等&#xff0c;以适应自动化和AI…