R tail()在样本外预测中的使用

R tail()在样本外预测中的使用,r,time-series,prediction,forecasting,tail,R,Time Series,Prediction,Forecasting,Tail,下面是我在这里找到的一个样本外滚动窗口估计:() 我的问题是:我知道tail()函数返回数据集的最后n行。但我不明白它在第13行的随机游走中,或者在计算第17行和第18行的误差时的用途。任何澄清这一点的帮助都将不胜感激 # = Number of windows and window size w_size = 300 n_windows = nrow(X) - 300 # = Rolling Window Loop = # forecasts = foreach(i=1:n_windows,

下面是我在这里找到的一个样本外滚动窗口估计:()

我的问题是:我知道tail()函数返回数据集的最后n行。但我不明白它在第13行的随机游走中,或者在计算第17行和第18行的误差时的用途。任何澄清这一点的帮助都将不胜感激

# = Number of windows and window size
w_size = 300
n_windows = nrow(X) - 300
# = Rolling Window Loop = #
forecasts = foreach(i=1:n_windows, .combine = rbind) %do%{
  # = Select data for the window (in and out-of-sample) = #
  X_in = X[i:(w_size + i - 1), ] # = change to X[1:(w_size + i - 1), ] forxpanding window
  X_out = X[w_size + i, ]

 # = Regression Model = #
 m1 = lm(infl0 ~ . - prodl0, data = X_in)
 f1 = predict(m1, X_out)

  # = Random Walk = #
  f2 = tail(X_in$infl0, 1)

  return(c(f1, f2))
}

# = Calculate and plot errors = #
e1 = tail(X[ ,"infl0"], nrow(forecasts)) - forecasts[ ,1]
e2 = tail(X[ ,"infl0"], nrow(forecasts)) - forecasts[ ,2]

这里函数
tail
应用于向量,因为您只选择
“inf10”
列。在本例中,tail返回所选列的最后一个元素

df <- data.frame(A = c(1,2), B = c(3,4))
df[,"A"] # will return c(1,2)
tail(df[,"A"], 1) # will return 2
tail(df$B, 1) # will return 4

df好的,那么在infl0的最后一个元素,随机游动将保持不变?在错误中,第一部分“tail(X[,“infl0”],nrow(forecast))”意味着我们获取infl0变量的预测中的所有行数?。。我使用这些误差得到RMSE=sqrt(平均值(e1^2))和R^2=1-MSE(回归)/MSE(RW)=1-mean(e1^2)/mean(e2^2)。。。但我不确定我的滚动窗口预测是否正确,因为我不完全理解它。你认为它正确吗?最后一个
tail
将得到
n
最后一行
X
n
预测的行数。我真的不明白你的滚动窗口,我会检查你提供的链接(以前从未使用过预测包)啊,这是有意义的,因为错误应该显示预测值和实际值之间的差异。。是的,如果你能做到这一点,我将永远感激你。你检查过了吗?