Big-data-analytics-time-series-analysis

提供:Dev Guides
移動先:案内検索

ビッグデータ分析-時系列分析

時系列は、日付またはタイムスタンプでインデックス付けされたカテゴリ変数または数値変数の一連の観測です。 時系列データの明確な例は、株価の時系列です。 次の表では、時系列データの基本構造を見ることができます。 この場合、観測は1時間ごとに記録されます。

Timestamp Stock - Price
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)部分の2つの部分で構成されています。 通常、このモデルは_ARMA(p、q)_モデルと呼ばれます。ここで、_p_は自己回帰部分の次数、_q_は移動平均部分の次数です。

自己回帰モデル

_AR(p)_は、次数pの自己回帰モデルとして読み取られます。 数学的には-

X_t = c + \ sum _ \ {i = 1} ^ \ {P} \ phi_i X _ \ {t-i} + \ varepsilon _ \ {t}

ここで、\ {φ〜1〜、…、φ〜p〜}は推定されるパラメーター、cは定数、ランダム変数ε〜t〜はホワイトノイズを表します。 モデルが静止したままになるように、パラメーターの値にいくつかの制約が必要です。

移動平均

表記_MA(q)_は、次数_q_の移動平均モデルを指します-

X_t = \ mu + \ varepsilon_t + \ sum _ \ {i = 1} ^ \ {q} \ theta_i \ varepsilon _ \ {t-i}

ここで、θ〜1〜、…​、θ〜q〜はモデルのパラメーター、μはX〜t〜の期待値、ε〜t〜、ε〜t − 1〜、…​ は、ホワイトノイズ誤差の項です。

自己回帰移動平均

_ARMA(p、q)_モデルは、p自己回帰項とq移動平均項を組み合わせます。 数学的には、モデルは次の式で表されます-

X_t = c + \ varepsilon_t + \ sum _ \ {i = 1} ^ \ {P} \ phi_iX _ \ {t-1} + \ sum _ \ {i = 1} ^ \ {q} \ theta_i \ varepsilon _ \ { ti}

_ARMA(p、q)_モデルは_AR(p)_と_MA(q)_モデルの組み合わせであることがわかります。

モデルの直観を与えるために、X〜t〜の変数の値を予測するために、式のAR部分がX〜t-i〜観測のパラメーターを推定しようとすることを考慮してください。 最終的には、過去の値の加重平均です。 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