ある時点を基準にしたときの時間の遅れ(ズレ)を ラグ(lag, time lag)という。 時系列データにおいて,時点\(t\)の値を\(y_t\)としたとき, 時点\(t\)を基準にして1時点前の値は\(y_{t-1}\)で表される。 \(k\)時点分の時間の遅れは,\(k\)次ラグといい,\(y_{t-k}\)で表す。
# 毎正時のタイムスタンプを作成
px <- seq(as.POSIXct('2023-01-01 01:00:00'),
as.POSIXct('2023-01-01 12:00:00'), by = 60 * 60)
n <- length(px)
原系列\(1, 2, \cdots, n\)から,次数3までのラグ系列を作成する。
x <- 1:n
# 時系列を扱うts型オブジェクトを作成
y <- ts(x) # 原系列
y.lag1 <- lag(y, k = -1) # 1次ラグ系列
y.lag2 <- lag(y, k = -2) # 2次ラグ系列
y.lag3 <- lag(y, k = -3) # 3次ラグ系列
ts4 <- cbind(y, y.lag1, y.lag2, y.lag3)[1:n, ]
d <- as.data.frame(ts4)
d
matplot(x = px, y = d, type = 'o', lty = 1:4, col = 1:4, pch = 1:4,
main = '原系列とラグ系列', xlab = '時刻', ylab = '値')
grid()
legend('topleft', lty = 1:4, col = 1:4, pch = 1:4,
legend = c('原系列', '1次ラグ系列', '2次ラグ系列', '3次ラグ系列'))
左側にある系列ほど時間的に早い。
次のデータ(原系列)の1次ラグ系列と1次リード系列を作成しグラフで示せ。
原系列としてホワイトノイズ\(N(0, 1)\)を使用する。
# 毎正時のタイムスタンプを作成
px <- seq(as.POSIXct('2023-01-01 01:00:00'),
as.POSIXct('2023-01-01 12:00:00'), by = 60 * 60)
n <- length(px)
# ホワイトノイズ
set.seed(5963)
x <- rnorm(n, mean = 0, sd = 1)
# 時系列を扱うts型オブジェクトを作成
y <- ts(x) # 原系列