Estoy tratando de entender cómo utilizar el aprendizaje automático para predecir series temporales financieras 1 o más pasos en el futuro.
Tengo una serie de tiempo financiera con algunos datos descriptivos y me gustaría formar un modelo y luego utilizar el modelo para predecir n pasos por delante.
Lo que he estado haciendo hasta ahora es:
getSymbols("GOOG")
GOOG$sma <- SMA(Cl(GOOG))
GOOG$range <- GOOG$GOOG.High-GOOG$GOOG.Low
tail(GOOG)
GOOG.Open GOOG.High GOOG.Low GOOG.Close GOOG.Volume GOOG.Adjusted sma range
2013-05-07 863.01 863.87 850.67 857.23 1959000 857.23 828.214 13.20
2013-05-08 857.00 873.88 852.91 873.63 2468300 873.63 834.232 20.97
2013-05-09 870.84 879.66 868.23 871.48 2200600 871.48 840.470 11.43
2013-05-10 875.31 880.54 872.16 880.23 1897700 880.23 848.351 8.38
2013-05-13 878.89 882.47 873.38 877.53 1448500 877.53 854.198 9.09
2013-05-14 877.50 888.69 877.14 887.10 1579300 887.10 860.451 11.55
Luego he ajustado un modelo randomForest a estos datos.
fit <- randomForest(GOOG$GOOG.Close ~ GOOG$sma + GOOG$range, GOOG)
Lo que parece encajar sorprendentemente bien:
> fit
Call:
randomForest(formula = GOOG$GOOG.Close ~ GOOG$sma + GOOG$range, data = GOOG)
Type of random forest: regression
Number of trees: 500
No. of variables tried at each split: 1
Mean of squared residuals: 353.9844
% Var explained: 97.28
Y trató de usarla para predecir:
predict(fit, GOOG, n.ahead=2)
Pero esta predicción no funcionó.
Si intento predecir el Cierre, ¿debo retrasar las otras variables tantos pasos como quiera la predicción, antes de ajustar el modelo?
Probablemente también debería tener en cuenta muchas otras cosas, pero estos son realmente mis primeros pasos probando el aprendizaje automático.