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

从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,这说明这两个变量都对销量有很大的影响。

http://www.lryc.cn/news/2392942.html

相关文章:

  • 工控机安装lubuntu系统
  • 视频监控汇聚平台EasyCVR安防小知识:如何通过视频融合平台解决信息孤岛问题?
  • 在大型中实施访问控制 语言模型
  • Haption在危险、挑战性或受限环境中操作的情况提供了一种创新的遥操作解决方案
  • html中使用nginx ssi插入html
  • 行为型:状态模式
  • 优雅草最新实战项目技术Discuz X3.5电子签约插件开发项目实施方案优雅草·卓伊凡
  • 人工智能在智能金融中的创新应用与未来趋势
  • LeetCode:贪心算法
  • 基于本地化大模型的智能编程助手全栈实践:从模型部署到IDE深度集成学习心得
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.8 R语言解题
  • 引领机器人交互未来!MANUS数据手套解锁精准手部追踪
  • HarmonyNext使用request.agent.download实现断点下载
  • 《重塑认知:Django MVT架构的多维剖析与实践》
  • JS入门——三种输入方式
  • 源的企业级网络安全检测工具Prism X(棱镜X)
  • 基于FPGA的二叉决策树cart算法verilog实现,训练环节采用MATLAB仿真
  • mac电脑安装nvm
  • 权限分配不合理如何影响企业运营?
  • ES分词搜索
  • 深入掌握Node.js HTTP模块:从开始到放弃
  • 【数据库】并发控制
  • Ansys Zemax | 手机镜头设计 - 第 2 部分:光机械封装
  • 湖北理元理律师事务所债务优化实践:在还款与生活间寻找平衡支点
  • mcp-go v0.30.0重磅发布!Server端流式HTTP传输、OAuth支持及多项功能革新全面解读!
  • 解锁 MCP 中的 JSON-RPC:跨平台通信的奥秘
  • 流复制(Streaming Replication)与自动故障转移(Failover)实战:用Patroni或Repmgr搭建生产级数据库集群
  • OpenGL Chan视频学习-10 Dealing with Errors in OpenGL
  • 美团启动618大促,线上消费节被即时零售传导到线下了?
  • 搭建 Select 三级联动架构-东方仙盟插件开发 JavaScript ——仙盟创梦IDE