程式

如何為樣本外回測建構循環函式?

  • September 24, 2019

R 中的許多統計庫提供了擬合模型的可能性,然後使用優化結果來預測未來一些時期的值。但是,許多人無法對樣本外的結果進行回測。

因此,我想建構一個允許我(向前走的方法)的 R 函式:

  1. 使用移動視窗定義訓練集(每個循環時間,刪除最舊的觀察並添加最新的)
  2. 執行優化器從而校準模型
  3. 使用校准後的模型生成 n 步提前預測
  4. 將新預測儲存在樣本外預測值的向量中(連同預測日期)
  5. 循環1-4我嘗試了以下(x是樣本外集的長度,n是訓練集的固定長度):
for (j in range (0:x)){
   append <- vector()
   forecast <- vector()
   set <- train [j+1:n+j,]
   fit <- fit(data = set, model) 
   forecast <- predict(fit, ahead = 1) 
   append <- cbind(lubridate::as_date(ts_date[n+j+1]), forecast)
   forc <- rbind(forc, append)
}

但是,矩陣 forc 僅包含循環的第一個和最後一個結果。

任何人都可以在這裡發現錯誤嗎?

您需要刪除對 的呼叫range。在 Python 中它是必要的,但在這裡它只返迴向量的最小和最大元素。

引用自:https://quant.stackexchange.com/questions/48887