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

问题描述

下面是我在此处找到的样本外滚动窗口估计:(https://www.r-bloggers.com/2017/11/formal-ways-to-compare-forecasting-models-rolling-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[,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