交易中的机器学习:理论、模型、实践和算法交易 - 页 295

 

变量的相关性问题已经讨论过很多次了。

当然,相关性是最值得怀疑的,很快,与土星环、咖啡渣......的相关性开始被看到。

不知何故,这一点已被遗忘。

格兰杰因果检验 是检验时间序列 之间因果关系("格兰杰因果关系")的程序。检验的想法是,引起时间序列{displaystyle x_{t}}变化的时间序列{displaystyle y_{t}} 的值(变化)必须先于这个时间序列的变化,而且必须对其预测值做出有意义的贡献。如果每个变量都对另一个变量的预测有意义的贡献,可能有一些其他的变量会影响这两个变量。

格兰杰检验一直在检验两个无效假设。"根据格兰杰,x不是y的原因 "和 "根据格兰杰,y不是x的原因"。为了检验这些假设,我们构建了两个回归:在每个回归中,因变量是被检验的因果关系的变量之一,而回归者是两个变量的滞后期(事实上,它是一个向量自 回归

这里是这个案例的代码,从这里开始

# 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]: Английский язык возник в раннем Средневековье как язык части германских племён, вторгшихся в Британию. Он стал родным для...
 
桑桑尼茨-弗门科

当然,相关性是最值得怀疑的,很快,与土星环、咖啡渣......的相关性就开始出现了。

不知何故,这一点已被遗忘。

没有人忘记任何事情....

这时,google correlate会问, 你想如何测量相关性?Googling现在不会问到这个问题,也不会。服务已经6年了,如果他们想做,他们早就做了 ...

还有一件事...

谷歌的数据库中有数十亿的BPs,总会有一百多个BPs偶然接近,只是因为数据库很大,而且他们如何衡量接近程度并 不重要,是简单的相关关系还是复杂繁琐的东西。

问题是如何将随机的东西从非随机的东西中筛选出来。

 
mytarmailS:

问题是如何将随机的东西从非随机的东西中筛选出来。

我们可以

1)将eura系列分成两部分 "1 "和 "2"

2) 在谷歌中输入 "1 "行,它将找到所有接近的行

3)记住所有接近的行的名字。

4) 把 "2 "行扔进谷歌,它会找到所有与之接近的行。

5)记住所有接近的行的名字

6) 比较3)和5)点的行名,寻找3)和5)中都有的行。

因此,我们找到了与欧元并不偶然相关的系列--这是一种最原始的交叉验证形式。

但如何获得这些名字我不知道,你可能需要解析一下这个页面

 
mytarmailS:

没有人忘记任何事情....

当google correlate会问你 ,你想用哪种方法来测量连接?Googling现在不会问到这个问题,也不会。这个服务已经有6年了,如果他们想做,早就做了。

还有一件事...

谷歌的数据库里有数十亿的BPs,总会有一百多个BPs偶然接近,只是因为数据库很大,而且他们如何衡量接近程度并 不重要,是简单的相关关系还是复杂繁琐的东西。

问题是如何将随机的东西从非随机的东西中筛选出来。


因此,通过测试从谷歌收集的所有垃圾中进行筛选--这就是我的意思。
 
桑桑尼茨-弗门科
因此,在谷歌收集的所有垃圾的测试中进行筛选,--这就是我的意思。

我不知道该怎么做,但我不知道该怎么做)。

你可以用谷歌搜索一百个 与欧元完全相关 的系列,无论测试有多复杂,它们都显示出极好的相关性,所以在这种情况下是没有用的。

 
mytarmailS:

无论你应用多么巧妙的测试,它们都显示出完美的联系。

我对这一点有疑虑。趋势的高度关联性只意味着它们一般以大致相同的速度上升和下降。首先,最好不是寻找趋势的相关性,而是寻找上升的相关性,例如可以把类似的趋势保存到csv中,然后google会显示滞后期并重新计算相关性,这样会更客观。

而且相关关系根本不能保证一个变量可以预测另一个变量。一般来说,根据高相关度的原则选择预测者进行预测是很不幸的。我以前没有试过SanSanych建议的方法,但它看起来更可靠。

 
mytarmailS:

有可能

1)将eura行分为两部分 "1 "和 "2"

2)在谷歌中输入 "1 "行,它将找到所有密切相关的行。

3)记住所有接近的行的名字

4) 把 "2 "行扔进谷歌,它会找到所有与之接近的行。

5)记住所有接近的行的名字

6) 比较第3)点和第5)点的行的名称 并寻找同时存在于3)和5)中的这样一个系列

因此,我们找到了与欧元并不偶然相关的系列;这是一种最原始形式的交叉评价。

但我不知道如何获得这些名字,我们也许应该解析一下这个页面


这就是所谓的PSE测试。

实际上是在回归模型的背景下检查样本的异质性。

 
Dr.Trader:

我对此表示怀疑。趋势的高度相关性只意味着在一般情况下,它们以同样的方式增加和减少。首先,寻找相关性将是一个好主意,不是趋势的相关性,而是增加的相关性,例如你可以在csv中保存类似的趋势,然后自己寻找滞后期,重新计算相关性,这将更加客观。

是的,我同意,但谷歌并没有给我们它的整个数据库,而只是 "按趋势 "相关的东西,把按趋势相关的东西拿出来,用它来做增量和测量corr.也是不客观的,可能...:)我们需要查看整个数据库

迪米特里


这就是所谓的PSE测试。

实际上是在回归模型的背景下检查样本的异质性。

嗯...这个CHOU可以应用,但我们需要从谷歌中获取行,或者至少是它们的名字
 

我读过这本小册子http://www.mirkin.ru/_docs/dissert065.pdf 想使用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...