Por favor, explíqueme mi escollo. ¿Resulta que HSIC mostrará la dependencia para cualquier función clásica Y=F(X1, X2, ...)?
Probablemente no para ninguno de ellos, porque la dependencia puede ser muy débil (debido a un fuerte ruido, por ejemplo) y entonces puede que no la detecte. Pero en general, si hay algo significativo en los datos, la prueba lo detecta.
Tomé datos de naturaleza diferente.
// Y son las barras del símbolo, X1 son las barras anteriores a Y, X2 son las barras anteriores a X1. bool Fill( double &X1[], double &X2[], double &Y[], const int Size = 1000, const datetime Time = 0, const string Symb = NULL ) { int Pos = iBarShift(Symb, PERIOD_CURRENT, Time ? Time : TimeCurrent()); return((CopyClose(Symb, PERIOD_CURRENT, Pos, Size, Y) == Size) && (CopyClose(Symb, PERIOD_CURRENT, Pos += Size, Size, X1) == Size) && (CopyClose(Symb, PERIOD_CURRENT, Pos += Size, Size, X2) == Size)); }
En el script de reordenación propuesto hice esta sustitución.
if (SData == Nonlinear_dependence){ /* double x1 []; MathRandomUniform(-5,5,datos_,x1); double x2 []; MathRandomUniform(-5,5,datos_,x2); double NormD[]; MathRandomNormal(0,0.1,datos_,NormD); double y[]; ArrayResize(y,datos_); for (int i=0;i<datos_;i++){ y[i] = pow(x1[i],2)*cos(M_PI*x2[i]) + NormD[i]; // Y = X1^2 * cos(pi*X2) + Ruido } */ double x1[], x2[], y[]; Fill(x1, x2, y, data_);
Los resultados son para EURUSD.
Test6 (EURUSD,M1) Коэффициент корреляции (X1, Y) = 0.3757 Test6 (EURUSD,M1) Коэффициент корреляции (X2, Y) = -0.4280 Test6 (EURUSD,M1) ----------------Nonlinear_dependence------------- Test6 (EURUSD,M1) Время выполнения: 12.688 seconds Test6 (EURUSD,M1) ----------------------------------- Test6 (EURUSD,M1) Number observations 1000 Test6 (EURUSD,M1) HSIC: 0.01050641 Test6 (EURUSD,M1) p-value: 0.0000 Test6 (EURUSD,M1) Critical value: 0.0010 Test6 (EURUSD,M1) Отвергаем H0: Наблюдения зависимы
Después creé un símbolo personalizado sobre la base de incrementos aleatorios y lo ejecuté con él.
Test6 (RANDOM_EURUSD,M1) Коэффициент корреляции (X1, Y) = -0.6103 Test6 (RANDOM_EURUSD,M1) Коэффициент корреляции (X2, Y) = -0.4954 Test6 (RANDOM_EURUSD,M1) ----------------Nonlinear_dependence------------- Test6 (RANDOM_EURUSD,M1) Время выполнения: 12.656 seconds Test6 (RANDOM_EURUSD,M1) ----------------------------------- Test6 (RANDOM_EURUSD,M1) Number observations 1000 Test6 (RANDOM_EURUSD,M1) HSIC: 0.00900188 Test6 (RANDOM_EURUSD,M1) p-value: 0.0000 Test6 (RANDOM_EURUSD,M1) Critical value: 0.0009 Test6 (RANDOM_EURUSD,M1) Отвергаем H0: Наблюдения зависимы
¿Por qué hay dependencia en el segundo caso? A grandes rasgos, se supone que hay dependencia entre tres vectores, que son sumas acumulativas de una variable aleatoria.
...
¿Por qué hay dependencia en el segundo caso? A grandes rasgos, se supone que existe una dependencia entre tres vectores que son sumas acumuladas de una variable aleatoria.
Definitivamente (la dependencia) está ahí, porque se utiliza un PRNG bastante simple (supongo que utilizas uno estándar, puedes comprobarlo con el vórtice de Mersenne, por ejemplo).
Otra cuestión es cómo de fuerte es la dependencia, no lo tengo claro, pido al autor que explique cómo interpretar correctamente las métricas obtenidas.
Tomó datos de otra naturaleza.
En el script de reordenamiento propuesto hice esta sustitución.
Resultados en EURUSD.
A continuación, creé un símbolo personalizado basado en incrementos aleatorios y lo ejecuté en él.
¿Por qué hay dependencia en el segundo caso? A grandes rasgos, se supone que existe una dependencia entre tres vectores, que son sumas acumulativas de una variable aleatoria.
Tomó datos de otra naturaleza.
En el script de reordenamiento propuesto hice esta sustitución.
Resultados en EURUSD.
A continuación, creé un símbolo personalizado basado en incrementos aleatorios y lo ejecuté en él.
¿Por qué hay dependencia en el segundo caso? A grandes rasgos, se supone que existe una dependencia entre tres vectores, que son sumas acumulativas de una variable aleatoria.
Definitivamente (la dependencia) está ahí, ya que utiliza un PRNG bastante simple (supongo que utiliza uno estándar, puede comprobarlo en Mersenne's Vortex, por ejemplo).
Otra cuestión es cómo de fuerte es la dependencia, tengo alguna confusión con ello, pido al autor que explique cómo interpretar correctamente las métricas obtenidas.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso

Artículo publicado Criterio de independencia de Hilbert-Schmidt (HSIC):
La tarea principal de un tráder al trabajar con cotizaciones de instrumentos financieros es crear un sistema comercial (asesor) con una esperanza matemática positiva. Al diseñar dichos sistemas, con frecuencia se supone que existen dependencias ocultas en los datos usados para el entrenamiento y el comercio posterior. Sin embargo, normalmente no se analiza la cuestión de la comprobación estadística de esta suposición. Se considera que es posible obtener una respuesta indirecta probando los resultados con datos fuera de la muestra.
Mientras tanto, una respuesta estadísticamente sólida a la pregunta sobre si existe una relación entre las características y la variable objetivo resulta de vital importancia. Una respuesta positiva da confianza en la utilidad de los modelos predictivos, mientras que una respuesta negativa hace que uno se pregunte: ¿qué es exactamente lo que trata de predecir el algoritmo?
En estadística matemática, la cuestión sobre la presencia o ausencia de una relación probabilística entre variables aleatorias se responde mediante criterios de independencia. Uno de estos criterios es la prueba estadística HSIC, un poderoso método no paramétrico desarrollado en 2005 por el estadístico Arthur Gretton.
A diferencia del coeficiente de correlación, que solo identifica relaciones lineales, el HSIC es capaz de detectar relaciones tanto lineales como no lineales. Debido a esto, se usa ampliamente en el aprendizaje automático para la selección de características, el análisis de causa y efecto y otras tareas. En este artículo, analizaremos el principio de funcionamiento del HSIC y lo implementaremos en el entorno MQL5.
Autor: Evgeniy Chernish