Rankia España Rankia Argentina Rankia Brasil Rankia Chile Rankia Colombia Rankia Czechia Rankia Deutschland Rankia France Rankia Indonesia Rankia Italia Rankia Magyarország Rankia México Rankia Netherlands Rankia Perú Rankia Polska Rankia Portugal Rankia Romania Rankia Türkiye Rankia United Kingdom Rankia USA
Acceder

Timming en el Panadero (AKA SP500). Cotinuacion:Obsesionados con evitar el overfitting

Seguimos con la RN (Red Neuronal) para predecir tortazos del Panadero(SP500). Como ya sabemos la RN da un nivel de aciertos del 80% aprox, siendo más fiable los positivos que los negativos. Para realizar una buena red neuronal se necesitan muchos datos, cuantos más mejor, y sobre todo evitar el over-fitting. El modelo tiene que ser:

-Robusto. Nuestro modelo debe aprender, no memorizar.

-Resultado generalizable de la variable a modelizar. Capacidad para resolver problemas entiendiendo la logica subyacente de la materia(en este caso el modelado del SP500). Debemos evitar a toda costa (incluso reduciendo el nivel de aciertos) que nuestro modelo se acerque al del "chuletas" (Ver video). No solo de encontrar los tortazos del pasado sino que también nos acierte los futuros tortazos. Que el modelo sea capaz de generalizar es la característica más deseable de un modelo (en este caso red neuronal RN). Nos interesa que nuestro modelo sea del tipo óptimo (appropiate) o al menos en una zona intermedia entre el under-fitting y el overfitting

(Link):

-"el Burro": El modelo 1 (Under-fitting) es demasiado simple y da muchos errores, no entiende la lógica subyacente del problema, para eso mejor lanzamos una moneda al aire, nos ahorramos trabajo y nos da resultados igual de malos.

-"el Chuletas": El modelo 3 (Over-fitting): nos da resultados demasiado buenos, es como el típico que copia al vecino en un examen pero no entiende nada de la materia en cuestión. No es conocimiento generalizable y los errores para nuevos datos de partida son mayores de lo esperado. Está modelando incluso el "ruido" de nuestros datos:

-"el Aprendiz": Por supuesto, el modelo 2 (Appropiate fitting) es el recomendable, se ajusta bastante bien a los datos, no es muy complicado, es generalizable y los errores para nuevos datos de partida son similares a lo esperado.

 

Mi experiencia:

Cuando uno entra dentro del mundillo de la IA, machine learning o como se le quiera llamar, empieza a crear modelos muy complejos y les deja "pensar" mucho tiempo:

"Oh! que listo soy! .... mi modelo tiene un error del 0.00001%... soy el rey del mambo!! " 

 

Pero cuando ves a los gurús del IA, siempre les ves muy escépticos, en plan:

"Mira a ver si puedes simplificar tu modelo... menos capas... menos neuronas..."

"Busca nuevas variables (o nuevas observaciones) que tengan algo de correlación con el resultado a modelizar pero poca correlación con las demás"

"No dejes que tu modelo piense demasiado para evitar ovefitting"

"Haz pruebas repartiendo el train/test al 50% de varias formas: estratificando, sin estratificar, pasado vs presente..., los errores están en los detalles"

 

En definitiva: Están obsesionados con evitar el overfitting.  Bueno, tú me dirás: Vale... el overfitting es muy malo... pero como lo evitamos?...ya te he dado algunas pistas antes, (video) ... Repartiendo el train/test al 50% de varias formas: estratificando, sin estratificar, pasado vs presente:

De esta forma el modelo se entrena con unos datos (train) y se comprueba con otros(test). En cuanto al VIX solo tengo datos de 7614 observaciones, como ya hemos dicho cuántas más observaciones mejor. Así que aunque mejora el nivel de aciertos, en algunos modelos no lo incluyo.

Bueno, parece que hemos limitado en lo posible el over-fitting manteniendo unos resultados aceptables (>78% aciertos)

 

Detalles tecnicos del Modelo:

Centrándonos en la red neuronal que me he currado, queremos hallar correlaciones con las caídas del SP500, que son variables a modelizar y/o predecir. Tenemos las variables objetivo:

-Next 200SLoss = nos da la caída en % desde el ultimo cierre, hasta el mínimo de las siguientes 200 sesiones.

-MaxLossNext200_ = nos da 1 si la caída (variable anterior) es mayor del 12% y 0 en los demás casos.

 

Por otro lado tenemos variables de partida: datos macro económicos, Value, Momentum, técnicos y de sentimiento de mercado. En la RN las hay de varios tipos:

-Macroeconómicos: FRED, Cuanto % invierten en USA en renta variable(Link).

-Sentimiento de mercado: VIX(medida indirecta del miedo del mercado) y su logaritmo.

-Value:-PER y sus variaciones. Shiller PE, Aumento del PER...

           -Price to sales(PS) y sus variaciones.

-Momentum y Técnicos: ruptura 200 sesiones, medias móviles, aceleración, momentum 200 sesiones...

La verdad es que la mayoría de estas variables tienen muy poca correlación con las caídas. Pero al tener poca correlación entre sí, nos sirve cada una de ellas como información adicional para mejorar el modelo. Haciendo que el resultado de aciertos sea del entorno del 80%.

Podemos ver las correlaciones de las variables de partida con las variables a modelizar (resultados):

Nos interesan las variables con más correlación(en valores absolutos) con los resultados, ya sea correlación negativa o positiva.

 

Detalles tecnicos de la Red Neuronal:

Vemos como las siguientes variables tienen algo de correlación con el resultado:

-PER 400, PER 200...: Indicadores de tipo Value (Múltiplos, carestía del mercado). Son la variación del PER de las ultimas 400, 200 sesiones etc...  Si  la bolsa se encarece, la probabilidad de tortazo.... baja !!?? . Curioso: según esto, si los múltiplos aumentan cae la probabilidad de tortazo. La correlación es media/baja pero la mayor de todos. Curiosamente el PER a secas daba pobres resultados. Todo esto me ha sorprendido mucho pero es la realidad:

-PS 400, PS 200...: Igual que el anterior pero con precio a ventas (price to sales P/S). Pero no ha dado ninguno de ellos niguna correlacion apreciable.

-FRED este es un indicador sintetico de la FRED(link): Nos dice cuanto % han invertido los americanos en renta variable. Desgraciadamente para ellos cuanto mayor es este % mayor tambien es la probabilidad de que el panadero les de un tortazo:

-Dif 50S, 200S: esto es cuánto ha (+) subido o bajado (-) el SP  respecto a la media de 200 sesiones. Es un momentum, en general cuanto más baja más probabilidad de tortazo. La correlación del 50S es muy baja y la del 200S algo mayor:

-Acelera: Nos dice si el precio se acelera. La correlación es prácticamente nula.

-Ruptura 100S, 200S: Nos dice si el panadero, ha roto a la baja dichas resistencias (100, 200 sesiones). Es un indicador técnico, en general cuando se producen rupturas aumenta la probabilidad de tortazo. La correlación del 100S es muy baja y la del 200S algo mayor. Correlación Ruptura 200S vs Tortazo:

-VIX: Es el VIX de cierre de cada día. Es un indicador indirecto de miedo del mercado. En general cuanto más alto más probabilidad de tortazo. La correlación es muy baja pero algo mayor que otros:

-LogVIX: Añadido gracias al comentario de @Nega16. Es el logaritmo en base 10 del VIX de cierre de cada dia, nos aporta mas info que el VIX a secas. Parecido a lo anterior:

 

Como bien dice @Nega16 hay una correlación positiva, pero solo del 0.4, lo cual no esta nada mal viendo las correlaciones de las demás variables de partida.

Se os ocurren más variables a probar?

 

*************************************************************************************************************************************************************

*************************************************************************************************************************************************************

Añadido:

Estoy probando el predictor de Buffet: Market cap to GDP, o al menos algo parecido. Con una correlcacion baja= 0.2. Pero quizas aporta algo de info:

2
¿Te ha gustado mi artículo?
Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico
  • SP500
  • Redes neuronales
  • Inteligencia artificial
  1. en respuesta a Nega16
    -
    #2
    01/04/20 22:37

    No lo se,
    Lo que si parece es que da mejor modelado con LogVIX que solo VIX.
    Saludos,

  2. #1
    Nega16
    01/04/20 22:15

    Lo asimilas su cmportamiento a una exponencial ( oculta en ocasiones ) y cuantificas el logaritmo no ?
    Yo lo aventure para situaciones limites , los flash crass, para no arruinarte y si forrate en ellos, y falta que la entrada la mayoria de las veces seria nocturna, sino pierde su potencia, aunque se puede adoptar a lo que haces ( o lo que haces a la potencia je,je,)

    Puede que tengas un desfase temporal que lo anule segun cuando entres

    Pero bueno me alegro por los resultados

    Un saludo