Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:根据固定时期估计的方程式提前一个月进行预测_R_Object_Time Series_Formula_Forecasting - Fatal编程技术网

R:根据固定时期估计的方程式提前一个月进行预测

R:根据固定时期估计的方程式提前一个月进行预测,r,object,time-series,formula,forecasting,R,Object,Time Series,Formula,Forecasting,下面的玩具模型代表了一个包含更多变量、变换、滞后等的模型。假设我做对了 我的数据是按时间顺序排列的,但现在格式为R时间序列,因为我需要排除某些时段等。出于这个原因,我不想将其设置为时间序列,因为我认为它很容易弄乱,但如果需要,或者它大大简化了估计过程,我只想使用整数序列,例如索引。下面,表示允许的时间 我的问题很简单(我希望如此)。我想用我的数据的第一部分来估计模型的系数。然后我想使用这些估计,而不是滑动窗口中的估计,对该数据的每个剩余值进行一次提前预测。其思想是,该公式应用于滑动窗口,即使它不

下面的玩具模型代表了一个包含更多变量、变换、滞后等的模型。假设我做对了

我的数据是按时间顺序排列的,但现在格式为R时间序列,因为我需要排除某些时段等。出于这个原因,我不想将其设置为时间序列,因为我认为它很容易弄乱,但如果需要,或者它大大简化了估计过程,我只想使用整数序列,例如索引。下面,表示允许的时间

我的问题很简单(我希望如此)。我想用我的数据的第一部分来估计模型的系数。然后我想使用这些估计,而不是滑动窗口中的估计,对该数据的每个剩余值进行一次提前预测。其思想是,该公式应用于滑动窗口,即使它不是用滑动窗口估计的。显然,我可以重新键入包含系数的模型,然后以多种方式得到我想要的结果,使用base R
sapply
,使用tidyverse
dplyr::mutate
purrr::map_dbl
,等等。但我从道德上肯定,有某种标准方法可以将公式从lm对象中提取出来,然后根据需要使用它,我就是没能找到。例如:

set.seed(1)

x1 <- 1:20
y1 <- 2 + x1 + lag(x1) + rnorm(20)
index. <- x1
data. <- tibble(index., x1, y1)
mod_eq <- y1 ~ x1 + lag(x1)

lm_obj <- lm(mod_eq, data.[1:15,])
set.seed(1)

x1使用系数的常用方法是调用模型对象上的predict()、coverties()或summary()函数,以获取其价值。您可以尝试使用?predict.lm()文档了解公式的详细信息

一个简单的例子:

data.$lagx <- dplyr::lag(data.$x1, 1) #create lag variable
lm_obj1 <- lm(data=data.[2:15,], y1 ~ x1 + lagx) #create model object
data.$pred1 <- predict(lm_obj1, newdata=data.[16,20]) #predict new data; needs to have same column headings

数据。$lagx谢谢,@Patrick。因此,如果我理解正确,我不需要做任何特殊的事情来提前预测如果我预测的公式有固定数量的滞后。对吗?
data.$lagx <- dplyr::lag(data.$x1, 1) #create lag variable
lm_obj1 <- lm(data=data.[2:15,], y1 ~ x1 + lagx) #create model object
data.$pred1 <- predict(lm_obj1, newdata=data.[16,20]) #predict new data; needs to have same column headings