L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 295

 

La question de la corrélation des variables a été discutée à de nombreuses reprises.

Bien sûr, la corrélation est la plus douteuse, très vite la corrélation avec les anneaux de Saturne, le marc de café... commence à être vue.

D'une certaine manière, cela a été oublié :

Letest decausalité de Granger est une procédure permettant de tester la causalité ("causalité de Granger") entre desséries chronologiques. L'idée du test est que les valeurs (changements) de la série temporelle{\displaystyle x_{t}}, qui provoquent des changements dans la série temporelle{\displaystyle y_{t}}, doivent précéder les changements dans cette série temporelle et doivent en outre contribuer de manière significative à ses valeurs prédites. Si chaque variable contribue de manière significative à la prédiction de l'autre, il se peut qu'une autre variable affecte les deux.

Letest deGrangerteste systématiquement deux hypothèses nulles : "x n'est pas la cause de y selon Granger" et "y n'est pas la cause de x selon Granger". Pour tester ces hypothèses, deux régressions sont construites : dans chaque régression, la variable dépendante est l'une des variables testées pour la causalité, et les régresseurs sont les retards des deux variables ( il s'agiten fait d'une autorégression vectorielle).

Et voici le code pour ce cas à partir d'ici

# 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:

Bien sûr, la corrélation est la plus douteuse, très vite la corrélation avec les anneaux de Saturne, le marc de café... commence à émerger.

D'une certaine manière, cela a été oublié :

Personne n'a rien oublié....

C'est à ce moment que google correlate demandera, comment voulez-vous mesurer la corrélation? Le service a 6 ans, et s'ils voulaient le faire, ils l'auraient déjà fait ...

Et une autre chose...

Google a des milliards de BP dans sa base de données, il y aura toujours une centaine de BP proches par hasard, simplement parce que la base de données est énorme et peu importe comment ils mesurent la proximité, une simple corrélation ou quelque chose de compliqué et compliqué.

La question est de savoir comment faire le tri entre ce qui est aléatoire et ce qui ne l'est pas.

 
mytarmailS:

La question est de savoir comment séparer l'aléatoire du non-aléatoire.

Nous pourrions

1) diviser la série eura en deux parties "1" et "2".

2) saisissez la rangée "1" dans Google et il trouvera toutes les rangées proches.

3) mémoriser les noms de tous les rangs proches.

4) lancez la rangée "2" dans google way et il trouvera toutes les rangées proches d'elle

5) mémoriser les noms de tous les rangs proches

6) comparez les noms des lignes des points 3) et 5) et cherchez une telle ligne qui est présente à la fois en 3) et en 5).

Ainsi, nous trouvons des séries qui ne sont pas accidentellement en corrélation avec les euros - il s'agit d'une sorte de validation croisée dans sa forme la plus primitive.

Mais comment obtenir ces noms, je ne le sais pas, vous devez probablement analyser la page

 
mytarmailS:

Personne n'a rien oublié....

Quand google correlate vous demandera quelle méthode vous voulez pour mesurer la connexion? Le service a 6 ans, et s'ils voulaient le faire, ils l'auraient déjà fait.

Et une autre chose...

Google a des milliards de BP dans sa base de données, il y aura toujours une centaine de BP proches par hasard, simplement parce que la base de données est énorme et peu importe comment ils mesurent la proximité, une simple corrélation ou quelque chose de compliqué et compliqué.

La question est de savoir comment faire la part des choses entre ce qui est aléatoire et ce qui ne l'est pas.


Il faut donc faire un tri par test parmi tous les déchets que google a collectés - c'est ce que je voulais dire.
 
SanSanych Fomenko:
Passez donc au crible toutes les ordures que google a collectées - c'est ce que je veux dire.

Je ne suis pas sûr de savoir comment faire, mais je ne sais pas comment le faire).

Il me semble que le combustible fossile est le seul moyen de s'en débarrasser... Si vous allez sur Google, vous verrez une centaine de séries qui sont en parfaite corrélation avec l'euro, peu importe la sophistication du test, elles montrent toutes la corrélation parfaite...

 
mytarmailS:

Peu importe l'intelligence du test que vous appliquez, ils montrent tous une connexion parfaite.

J'ai des doutes à ce sujet. Une corrélation élevée des tendances signifie seulement qu'elles montent et descendent généralement à peu près au même rythme. Tout d'abord, il serait préférable de chercher la corrélation non pas des tendances mais des hausses, par exemple on peut enregistrer des tendances similaires dans un csv, puis google affichera les décalages et recalculera la corrélation, ce sera beaucoup plus objectif.

Et la corrélation ne garantit pas du tout qu'une variable puisse prédire l'autre. D'une manière générale, il est malheureux de sélectionner des prédicteurs pour la prédiction en se basant sur le principe d'une corrélation élevée. Je n'ai pas encore essayé ce que SanSanych a suggéré, mais cela semble plus fiable.

 
mytarmailS:

Il est possible de

1) diviser la ligne eura en deux parties "1" et "2".

2) saisissez la ligne "1" dans Google et il trouvera toutes les lignes étroitement liées.

3) mémoriser les noms de tous les rangs proches

4) lancez la rangée "2" dans google way et il trouvera toutes les rangées proches d'elle

5) mémoriser les noms de tous les rangs proches

6) comparer les noms des lignes des points 3) et 5). et chercher une telle série qui est présente à la fois dans 3) et 5)

Ainsi, nous trouvons des séries qui ne sont pas accidentellement en corrélation avec l'euro ; il s'agit d'une sorte d'évaluation croisée dans sa forme la plus primitive.

Mais je ne sais pas comment obtenir ces noms, nous devrions probablement analyser la page...


Cela s'appelle un test PSE.

Vérifie en fait l'hétérogénéité de l'échantillon dans le contexte d'un modèle de régression.

 
Dr. Trader:

J'en doute. Une corrélation élevée des tendances signifie seulement qu'en général, elles augmentent et diminuent de la même manière. Pour commencer, il serait bon de chercher la corrélation non pas des tendances, mais des augmentations, par exemple vous pouvez enregistrer des tendances similaires dans un csv, puis trouver les décalages vous-même et recalculer la corrélation, ce sera beaucoup plus objectif.

Oui, je suis d'accord, mais google ne nous donne pas toute sa base de données, mais seulement ce qui est corrélé "par tendance", prendre ce qui est corrélé par tendance et l'utiliser pour faire des incréments et mesurer la corr. n'est pas non plus objectif, probablement .... :) Nous devons regarder l'ensemble de la base de données

Dimitri:


Cela s'appelle un test PSE.

Vérifie en fait l'hétérogénéité de l'échantillon dans le contexte d'un modèle de régression.

Eh bien... Ce CHOU peut être appliqué, mais nous devons sortir les lignes de Google, ou au moins leurs noms.
 

J'ai lu cette brochure http://www.mirkin.ru/_docs/dissert065.pdfet je veux utiliser 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...