Predicción de mercado basada en indicadores macroeconómicos - página 51

 
Vladimir:
Estoy de acuerdo, incluso yo mismo he escrito algo así en algún lugar de aquí. Escoger un predictor en toda la historia y luego usar una prueba de futuro de la misma historia es un autoengaño que hacen todos, desde los comerciantes hasta los científicos. Muchos artículos escritos sobre la predicción de la economía comienzan con una lista de predictores seleccionados y luego informan de los "grandes" resultados. Los operadores eligen estrategias basadas, por ejemplo, en el rebote o la ruptura porque "funcionó en el pasado" y esperan que funcione en el futuro y muestran pruebas a futuro del pasado sin darse cuenta de que su elección de la estrategia en sí se basó en su estudio de TODA la historia, incluida la historia para las pruebas a futuro. Para mí, la prueba de fuego de mi modelo de PIB y de mercado será el futuro, por lo que abrí este hilo: publicar predicciones, ver cómo se hicieron realidad en tiempo real. El trabajo no está terminado. Hay muchas ideas para la transformación no lineal de datos. Por ejemplo, algunos predictores como el HOUST afectan al crecimiento del PIB a través de alguna función de umbral.

No linealidad, sí.

¿Pero cómo se encuentra una función no lineal? ¿Probando diferentes variantes? ¿O simplemente utilizar redes neuronales?

 
Дмитрий:

No linealidad, sí.

¿Pero cómo se encuentra una función no lineal? ¿Probando diferentes variantes? ¿O simplemente utilizar redes neuronales?

También podrías probar con Random Forest, es más fácil de usar y también simula las no linealidades.

Ejemplo: https://www.quora.com/How-does-random-forest-work-for-regression-1

El aspecto de la función resultante también puede evaluarse con las herramientas incorporadas.

How does random forest work for regression? - Quora
  • www.quora.com
I think the first step would be to understand how decision trees work in a regression problem. You might be aware of CART - Classification and Regression Trees. When dealing with regression problem you try to predict real valued numbers at the leaf nodes which would look something like this for singular scale feature: Now the question comes how...
 
Alexey Burnakov:

También puede probar con Random Forest, es más fácil de usar y también simula las no linealidades.

Ejemplo: https://www.quora.com/How-does-random-forest-work-for-regression-1

El aspecto de la función resultante también puede evaluarse con las herramientas incorporadas.

Gracias, Random Forest me resulta familiar
 
Дмитрий:

No linealidad, sí.

¿Pero cómo se encuentra una función no lineal? ¿Probando diferentes variantes? ¿O simplemente utilizar redes neuronales?

Así que pensemos juntos. Quería elegir una función de paso simple:

out = -1 si entrada < umbral, +1 si entrada > umbral

Donde umbral es nuestro umbral desconocido, diferente para diferentes predictores. Por ejemplo, para los incrementos del S&P500 y del PIB el umbral = 0, es decir, lo importante son las caídas de estos indicadores en sí, no el umbral. Para otros indicadores económicos no es tan sencillo. Hay que ajustar el umbral. La modelización podría ser así:

1. determinar el tipo de dato: creciente (S&P500, PIB,...) o variable (tasa de paro, tipos federales,...) comparando los valores al principio y al final de la historia.

2. Si los datos son crecientes, se sustituyen por incrementos de x[i] - x[i-1]. Si el rango, entonces no cambiar.

3. Elija una salida simulada como los incrementos del PIB (crecimiento) y aplíquele una función escalonada con umbral cero, es decir, el crecimiento del PIB se sustituye por una serie binaria +/-1.

4. Empezamos a enumerar todos los predictores y sus versiones retrasadas para la capacidad de predicción de esta manera. Tomamos un predictor o sus incrementos en función del punto 2, medimos su rango en todo el historial, dividimos este rango por, por ejemplo, 10 y obtenemos 9 umbrales. Utilizando cada uno de los 9 umbrales, sustituya el predictor por una serie binaria de +/-1, y cuente el número de +1 y -1 de nuestro predictor que coincidieron con +1 y -1 de nuestra serie simulada (PIB), obteniendo M coincidencias para N barras completas en el historial. Calculamos una función de frecuencia de aciertos M/N para cada uno de los 9 progs y dejamos el umbral que da la mayor frecuencia de aciertos. Y repite esto para cada predictor. Este debería ser un cálculo rápido.

Si alguien quiere ayudar, tome los datos que publiqué aquí hace unas páginas y pruébelo. Quiero terminar el modelo lineal por ahora y luego pasar al no lineal.

PD: Dado que hay muchos más valores positivos (+1) que negativos (-1) en las series de incrementos del S&P500 y del PIB, se puede idear una modificación del método descrito anteriormente para ponderar más la coincidencia de valores negativos, destacando así los descensos en lugar de los incrementos de estos indicadores. Por ejemplo, el indicador de bondad de ajuste podría tener este aspecto:

J = M(+1)/N + W*M(-1)/N

donde W es una ponderación >1 que refleja que hay menos valores negativos en el crecimiento del PIB que valores positivos.

Un gran problema surgirá si queremos encontrar un modelo con 2 o más predictores. Tenemos que pensar cómo conectar estos predictores: con funciones AND, OR o XOR. Cuando se conecte, habrá que volver a optimizar los umbrales.

 
Vladimir:

Un gran problema surgirá si queremos encontrar un modelo con 2 o más predictores. Tenemos que pensar en cómo conectar estos predictores: con funciones AND, OR o XOR. Cuando se conecte, habrá que optimizar de nuevo los umbrales.

Si se introducen datos en la parrilla, ésta encontrará los umbrales "automáticamente" y de una sola vez para todos los predictores que se hayan incluido en el vector de entrada.
 
Vladimir:

Si alguien quiere ayudar, que coja los datos que colgué aquí hace unas páginas y los pruebe.

¿Se pueden convertir los mismos datos a csv?
 
Stanislav Korotky:
¿Se pueden convertir los mismos datos a csv?
Adjunto. La primera columna muestra las fechas en formato Matlab, desde el primer trimestre de 1959 hasta el cuarto trimestre de 2015. El resto de las columnas son cifras económicas y financieras no convertidas. El PIB está en la columna 1168.
Archivos adjuntos:
Data.zip  1037 kb
 

Terminadas las predicciones lineales del PIB. Aquí hay dos trimestres por delante:


Hay 4 predictores en el modelo, aunque 3 son suficientes. Después de 3-4 predictores, el resto parece ruido. Predecir el S&P500 con el mismo método que el PIB funciona muy mal. Ni siquiera lo muestro aquí. También probé rápidamente transformaciones no lineales con una función escalonada como la que describí anteriormente. Funciona peor que la regresión lineal.

A la espera de la publicación del nuevo valor del PIB a finales de abril. Descansando por ahora.

 
Vladimir:
Adjunto. La primera columna muestra las fechas en formato Matlab, desde el primer trimestre de 1959 hasta el cuarto trimestre de 2015. El resto de las columnas son cifras económicas y financieras no convertidas. El PIB está en la columna 1168.
Gracias. Sin embargo, sería deseable tener los nombres de todas las columnas. Además, según tengo entendido, las fechas no se copiaron del todo bien (con pérdida de precisión numérica), por lo que las entradas van en grupos de 11 con la misma fecha.
 
Vladimir:

Terminadas las predicciones lineales del PIB. Aquí hay dos trimestres por delante:

La imagen es bonita, pero ¿podríamos, en cambio, calcular en cada paso el producto de la variación prevista por la variación real, sumar todo el periodo y dividir por el mismo producto, pero en el que las variaciones previstas y las reales se tomen en módulo?
Razón de la queja: