当前位置: 首页 > news >正文

从0开始学习R语言--Day12--泊松分布

今天我们来看一个很经典的回归模型:泊松分布。

泊松分布

我们一般会把泊松分布用于预测问题,比如想知道成年人每天接到的骚扰电话次数,医院每天的急诊病人等。但在一些方面,跟我们想的会有出入。例如你不能将其应用在预测下周你的体重会是多少,看起来同是预测问题,但其背后隐含了数据的关系。

在预测每天接到的骚扰电话次数事件时,昨天接到的电话次数,跟今天的是没有关系的,急诊病人数量也一样,但如果是预测下周一个人的体重,那么其实会发现,下周的体重会跟下周前一天1有关系,在一个特定的区间内浮动,类似的,也就能推导到一周前。当然,如果要把泊松分布应用在预测急诊病人的数量,那么就需要特殊的前置条件,比如最近爆发了传染性较强的病毒,所以急诊病人数量会在一段时间内维持在一个比较高的数值。

所以,使用泊松分布的关键就在于,判断每个数据点之间是否有联系,从概率学上来讲,就是每一个数据点,都代表了一次独立概率事件,他们之间是互不影响的,只要满足这种特点,就能运用泊松分布,当然也不要忽略一些数值条件(比如泊松分布要求Y是整数),你不能说预测班里身高超过1米8的人有10.5个吧。

下面我们用一段实例来说明:

library(tidyverse)
library(ggplot2)set.seed(123)  # 固定随机种子,确保结果可复现
n <- 500       # 样本量# 生成自变量:天气质量(weather,0~10)和是否促销(promotion,0/1)
weather <- runif(n, min = 0, max = 10)
promotion <- rbinom(n, size = 1, prob = 0.3)  # 30%的日期有促销# 生成因变量:每日冰淇淋销量(sales),使用泊松分布
true_beta <- c(1.5, 0.2, 0.8)  # 真实系数:截距、weather、promotion
log_lambda <- true_beta[1] + true_beta[2] * weather + true_beta[3] * promotion
sales <- rpois(n, lambda = exp(log_lambda))  # 生成泊松分布的计数数据# 构建数据框
df <- data.frame(sales, weather, promotion)
# 使用 glm() 拟合泊松回归模型
model <- glm(sales ~ weather + promotion, family = poisson(link = "log"),  # 指定泊松分布和对数链接data = df)# 查看模型摘要
summary(model)# 新数据预测
new_data <- data.frame(weather = c(8, 3),      # 天气8分 vs 3分promotion = c(1, 0)      # 有促销 vs 无促销
)# 预测销量
pred_sales <- predict(model, newdata = new_data, type = "response")
pred_sales  # 输出预测值# 检查是否过离散(Overdispersion)
library(AER)
dispersiontest(model)# 天气 vs 销量(按促销分组)
ggplot(df, aes(x = weather, y = sales, color = factor(promotion))) +geom_point(alpha = 0.6) +geom_smooth(method = "glm", method.args = list(family = poisson), se = FALSE) +labs(title = "天气和促销对冰淇淋销量的影响",x = "天气评分", y = "销量",color = "促销(1=是)") +theme_minimal()

输出:

            Estimate Std. Error z value Pr(>|z|)    
(Intercept) 1.508115   0.028471   52.97   <2e-16 ***
weather     0.200169   0.003801   52.66   <2e-16 ***
promotion   0.787791   0.020243   38.92   <2e-16 ***1         2 
49.267146  8.236879 

从输出中我们可以得知,当天气达到8分且有促销时,预测的销量为49.2;若天气只有3分且没有促销时,预测的销量为8.2。而且我们能观察到天气和促销的P值小于0.05,这说明这两个变量都对销量有很大的影响。

相关文章:

  • OptiStruct实例:消声器前盖ERP分析(2)RADSND基础理论
  • Rust 编程实现猜数字游戏
  • kanass V1.1.3版本发布,支持需求评审和Jira的数据导入
  • 脱发因素机器学习数据分析
  • 小程序33-列表渲染
  • OpenCV---pointPolygonTest
  • 【Linux 学习计划】-- 命令行参数 | 环境变量
  • 使用基于Xsens惯性传感器的动作捕捉技术测量人体工程学
  • 多模态大语言模型arxiv论文略读(101)
  • 24位高精度数据采集卡NET8860音频振动信号采集监测满足自动化测试应用现场的多样化需求
  • 【开发心得】AstrBot对接飞书失败的问题探究
  • 深入理解Transformer架构:从原理到实践
  • Science Advances 上海理工大学与美国杜克大学(Duke University)共同开发了一种仿生复眼相机
  • OrCAD X Capture CIS 设计小诀窍第二季 | 10. 如何自动将 270° 放置的网络名称修正为 90°
  • 桌面文件无法删除怎样解决?
  • 【灵动Mini-F5265-OB】SPI驱动ST7735LCD屏
  • 2025低代码平台核心技术对比:模型驱动 vs 表单驱动 vs AI原生架构
  • 从零到一:我的技术博客导航(持续更新)
  • STM32通过rt_hw_hard_fault_exception中的LR寄存器追溯程序问题​
  • Python中的变量、赋值及函数的参数传递概要
  • 中国文化网站建设方案/北京网站优化多少钱
  • 如何自己做小程序免费/谷歌关键词优化怎么做
  • 做net网站/厦门seo网络优化公司
  • ecs搭建wordpress/做网络优化的公司排名
  • 本地常州微信网站建设/建站平台哪个好
  • 洛阳网站建设洛阳网站制作/小说推广关键词怎么弄