【问题标题】:remove trend from data in R从 R 中的数据中删除趋势
【发布时间】:2016-03-22 16:06:41
【问题描述】:

我有两个数据集,其中一个显示季节性,另一个显示趋势。

我已经从第一个数据集中删除了季节性,但我无法从另一个数据集中删除趋势。

另外,如果我从另一个数据集中删除趋势,然后尝试为两个更改的数据集创建一个数据框,那么两个数据集的行数将不同(因为我已经从第一个数据集使用了lag,所以两个数据集相差52个值)。

我该怎么做?

【问题讨论】:

  • 这是用于时间序列的吗?
  • 你能澄清一下你的数据结构吗?即,是每月、每周还是每季度?还有时间序列的跨度(如果是 ts),它从哪里开始,在哪里结束?
  • 这是一个每周数据,从 2011 年 1 月到 2016 年 2 月开始

标签: r trend


【解决方案1】:

要去除时间序列的趋势,您有多种选择,但最常用的是“mFilter”包中的 HP 过滤器:

    a <- hpfilter(x,freq=270400,type="lambda",drift=FALSE)

频率是数据的每周性质,并且drift=FALSE 设置没有截距。该函数计算周期性和趋势分量,并将它们分别提供给您。

如果您的两个系列的时间索引相同(即每周),您可以使用以下内容,其中 x 和 y 是您的数据框:

    final <- merge(x,y,by=index(a),all=FALSE)

您始终可以设置 all.x=TRUE (all.y=TRUE) 以查看 x (y) 的哪些行在 y (x) 中没有匹配的输出。查看merge here 的文档。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多