大数据分析-时间序列分析

笔记列表:

大数据分析-时间序列分析

时间序列是按日期或时间戳索引的分类或数字变量的观测序列。时间序列数据的一个明显例子是股价的时间序列。在下表中,我们可以看到时间序列数据的基本结构。在这种情况下,每小时记录一次观察结果。

时间戳记 股票价格
2015-10-11 09:00:00 100
2015-10-11 10:00:00 110
2015-10-11 11:00:00 105
2015-10-11 12:00:00 90
2015-10-11 13:00:00 120

通常,时间序列分析的第一步是绘制序列,通常使用折线图完成。

时间序列分析的最常见应用是使用数据的时间结构来预测数值的未来值。这意味着,可用的观测值将用于预测未来的价值。

数据的时间顺序意味着传统的回归方法没有用。为了建立可靠的预测,我们需要考虑数据时间顺序的模型。

时间序列分析中使用最广泛的模型称为自回归移动平均值(ARMA)。该模型由两部分组成,即自回归(AR)部分和移动平均值(MA)部分。该模型通常称为ARMA(p,q)模型,其中p是自回归部分的阶数,q是移动平均部分的阶数。

自回归模型

AR(p)读为p阶的自回归模型。从数学上讲,它写为-

Xt=c+i=1PϕiXti+εt

其中{φ 1,…,φ p }将被估计的参数,c为常数,ε随机变量表示白噪声。参数值需要一些约束,以使模型保持稳定。

移动平均线

符号MA(Q)指令的移动平均模型q

Xt=μ+εt+i=1qθiεti

其中θ 1,……,θ q是该模型的参数,μ是X的期望值,和ε,ε吨- 1,…是,白噪声误差项。

自回归移动平均线

ARMA(P,Q)模型结合p自回归项和q移动平均而言。在数学上,该模型用以下公式表示-

Xt=c+εt+i=1PϕiXt1+i=1qθiεti

我们可以看到ARMA(p,q)模型是AR(p)MA(q)模型的组合。

为了使模型更直观,请考虑方程的AR部分试图估计X t-i观测值的参数,以便预测X t中变量的值最后,它是过去值的加权平均值。MA部分使用相同的方法,但存在先前观测值εt − i的误差因此,最后,模型的结果是加权平均值。

以下代码段演示了如何在R中实现ARMA(p,q)

# install.packages("forecast")
library("forecast")  

# Read the data 
data = scan('fancy.dat') 
ts_data <- ts(data, frequency = 12, start = c(1987,1)) 
ts_data  
plot.ts(ts_data)

绘制数据通常是找出数据中是否存在时间结构的第一步。从图中可以看出,每年年底都有强劲的峰值。

时间序列图

以下代码使ARMA模型适合该数据。它可以运行几种模型组合,并选择误差较小的模型。

# Fit the ARMA model
fit = auto.arima(ts_data) 
summary(fit) 

# Series: ts_data  
# ARIMA(1,1,1)(0,1,1)[12]                     
#    Coefficients: 
#    ar1     ma1    sma1 
# 0.2401  -0.9013  0.7499 
# s.e.  0.1427   0.0709  0.1790 

#  
# sigma^2 estimated as 15464184:  log likelihood = -693.69 
# AIC = 1395.38   AICc = 1395.98   BIC = 1404.43 

# Training set error measures: 
#                 ME        RMSE      MAE        MPE        MAPE      MASE       ACF1 
# Training set   328.301  3615.374  2171.002  -2.481166  15.97302  0.4905797 -0.02521172

其他教程链接:

觉得文章有用?

点个广告表达一下你的爱意吧 !😁

评论区

Protected with IP Blacklist CloudIP Blacklist Cloud