Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 295

 

La cuestión de la correlación de las variables se ha discutido muchas veces.

Por supuesto, la correlación es lo más dudoso, muy rápidamente se empieza a ver la correlación con los anillos de Saturno, los posos del café....

De alguna manera, esto se ha olvidado:

Laprueba decausalidad de Granger es un procedimiento para comprobar la causalidad ("causalidad de Granger") entreseries temporales. La idea de la prueba es que los valores (cambios) de la serie temporal{\displaystyle x_{t}}, que causan cambios en la serie temporal{\displaystyle y_{t}}, deben preceder a los cambios en esta serie temporal y además deben contribuir significativamente a sus valores predichos. Si cada variable contribuye significativamente a la predicción de la otra, puede haber alguna otra variable que afecte a ambas.

La prueba deGrangercomprueba sistemáticamente dos hipótesis nulas: "x no es la causa de y según Granger" e "y no es la causa de x según Granger". Para probar estas hipótesis, se construyen dos regresiones: en cada una de ellas, la variable dependiente es una de las variables sometidas a prueba de causalidad, y los regresores son los rezagos de ambas variables (de hecho, se tratade una autorregresión vectorial).

Y aquí está el código para este caso de aquí

# READ QUARTERLY DATA FROM CSV
library(zoo)
ts1 <- read.zoo('Documents/data/macros.csv', header = T, sep = ",", 
FUN = as.yearqtr)
 
# CONVERT THE DATA TO STATIONARY TIME SERIES
ts1$hpi_rate <- log(ts1$hpi / lag(ts1$hpi))
ts1$unemp_rate <- log(ts1$unemp / lag(ts1$unemp))
ts2 <- ts1[1:nrow(ts1) - 1, c(3, 4)]
 
# METHOD 1: LMTEST PACKAGE
library(lmtest)
grangertest(unemp_rate ~ hpi_rate, order = 1, data = ts2)
# Granger causality test
#
# Model 1: unemp_rate ~ Lags(unemp_rate, 1:1) + Lags(hpi_rate, 1:1)
# Model 2: unemp_rate ~ Lags(unemp_rate, 1:1)
#   Res.Df Df      F  Pr(>F)
# 1     55
# 2     56 -1 4.5419 0.03756 *
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 
# METHOD 2: VARS PACKAGE
library(vars)
var <- VAR(ts2, p = 1, type = "const")
causality(var, cause = "hpi_rate")$Granger
#         Granger causality H0: hpi_rate do not Granger-cause unemp_rate
#
# data:  VAR object var
# F-Test = 4.5419, df1 = 1, df2 = 110, p-value = 0.0353
 
# AUTOMATICALLY SEARCH FOR THE MOST SIGNIFICANT RESULT
for (i in 1:4)
  {
  cat("LAG =", i)
  print(causality(VAR(ts2, p = i, type = "const"), cause = "hpi_rate")$Granger)
Английский язык — Википедия
Английский язык — Википедия
  • ru.wikipedia.org
Самоназвание: Регулирующая организация: Общее число говорящих: Статус: Классификация Категория: Письменность: Языковые коды ГОСТ 7.75–97: ISO 639-1: ISO 639-2: ISO 639-3: Распространение английского языка[3]: Английский язык возник в раннем Средневековье как язык части германских племён, вторгшихся в Британию. Он стал родным для...
 
SanSanych Fomenko:

Por supuesto, la correlación es la más dudosa, muy rápidamente empieza a surgir la correlación con los anillos de Saturno, los posos del café...

De alguna manera, esto se ha olvidado:

Nadie olvidó nada....

Es entonces cuando google correlate le preguntará, ¿cómo quiere medir la correlación? El servicio tiene 6 años, y si quisieran hacerlo, ya lo habrían hecho...

Y otra cosa...

Google tiene miles de millones de BPs en su base de datos, siempre habrá un centenar de BPs que estén cerca por casualidad, simplemente porque la base de datos es enorme y no importa cómo midan la proximidad, simple correlación o algo complicado y complicado.

La cuestión es cómo separar lo aleatorio de lo no aleatorio.

 
mytarmailS:

La cuestión es cómo cribar lo aleatorio de lo no aleatorio

Podríamos

1) dividir la serie eura en dos partes "1" y "2"

2) introduzca la fila "1" en Google y encontrará todas las filas estrechamente relacionadas.

3) memorizar los nombres de todas las filas cercanas.

4) lanza la fila "2" en google way y encontrará todas las filas cercanas a ella

5) memorizar los nombres de todas las filas cercanas

6) comparar los nombres de las filas de los puntos 3) y 5) y buscar una fila que esté presente tanto en 3) como en 5)

Así, encontramos series que no se correlacionan accidentalmente con los euros: es una especie de validación cruzada en su forma más primitiva.

Pero cómo obtener estos nombres no lo sé, probablemente hay que analizar la página

 
mytarmailS:

Nadie olvidó nada....

Cuando google correlate te preguntará ¿qué método quieres para medir la conexión? El servicio tiene 6 años, y si quisieran hacerlo, ya lo habrían hecho.

Y otra cosa...

Google tiene miles de millones de BPs en su base de datos, siempre habrá un centenar de BPs que estén cerca por casualidad, simplemente porque la base de datos es enorme y no importa cómo midan la proximidad, simple correlación o algo complicado y complicado.

La cuestión es cómo separar lo aleatorio de lo no aleatorio


Así que tamizar por prueba de toda la basura que google ha recogido - eso es lo que quería decir.
 
SanSanych Fomenko:
Así que tamizar a través de la prueba de toda la basura que Google ha recogido - eso es lo que quiero decir.

de la que no estoy seguro de cómo hacerlo).

Puedes googlear cien series que correlacionen perfectamente con el euro, por muy sofisticado que sea el test, todas muestran una excelente correlación por lo que es inútil en esta situación

 
mytarmailS:

Por muy inteligente que sea la prueba que se aplique, todas muestran una conexión perfecta.

Tengo mis dudas al respecto. Una alta correlación de tendencias sólo significa que generalmente suben y bajan aproximadamente al mismo ritmo. En primer lugar sería mejor buscar la correlación no de tendencias sino de subidas, por ejemplo se pueden guardar tendencias similares en csv, entonces google mostrará los rezagos y recalculará la correlación, será mucho más objetivo.

Y la correlación no garantiza en absoluto que una variable pueda predecir la otra. En general, la selección de predictores para la predicción basada en el principio de alta correlación es desafortunada. No he probado lo que sugiere SanSanych pero parece más fiable.

 
mytarmailS:

Es posible

1) dividir la fila eura en dos partes "1" y "2"

2) introduzca la fila "1" en Google y encontrará todas las filas estrechamente relacionadas.

3) memorizar los nombres de todas las filas cercanas

4) lanza la fila "2" en google way y encontrará todas las filas cercanas a ella

5) memorizar los nombres de todas las filas cercanas

6) comparar los nombres de las filas de los puntos 3) y 5) y buscar una serie de este tipo que esté presente tanto en 3) como en 5)

Así, encontramos series que no se correlacionan accidentalmente con el euro; se trata de una especie de valoración cruzada en su forma más primitiva.

Pero no sé cómo obtener estos nombres, probablemente deberíamos analizar la página


Se llama prueba de PSE.

En realidad, comprueba la heterogeneidad de la muestra en el contexto de un modelo de regresión.

 
Dr.Trader:

Lo dudo. La alta correlación de las tendencias sólo significa que, en general, aumentan y disminuyen de la misma manera. Para empezar sería una buena idea buscar la correlación no de tendencias sino de incrementos, por ejemplo puedes guardar tendencias similares en csv, luego buscar rezagos tu mismo y recalcular la correlación, será mucho más objetivo.

Sí, estoy de acuerdo, pero google no nos da toda su base de datos, sino sólo lo que se correlaciona "por tendencia", tomar lo que se correlaciona por tendencia y usar eso para hacer incrementos y medir corr. tampoco es objetivo, probablemente... :) Tenemos que mirar toda la base de datos

Dimitri:


Se llama prueba de PSE.

En realidad, comprueba la heterogeneidad de la muestra en el contexto de un modelo de regresión.

Bueno... Este CHOU se puede aplicar, pero necesitamos sacar las filas de Google, o al menos sus nombres
 

He leído este folleto http://www.mirkin.ru/_docs/dissert065.pdfy quiero utilizar NeuroShell Day Trader Pro

 
Getting Started With TensorFlow  |  TensorFlow
Getting Started With TensorFlow  |  TensorFlow
  • www.tensorflow.org
This guide gets you started programming in TensorFlow. Before using this guide, install TensorFlow. To get the most out of this guide, you should know the following: How to program in Python. At least a little bit about arrays. Ideally, something about machine learning. However, if you know little or nothing about machine learning, then this...