При работе с различиями все, что теряется, это начальный уровень серии. Вот пример того, как вернуться к уровням, где ситуация дополнительно усложняется введением запаздывающих терминов.
y <- log10(UKDriverDeaths)
dy <- diff(y)
m <- dynlm(dy ~ L(dy, 1) + L(dy, 12))
Теперь fitted(m)
имеет значения для разностей, и единственное, чего не хватает, это знать, с чего начать. В частности, у нас есть
cumsum(fitted(m)) + y[1 + 12]
- это значения, которые можно сравнивать с начальными рядами по уровням,
tail(y, -(1 + 12))
, где мы теряем 1 наблюдение из-за различий, а еще 12 соответствуют максимальному лагу.
Теперь, почему cumsum(fitted(m)) + y[1 + 12]
дает желаемый результат? В общем, пусть наблюдаемые ряды по уровням будут y 1 , y 2 , ... и разница в разностях будет Δy 2 , Δy 3 , ..., где обратите внимание, что у нас нет Δy 1 из-за отсутствия y 0 .
Теперь, забыв про лаги и просто подумав о роли cumsum
, обратите внимание, что
y t = (y t -y t-1 ) + (y t-1 -y t-2 ) + ... + (y 2 -y 1 ) + y 1 = Δy t + Δy t-1 + ... + Δy 2 + y 1 .
То есть, суммируя все изменения от начала до периода t, мы сначала получаем совокупное изменение y t -y 1 , а затем как получим y t мы также добавляем y 1 - начальный уровень.
Используя cumsum
, мы накапливаем эти изменения для каждого t векторизованным образом, а затем добавляем y 13 ко всему вектору cumsum(fitted(m))
, поскольку все они имеют одинаковую начальную точку интереса, у 13 .