时间序列的数据分析(一):主要成分

时间序列是一组按照时间发生先后顺序进行排列,并且包含一些信息的数据点序列,在时间序列数据中通常包含了数据的发展趋势(向上、向下、保持)和数据的变化规律(季节性)等特征。而这些特征往往具有一定的规律性和可预测性,具体来说时间序列数据具有如下几种特点:

  1. 趋势性:某个变量随着时间进展或自变量变化,呈现一种比较缓慢而长期的持续上升、下降、保存不变的趋向,但变动幅度可能不相等。
  2. 季节性:某因素由于外部影响如随着自然季节的交替出现高峰与低谷的规律。
  3. 随机性:个别时刻呈现随机变动,整体呈统计规律。

在某些应用场景中需要对时间序列数据进行预测,比如在零售,电商等行业需要对未来一段时间的销售金额,客流量,订单量等进行预测,准确的预测结果可以为企业的领导层提供决策参考,并有助于提高企业的人效,为企业带来更多的利润。

一,趋势(Trend)

时间序列的数据往往包含了一定的数据发展趋势,比如下图中的数据有非常明显的趋势:

 二,季节性(Seasonal)

时间序列数据中的季节性指的是数据中包含的周期性变化的规律,这些周期性变化规律往往和年度,月,季度,周等季节性时间点有密切的关系。通常季节性因子又可以分为1.加法季节性,2.乘法季节性。

2.1 加法季节性(Additive)

所谓加法季节性是指时间序列数据周期性变化的幅度不会随着时间的发展而发生变化,换句话说数据变化的幅度不受时间的影响(幅度保持不变)如下图所示:

从上图中可以看到,数据呈现出季节性变化规律,但是这种变化的幅度没有随着时间的发展而发生变化,即时间对季节性变化没有影响。

 2.2 乘法季节性(Multiplicative)

所谓乘法季节性是指时间序列数据周期性变化的幅度会随着时间的发展而发生变化,换句话说数据变化的幅度和时间呈现线性关系如下图所示:

 从上图中可以看到,数据呈现出季节性变化规律,并且这种季节性变化的幅度随着时间的发展而发生变化(比如逐渐变大或变小)。

三,残差(Residual)

残差是指当时间序列数据中删除了趋势和季节性特征以后剩余的部分,我们一般认为具有季节性特征的时间序列数据的残差的服从均值为0的正太分布,残差一般被认为是一种白噪声信号,我们可以通过逐步删除时间序列数据中的趋势和季节性特征来得到残差:

 如上图所示当从原始数据中删除了趋势以后,剩余的成分就是:季节性+残差,接下来我们要从季节性+残差的成分中删除季节性成分后得到残差。

下面我们通过python的第三方类库statsmodes的seasonal_decompose来分解时间序列数据:

from statsmodels.tsa.seasonal import seasonal_decompose

df=pd.read_csv("airline_Passengers.csv")
df.set_index('Period',inplace=True)
df.index = pd.to_datetime(df.index)
data = df["#Passengers"]
seasonal_decomp = seasonal_decompose(data, model="additive")
seasonal_decomp.plot();

总结

时间序列数据的主要成分包含: 趋势、季节性、残差。季节性又分为加法季节性和乘法季节性。可以使用statsmodes包的seasonal_decompose方法来分解时间序列。

参考资料

statsmodels.tsa.seasonal.seasonal_decompose — statsmodels

  • 29
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
时间序列分析是一种用于研究随时间变化的数据模式和趋势的统计方法。在MATLAB中,有多种工具和函数可用于进行时间序列分析。 1. 数据导入和可视化:使用`readtable`或`csvread`函数将时间序列数据导入MATLAB,并使用`plot`函数将数据可视化,了解数据的整体趋势。 2. 数据平滑:使用`smoothdata`函数对时间序列数据进行平滑处理,以去除噪声和突变,以便更好地观察数据的长期趋势。 3. 自相关分析:使用`autocorr`函数计算时间序列数据的自相关系数,以了解数据的周期性和相关性。 4. 移动平均和指数平滑:使用`movmean`和`exponentialSmoothing`函数计算时间序列数据的移动平均和指数平滑,以捕捉数据的短期趋势和趋势变化。 5. 季节性分解:使用`seasonaldecompose`函数对时间序列数据进行季节性分解,以分离出季节性、趋势和残差成分。 6. 预测与模型拟合:使用ARIMA模型(自回归移动平均模型)或其他时间序列模型来预测未来的数据值,并使用`forecast`函数进行预测。 7. 频谱分析:使用`pwelch`函数计算时间序列数据的功率谱密度,以了解在不同频率上数据的能量分布。 以上仅是时间序列分析的一些基本方法,在MATLAB中还有更多高级的工具和函数可用于时间序列建模和分析。你可以根据具体的需求和问题进一步深入研究和学习相关内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

-派神-

感谢您慷慨解囊,我会更加努力!

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

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

打赏作者

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

抵扣说明:

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

余额充值