R语言进行泊松回归

泊松回归(Poisson regression)是以结局变量为计数结果时的一种回归分析。泊松回归在我们的生活中应用非常广泛,例如:1分钟内过马路人数,1天内火车站的旅客流动数,1天内的银行取钱人数,一周内的销售经营数据等等都可以使用泊松回归进行分析。
今天我们来说说怎么使用R语言进行泊松回归分析,需要使用到robust包和qcc包,先要下载好。我们使用的是robust包知道的stack.dat数据集进行分析,我们先导入数据

library(robust)
library(qcc)
data("stack.dat",package = "robust")
names(stack.dat)

在这里插入图片描述
在这里插入图片描述
这个数据集比较简单,只有4个变量,是一个化工厂21天内记录氨气流失的数据,Loss是我们的结局变量,氨气损失量,Air.Flow空气流动量, Water.Temp水温,Acid.Conc.酸浓缩比。
泊松回归可以使用广义线性方程拟合,主要是调整一下family这个参数

f1<-glm(Loss~.,data = stack.dat,family = poisson(link = "log"))
summary(f1)

在这里插入图片描述
从拟合方程看到,空气流动和水温对氨气的流失存在明显的影响(P<0.05),我们可以求出系数和指数话系数,利于模型解释,

coef(f1)
exp(coef(f1))

在这里插入图片描述
由此可以空流动每增加1单位氨气流失增加2%。
接下来我们可以通过qcc包自带的函数检测是否存在过度离势

deviance(f1)/df.residual(f1)
qcc.overdispersion.test(stack.dat$Loss,type = "poisson")

在这里插入图片描述
P>0.05由此可知,本结果不存在过度离势。
过度离势产生的常见原因:

  1. 没有纳入某个重要变量
  2. 可能与因为时间相关
  3. 内在群聚特性
    假如结果P小于0.05存在过度离势,我们可以使用family = quasipoisson替换family = poisson进行类泊松回归
f2<-glm(Loss~.,data = stack.dat,family = quasipoisson())
summary(f2)

在这里插入图片描述
假如我们想拟合存在时间变化的泊松回归模型,我们可以在offset中加入时间变量,但这样的话结果变量必须是比率的形式,我这里结果本来就是比率的形式,我就不改了,只做演示。

stack.dat$time<-round(rnorm(21,mean = 15,sd=6))
f3<-glm(Loss~Air.Flow+Water.Temp+Acid.Conc.,data = stack.dat,
        family = poisson(link = "log"),offset = log(time))
summary(f3)

在这里插入图片描述
值得一提的是,如果泊松分布P值很小的时候,其结果和二项式分布是很接近。
在这里插入图片描述
更多精彩文章请关注公众号:零基础说科研
在这里插入图片描述

  • 7
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值