【问题标题】:Weighted Moving Average based on Irregular Date Intervals基于不规则日期间隔的加权移动平均线
【发布时间】:2017-07-25 07:01:47
【问题描述】:

我是时间序列的新手,希望有人可以在这里提供一些输入/想法。

我正在尝试寻找估算缺失值的方法。
我希望找到移动平均线,但大多数包(smooth、mgcv、)似乎没有考虑时间间隔。
例如,数据集可能如下所示,我希望 2016-01-10 的值在计算缺失值时具有最大影响:

Date          Value    Diff_Days
2016-01-01    10       13           
2016-01-10    14       4
2016-01-14    NA       0
2016-01-28    30       14
2016-01-30    50       16

我有一些例子,NA 可能是第一个观察结果或最后一个观察结果。有时 NA 值也会出现多次,此时滚动窗口需要扩大,这就是我想使用移动平均线的原因。
是否有将日期间隔/单独权重考虑在内的软件包?
或者请建议在这种情况下是否有更好的方法来估算 NA 值。

【问题讨论】:

  • 您的时间序列是否需要更平滑?如果没有新的观察结果,您可以用最后观察到的值替换它们(例如,对于日期 2016-01-14,值 14),因为在时间序列中没有真正的信息增益/新闻/创新。
  • 我想获得加权平均值,而不是用之前的值进行估算。也有可能之前的观察记录在 2016-01,下一个值记录在 2016-08,然后是 2016-09,等等

标签: r time-series moving-average


【解决方案1】:

您可以使用glm 或任何不同的模型。

输入

con <- textConnection("Date          Value    Diff_Days
2015-12-14    NA       0
                      2016-01-01    10       13           
                      2016-01-10    14       4
                      2016-01-14    NA       0
                      2016-01-28    30       14
                      2016-02-14    NA       0
                      2016-02-18    NA       0
                      2016-02-29    50       16")

df <- read.table(con, header = T)
df$Date <- as.Date(df$Date)

df$Date.numeric <- as.numeric(df$Date)
fit <- glm(Value ~ Date.numeric, data = df)

df.na <- df[is.na(df$Value),]

predicted <- predict(fit, df.na)
df$Value[is.na(df$Value)] <- predicted

plot(df$Date, df$Value)
points(df.na$Date, predicted, type = "p", col="red")

df$Date.numeric <- NULL
rm(df.na)
print(df)

输出

        Date     Value Diff_Days
1 2015-12-14 -3.054184         0
2 2016-01-01 10.000000        13
3 2016-01-10 14.000000         4
4 2016-01-14 18.518983         0
5 2016-01-28 30.000000        14
6 2016-02-14 40.092149         0
7 2016-02-18 42.875783         0
8 2016-02-29 50.000000        16

【讨论】:

  • 感谢您的回答。这似乎更像是寻找缺失值的线性拟合。一旦我们获得了这些值,您知道我们如何在仍然使用日期作为适当权重的情况下平滑它们吗?
  • 我已经改用广义线性模型,变得更好了。您可以尝试其他模型。
猜你喜欢
  • 2017-03-19
  • 1970-01-01
  • 2021-04-11
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 2023-03-12
  • 2012-11-28
  • 1970-01-01
相关资源
最近更新 更多