首页 > 解决方案 > 使用过去的预测作为带滑块的因变量

问题描述

我被困在一个无论我多么努力都无法解决的问题上。

假设您有 3 个变量,如下所述。您要预测的 y 的观测值少于 a 或 b。我想要的是:用最后 10 个 obs 运行一个 OLS 并预测一个前面。使用这个新的作为原始值来预测第 12 个 obs,依此类推。

我想我会很容易做到这一点,但我爱上了这个函数式编程浪潮,所以我一直在尝试......

    library(tidyverse)
    library(slider)  
    regex <- tibble(a = rnorm(10), 
                    b = rnorm(10),
                    y = rnorm(10))%>% add_row(a = rnorm(5), b = rnorm(5))
    
        regex <- regex %>%
 mutate(Pred= lag(slide(., ~stats::predict(lm(y ~  . , .x)), .before = 10, .complete = F)%>%
 map_dbl(., last)))

另外,我不知道通过收集 stats::predict() 生成的列表的最后一个元素并用滞后改变其位置来做错什么......这是一个较小的问题,但如果有人发现我很高兴知道更好的解决方案。

标签: rdictionaryslidertidyversepurrr

解决方案


推荐阅读