Estoy tratando de comprender cómo utilizar el aprendizaje automático para predecir series temporales financieras 1 o más pasos hacia el futuro.
Tengo una serie cronológica financiera con algunos datos descriptivos y me gustaría formar un modelo y luego usar 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 usarlo para predecir:
predict(fit, GOOG, n.ahead=2)
Pero esta predicción de c no funcionó.
Intento predecir el cierre, ¿debo retrasar las otras variables en tantos pasos como quiera la predicción, antes de ajustar el modelo?
Probablemente también tenga en cuenta muchas otras cosas, pero estos son realmente mis primeros pasos para probar el aprendizaje automático.