【发布时间】:2016-07-25 08:45:24
【问题描述】:
背景
您好,我想检查提供的dplyr 工作流是否反映了Taylor (2010) 描述的均方误差估计器 的计算。
问题
地点:
- 24 反映了 Taylor 数据集中的观察总数。对于所提供的数据,这将对应于每组 10 个观察值。
数据
使用的数据相当简单,类似于摘录:
set.seed(123)
dta <- data.frame(group = rep(LETTERS[1:3], 10),
year = rep(2001:2010, 3),
value = round(runif(30),2))
建议的工作流程
工作流程草案将对应于代码:
# Pkgs
Vectorize(require)(package = c("dplyr", "magrittr"),
char = TRUE)
# Workflow
dta %<>%
arrange(group, year) %>%
group_by(group) %>%
mutate(X1 = cumsum(value) / row_number()) %>%
mutate(X2 = cumsum(lead(value)) / (length(value) - row_number())) %>%
mutate(MSEe = cumsum((value - X1) ^ 2 + (value - X2) ^ 2))
参考
Taylor,2010,变化点分析:检测变化的强大新工具 可用:http://www.variation.com/cpa/tech/changepoint.html
【问题讨论】:
-
嗨康拉德,它似乎缺少 m?如果我没记错的话,你需要分成上m组和下m组
-
@chinsoon12 感谢您的关注。抱歉,我应该在他的原始示例中更详细地解释 Taylor 使用月度数据,因此 m 值对应于每个月。在提供的数据是年度数据的情况下,m 将反映每年。由于每个组中的数据按年份排序,因此我正在考虑使用
row_number()调用来引用当前行。在拆分方面,我希望工作流能够拆分每一行的数据并返回 MSE(m) 以找到最小值,因此会调用cumsum()。 -
mse
-
@chinsoon12 非常感谢您的贡献。如果您愿意,请随时提出建议作为答案,可能没有人会评论代码的
dplyr方面。 -
它并没有真正回答你的问题,所以我宁愿不把它作为答案发布。
标签: r time-series dplyr panel-data mean-square-error