r - diffinv 函数输出不是我想的那样

标签 r time-series

尝试弄清楚如果使用 2 个差分如何正确地求反差分。

我可以使用选项 differences = 2 进行两次差分,一切正常:

diff(c(3,6,23,64,77)) = 3 17 41 13
diff(c(3, 17, 41, 13)) = 14  24 -28
diff(c(3,6,23,64,77), lag = 1, differences = 2) = 14  24 -28

当我两次使用diffinv时,使用3作为初始条件(由于第一个差的第一个元素是3,答案是正确的,它是起始向量:

diffinv(
    diffinv(
        diff(c(3,6,23,64,77), lag = 1, differences = 2), 
    xi = 3), 
xi=3) = 3 6 23 64 77

但是如果我尝试做两个逆差,我会得到不正确的答案:

diffinv(
    diff(c(3, 6, 23, 64, 77), lag = 1, differences = 2), 
    lag = 1, differences = 2, xi = c(3, 3)
) = 3  3 17 55 65

尝试将 difinvdifferences = 2 一起使用时,我做错了什么?

最佳答案

如果单独执行反差分,则每种情况下都需要第一项。

但是,如果你同时做两个逆差,你需要原始数据的前两个值

diffinv(
    diff(c(3, 6, 23, 64, 77), lag = 1, differences = 2), 
    lag = 1, differences = 2, xi = c(3, 6)
) = 3  6 23 64 77

请注意,在这种情况下,我必须使用 c(3, 6),它们是原始数据的前两个元素。

在前面的例子中,我使用了两次 diffinv,所以 c(3, 3) 是原始数据的第一个元素,也是数据的第一个差分的第一个元素。

关于r - diffinv 函数输出不是我想的那样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62418375/

相关文章:

r - 使用 zoo 包创建数据框 ts 时出错

传感器数据的 mongodb 结构

r - 如何减少R中多个图之间的间距

r - 在日期/因子向量字段上使用 sapply - 包括递增值

r - 在 ggplot2 中绘制污染物超标的持续时间

python - 具有多个时间序列的 PCA 作为具有 sklearn 的一个实例的特征

使用R中的xts和zoo包对时间序列进行重采样

r - 根据另一个数据框中的一组规则在一个数据框中创建一组变量

r - Shiny 的条件导航列表

r - 将变化的 for 循环变量插入模型公式