【发布时间】:2021-07-28 04:05:06
【问题描述】:
嘿,我有以下测试数据:
test = data.frame(Date = c(as.Date("2010-10-10"), as.Date("2010-10-10"), as.Date("2010-12-10"), as.Date("2010-12-10")), Rate = c(0.1, 0.15, 0.16, 0.2), FCF = c(100,200,150,250))
现在我想按日期对数据进行分组,在每组中进行线性回归FCF~Rate,然后在每组中执行这些回归以获得每个日期和速率的回归值。我有以下代码:
output = test %>% group_by(Date) %>% do(mod = lm(FCF ~ Rate, data = .))
output = test %>% left_join(output, by = "Date")
output = output %>% ungroup() %>% mutate(Value = predict(mod, newdata = Rate))
没有最后一行,一切正常,因为mod 不是模型而是列表,我无法进行预测。我应该改变什么?
编辑: 当我评估这段代码时:
output = test %>% group_by(Date) %>%
do(mod = lm(FCF ~ Rate, data = .))
output = test %>% left_join(output, by = "Date")
output = output %>% ungroup()
我明白了:
问题是我如何使用来自mod 列的模型来计算来自Rate 列的费率的预测值。
【问题讨论】:
-
快速澄清问题:为什么要对数据子集执行线性模型?这是一项重复测量研究吗?如果是这种情况,那么您真正追求的可能是 Rate 嵌套在日期内的线性模型,在这种情况下,您可能需要考虑使用 lmer 或 lme4 包从非聚合数据中开发模型。
标签: r dplyr regression