数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟-1

简介: 数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟

原文链接:http://tecdat.cn/?p=26301

线性模型是统计学的基础,但它的意义远不止用尺子在几个点上画一条线。

我认为以分布为中心的观点使 generalised linear models (GLM) 也更容易理解。这就是这篇文章的目的。

我将使用冰淇淋销售统计数据查看文末了解数据获取方式来说明不同的模型,从传统的线性最小二乘回归开始,到线性模型、对数变换线性模型,然后是广义线性模型,即泊松(log ) GLM 和二项式(逻辑)GLM。


数据

这是我将使用的示例数据集。它显示了在不同温度下销售的冰淇淋单位。正如预期的那样,更多的冰淇淋在更高的温度下出售。

basicPlot()

image.png

挑战

我想创建一个模型来预测在任何温度下销售的单位,即使在可用数据范围之外。

我特别感兴趣的是,当室外结冰时,我的模型在更极端的情况下会如何表现,比如温度下降到 0?C 并且预测一个非常炎热的夏日在 35?C。

线性最小二乘

我的第一种方法是用尺子在这些点上画一条直线,这样可以最大限度地减少点和线之间的平均距离。这基本上是一条线性最小二乘回归线:

lqd <- lsfit
abline

image.png

这很容易,而且看起来并非不合理。

线性回归

我相信观测值 yi 是从具有平均 μi 的正态(又名高斯)分布中得出的,这取决于温度 xi 和所有温度下的恒定方差 σ2。

在另一天,在相同温度下,我可能售出了不同数量的冰淇淋,但在相同温度下的许多天里,售出的冰淇淋的平均单位将趋向于 μi。

因此,使用以分布为中心的符号,我的模型如下所示:

image.png

或者,残差,即观察值和预测值之间的差异,遵循均值为 0 且方差为 σ2 的高斯分布:

image.png

此外,方程

image.png

我认为 yi 的期望值与基础分布的参数 μi 相同,而方差是恒定的。

以经典误差术语约定编写的相同模型如下所示:

image.png

我认为以概率分布为中心的约定更清楚地表明我的观察只是分布的一种实现。此外,它强调分布的参数是线性建模的。

为了在 R 中明确建模,我使用 glm 函数,将因变量分布指定为高斯分布,并将从分布的预期值到其参数的链接函数指定为恒等式。

这就是 GLM 全部内容。

image.png

尽管线性模型在观察到的温度范围内看起来不错,但在 0?C 时没有多大意义。

截距为 -159,这意味着客户在冰冻天平均买 159 个单位的冰淇淋。

对数变换的线性回归

我可以先转换数据。理想情况下,我想确保转换后的数据只有正值。在这些情况下,我想到的第一个转换是对数。

因此,让我们以对数尺度对冰淇淋销售进行建模。因此,我的模型更改为:

image.png

这个模型意味着我相信销售额服从对数正态分布,yi~log?N(μi,σ2),这意味着我认为较高的销售数字比较低的销售数字更有可能,因为对数正态分布是右偏的。

尽管模型在对数尺度上仍然是线性的,但我必须记住将预测转换回原始尺度(记住 E[log?(yi)]≠log?(E[yi])):

image.png

display(logn.mod)

image.png

Plot()
lines
legend

image.png


该图看起来比之前的线性模型好一点,它预测我在 0?C 时平均会卖出 82 个冰淇淋:

exp(coef(lo.i.d)\[1\])

image.png

虽然这个模型更有意义,但似乎高估了在越来越低的温度下销售。

此外,这个模型和之前的线性模型还有另一个问题。

假设的模型分布生成实数,但我的销售统计数据是单位,因此总是整数。尽管售出的平均单位数量可能是实数,但从模型分布中抽取的任何数据都应该是整数。


数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟-2


相关文章
|
1天前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
1天前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
1天前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
1天前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
1天前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
1天前
|
移动开发 数据可视化
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
|
1天前
|
机器学习/深度学习 人工智能 数据可视化
【视频】R语言支持向量回归SVR预测水位实例讲解|附代码数据
【视频】R语言支持向量回归SVR预测水位实例讲解|附代码数据
|
1天前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
|
1天前
|
机器学习/深度学习 数据采集 算法
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
|
1天前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化

热门文章

最新文章

http://www.vxiaotou.com