赞
踩
一、写在前面
我们继续往下看,首先例行回顾文章:
《PLoS One》杂志的2023年一篇题目为《A comparative study of three models to analyze the impact of air pollutants on the number of pulmonary tuberculosis cases in Urumqi, Xinjiang》文章的公开数据做案例。
这文章做的是用:空气污染物对新疆乌鲁木齐肺结核病例数影响的比较研究。
在这篇文章中,结果一和结果二已经把ARIMA模型构建流程描述完毕。这么简短的篇幅就能描述完,主要是因为它后面还有ARIMAX模型以及RNN模型。
再介绍ARIMAX模型之前,我觉得还是有必要做个小插曲:如何使用SPSS实现结果一的季节性分解。
原因在于我想把该教程的覆盖面尽可能地扩展。对于一些基层工作人员,让他们学Pyhton、R等编程语言,门槛实在是有些高了。因此,能用SPSS“点点点”实现的,我就尽量去介绍。
二、学习和复现(SPSS):重返结果一
咱们一步一步来吧:
(1)数据导入SPSS,不多介绍:
(2)定义时间序列数据:
(3)进行季节性拆分操作:
弹出这个窗口,那就到理论知识点了:啥叫乘法模型和加法模型?啥叫移动平均值权重。本着不懂就问GPT的原则:
季节性分解是一种时间序列数据分析方法,它将数据分解成趋势、季节性和随机成分。在季节性分解中,主要有两种模型:加法模型和乘法模型。它们的选择取决于数据的特性和季节性变化的性质。
乘法模型 vs. 加法模型
乘法模型:假设时间序列的季节性是随着趋势的变化而按比例变化的。也就是说,季节性效应与时间序列的水平成正比。这意味着,如果时间序列的趋势部分增长,季节性的影响也会相应增加。乘法模型通常适用于经济和人口统计数据,其中季节性波动与序列水平成比例增长。
加法模型:假设时间序列的季节性是固定的,不随趋势的变化而变化。在加法模型中,时间序列可以被视为趋势、季节性和随机成分的简单相加。这种模型适合于季节性波动不随时间序列水平变化的情况。
移动平均值权重的选择
移动平均值是平滑时间序列数据的一种方法。权重的选择可以是均等的,也可以是非均等的,这取决于对数据的特定假设。
所有点权重相等:这意味着在计算移动平均值时,每个点的贡献被认为是相同的。这种方法假设序列中的所有观察值对趋势的估计都同等重要。
端点按0.5加权:这种方法给序列开始和结束的点较小的权重(通常是0.5),而序列中间的点则按完全权重计算。这种方法试图减少移动平均线的滞后效应,因为在时间序列分析中,最近的观测往往比早期的观测更加重要。
嗯,说得很好,好像看不懂,于是我继续问:
GPT回答道:
对于乘法模型还是加法模型的适用性,我们需要观察季节性波动是否随着时间序列的水平(即值的大小)变化。如果波动的幅度似乎随着水平的增加而增加(即波动幅度与水平呈正比),那么乘法模型可能更合适。然而,如果季节波动的幅度相对恒定,不随水平的变化而变化,加法模型可能更为合适。
从这个图表来看,虽然有些波动似乎较大,但没有明显的证据表明季节性波动与水平成正比,这可能意味着加法模型适用。
对于移动平均值的权重选择,如果数据的最新点更为重要,或者想要减少端点处的滞后效应,那么可以考虑给端点较小的权重(例如端点按0.5加权)。如果没有明确的理由偏好最近的数据点,那么所有点权重相等的简单移动平均可能更为合适。
这个描述看起来还不够直观,所以我让GPT直接给我举例子:
如上图:展示了具有加法季节性的时间序列。季节性变化(如温度、销售等)的幅度在整个时间序列中是恒定的,不依赖于时间序列的水平(即趋势)。
如上图:展示了具有乘法季节性的时间序列。季节性变化的幅度随着时间序列的水平(趋势)变化而变化。例如,如果趋势上升,季节性的峰值和低谷也会上升。这表明季节性效应与时间序列的水平成比例,因此适合使用乘法模型。
(4)所以,回看我们的数据,似乎是有个下降趋势,然后趋于平稳,这就尴尬了,但是平稳的序列多一些吧,因此我们试一试默认选项:“加法模型”+“所有点相等”,点击确定:
看看结果界面:
解读:
季节因子是一种统计工具,用于量化一个时间序列在一年中不同月份的季节性波动。表中的数字表示在加法模型中,每个月相对于年度趋势的季节性偏差。负值表示该月的数值低于平均水平,而正值表示高于平均水平。例如:
1月的季节性分量为-46.57153,这意味着1月的“PTB cases”数值通常会低于整体趋势的平均值。2月的数值更低,为-59.30069。
12月的季节性分量为65.80347,这表明12月的数值通常高于趋势的平均值。
可以认为12月是高峰,1-2月是低谷。
(5)我们在把其他组合试一试,点击确定:
同理,乘法模型的结果表示了在特定月份内,数据值与整个时间序列平均水平的比例关系。例如,1月的季节因子是77.8%,这意味着1月的数据值通常是年平均值的77.8%。相比之下,12月的季节因子是132.9%,表明12月的数据值通常比年均值高32.9%。
从以上四个图来看,其实趋势大体是一致的:12月是高峰,1-2月是低谷。
(6)根据分解出的数据作图:
点击确定后,除了在结果界面显示出季节因子的结果。在数据界面还能显示出四列数据(“加法模型”+“所有点相等”为例):
从上到下依次是:提取后的残差、去除季节性信息后的序列、季节信息、总体趋势。可以看到,这已经实现了之前使用Pyhton做的结果,还多了一个“去除季节性信息后的序列”。现在,就按照结果一的顺序排列:
到此结束,也可以把数据复制到其他软件作图。
三、一点补充
细心的朋友估计会发现,SPSS做出的图跟Python做的略有差异,还是那句话:不同软件或者统一软件不同版本号,算出来的结果有差异很正常。因此,文章中要写清楚软件及其版本号。
之前给的Python代码使用了加法模型来进行季节性分解:通过seasonal_decompose函数调用时使用的参数model='additive'来实现,如使用乘法模型,则改为model='multiplicative'。至于“所有点权重相等”还是“按0.5加权的移动平均”,不是seasonal_decompose函数的内置特性,忽略吧。
瞄了一眼论文给的R代码,用的是乘法模型,哈哈:
四、数据
链接:https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0277314
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。