UPDATE: 2023-01-14 10:13:49

はじめに

差分系列を元の系列に戻す方法をまとめておく。

差分系列

差分系列とは、原系列に対して、各時点での差分をとって作られる系列のことで、単位根過程を定常過程に戻す際に使用される。単位根過程とは、ある時系列が非定常過程であり、差分系列が定常になる過程のこと。

x <- c(10,15,25,26,30)
x
## [1] 10 15 25 26 30

差分系列はdiff関数を使えば計算できる。

diff_x <- diff(x)
diff_x
## [1]  5 10  1  4

差分系列をもとの系列の戻すには、差分系列の累積和を原系列の頭の値に足して、頭に原系列の頭の値をつなげれば元の過程に戻すことができる。

c(x[1], x[1] + cumsum(diff_x))
## [1] 10 15 25 26 30

もう少しわかりやすくするためにデータフレームに値をまとめる。diffには差分が記録され、cumdiffには差分の累計が記録されている。

差分には5, 10, 1, 4であり、最初の値を入れて10, 5, 10, 1, 4、累計和をとれば、

  • 10, 5, 10, 1, 4
  • 10
  • 10 + 5 = 15
  • 10 + 5 + 10 = 25
  • 10 + 5 + 10 + 1 = 26
  • 10 + 5 + 10 + 1 + 4 = 30

となる。手計算しなくても、diffinv関数に初期値を渡せばもとに戻せる。

data.frame(
  x,
  diff = c(NA, diff_x),
  cumdiff = c(NA, cumsum(diff_x)),
  reverse_x = c(x[1], x[1] + cumsum(diff_x)),
  diffinv_x = diffinv(diff_x, xi = x[[1]])
)
##    x diff cumdiff reverse_x diffinv_x
## 1 10   NA      NA        10        10
## 2 15    5       5        15        15
## 3 25   10      15        25        25
## 4 26    1      16        26        26
## 5 30    4      20        30        30