程式
如何為樣本外回測建構循環函式?
R 中的許多統計庫提供了擬合模型的可能性,然後使用優化結果來預測未來一些時期的值。但是,許多人無法對樣本外的結果進行回測。
因此,我想建構一個允許我(向前走的方法)的 R 函式:
- 使用移動視窗定義訓練集(每個循環時間,刪除最舊的觀察並添加最新的)
- 執行優化器從而校準模型
- 使用校准後的模型生成 n 步提前預測
- 將新預測儲存在樣本外預測值的向量中(連同預測日期)
- 循環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 中它是必要的,但在這裡它只返迴向量的最小和最大元素。