# 毎正時のタイムスタンプを作成
px <- seq(as.POSIXct('2023-01-01 01:00:00'),
as.POSIXct('2023-01-01 12:00:00'), by = 60 * 60)
n <- length(px)
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
## y y.lag1 y.lag2 y.lag3
## 1 1 NA NA NA
## 2 2 1 NA NA
## 3 3 2 1 NA
## 4 4 3 2 1
## 5 5 4 3 2
## 6 6 5 4 3
## 7 7 6 5 4
## 8 8 7 6 5
## 9 9 8 7 6
## 10 10 9 8 7
## 11 11 10 9 8
## 12 12 11 10 9
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次ラグ系列'))

# 毎正時のタイムスタンプを作成
px <- seq(as.POSIXct('2023-01-01 01:00:00'),
as.POSIXct('2023-01-01 12:00:00'), by = 60 * 60)
n <- length(px)
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
## y y.lag1 y.lag2 y.lag3
## 1 1 NA NA NA
## 2 2 1 NA NA
## 3 3 2 1 NA
## 4 4 3 2 1
## 5 5 4 3 2
## 6 6 5 4 3
## 7 7 6 5 4
## 8 8 7 6 5
## 9 9 8 7 6
## 10 10 9 8 7
## 11 11 10 9 8
## 12 12 11 10 9
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次ラグ系列'))

# Create 1st lag and 1st lead series
y.lag1 <- lag(y, k = -1) # 1st lag series
y.lead1 <- lag(y, k = 1) # 1st lead series
# Combine all series into a data frame and remove rows with NA
ts_data <- cbind(y, y.lag1, y.lead1)
df <- as.data.frame(ts_data)
df <- df[complete.cases(df), ] # Remove rows with NA
df$time <- px[1:nrow(df)] # Adjust time column to match the data
# Plotting the series
matplot(x = df$time, y = df[, c("y", "y.lag1", "y.lead1")], type = 'o', lty = 1:3, col = 1:3, pch = 1:3,
main = "原系列とラグ・リード系列", xlab = "時刻", ylab = "値")
grid()
legend("topright", lty = 1:3, col = 1:3, pch = 1:3,
legend = c("原系列", "1次ラグ系列", "1次リード系列"))
