Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 3043

 
Aleksey Nikolayev #:

O principal problema de usar o matstat para essas tarefas é que a busca por TS é realizada pela seleção de um grande número de variantes. Sempre é possível escolher algo muito bonito em um grande conjunto de variantes - por meio de um exemplo simples, mostrei aqui que, ao modelar os preços como um CB, você sempre pode "encontrar" uma boa hora da semana para negociar. E isso são apenas 120 variantes para escolher.

O matstat não diz que o TS selecionado é necessariamente ruim, apenas diz que esse resultado PODE (NÃO DEVE) ser apenas o resultado da seleção do SB.

Ainda não entendi, não há como dizer com certeza se o resultado final é estatisticamente significativo ou não? TC ou não?

Aleksey Vyazmikin #:

Recebo um erro ao iniciar

1) Os dados são os mesmos do exemplo?

2) Talvez no novo R os nomes dos argumentos da função tenham mudado

?embed
 

Uma das direções poderia ser buscar não os melhores, mas os parâmetros mais estáveis do TS, ou seja, descartar as variantes que apresentam variabilidade de resultados em diferentes partes da história.

Uma maneira é incluir indicadores de estabilidade dos resultados nos critérios de avaliação.

 

Há um ótimo pacote sobre otimização bayesiana...

Você pode fazer otimização com vários critérios, otimização em funções com ruído e muitas outras coisas.

Criei um exemplo de brinquedo de como o algoritmo procura um mínimo em um vetor unidimensional.

library(mlrMBO)

set.seed(123)
xx <- cumsum(rnorm(1000))
par(mar=c(2,2,2,2))
plot(xx,t="l")

fun = function(i){
  plot(xx,t="l",col=8)
  points(i,xx[i],col=4,lwd=4)
  return(xx[i])
}

obj.fun = makeSingleObjectiveFunction(name = "noisy_parable", 
                                      fn = fun,
                                      has.simple.signature = TRUE, 
                                      par.set = makeNumericParamSet("i", 1, 1, length(xx)),
                                      noisy = F)


ctrl = makeMBOControl(final.method = "best.true.y", final.evals = 10)
ctrl = setMBOControlInfill(ctrl, crit = crit.eqi)
ctrl = setMBOControlTermination(ctrl, iters = 40)

configureMlr(on.learner.warning = "quiet", show.learner.output = F)
res = mbo(obj.fun, control = ctrl, show.info = T)

points(res$x$i, xx[res$x$i] , col=2,lwd=5, pch=10)
Bayesian Optimization and Model-Based Optimization of Expensive Black-Box Functions
  • mlrmbo.mlr-org.com
Flexible and comprehensive R toolbox for model-based optimization (MBO), also known as Bayesian optimization. It implements the Efficient Global Optimization Algorithm and is designed for both single- and multi- objective optimization with mixed continuous, categorical and conditional parameters. The machine learning toolbox mlr provide dozens of regression learners to model the performance of the target algorithm with respect to the parameter settings. It provides many different infill criteria to guide the search process. Additional features include multi-point batch proposal, parallel execution as well as visualization and sophisticated logging mechanisms, which is especially useful for teaching and understanding of algorithm behavior. mlrMBO is implemented in a modular fashion, such that single components can be easily replaced or adapted by the user for specific use cases.
 
mytarmailS #:

Ainda não entendi, não há como dizer com certeza se o resultado final é estatisticamente significativo ou não. ou não?

Não misture duas coisas que estão relacionadas ao uso do mesmo indicador:

1) Avaliar o resultado de uma TS por esse indicador.

2) Seleção de uma TS em um grande número de opções, maximizando esse indicador.

No primeiro caso, o valor do indicador pode ser estatisticamente significativo, mas no segundo caso, é improvável.

 
mytarmailS #:

Ainda não entendi, não há como dizer com certeza se o resultado final é estatisticamente significativo ou não. ou não?

1) Os dados são os mesmos do exemplo?

2) Talvez no novo R os nomes dos argumentos da função tenham mudado

1) Sim

2. Talvez - ativei a versão 3.5.0 - solicitei a biblioteca - instalei-a e, novamente, ocorreram alguns erros.

installing the source package ‘inTrees’

trying URL 'https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/contrib/inTrees_1.3.tar.gz'
Content type 'application/octet-stream' length 16771 bytes (16 KB)
downloaded 16 KB

ERROR: dependency 'arules' is not available for package 'inTrees'
* removing 'C:/Users/S_V_A/Documents/R/win-library/3.5/inTrees'
In R CMD INSTALL
Warning in install.packages :
  installation of package ‘inTrees’ had non-zero exit status
 
Aleksey Vyazmikin #:

1. sim

2. Talvez - ativei a versão 3.5.0 - solicitei a biblioteca - instalei e novamente ocorreram alguns erros.

veja quais argumentos a função recebe

?embed

na versão que apresentou o erro com essa função.

Eu a escrevi!

 
Aleksey Nikolayev #:

Não misture duas coisas que envolvam o uso do mesmo indicador:

1) Avaliação do resultado de um CT nesse indicador.

2) Seleção de um TS em um grande número de opções, maximizando esse indicador.

No primeiro caso, o valor do indicador pode falar de significância estatística, mas no segundo caso - dificilmente.

Em palavras simples, se eu avaliar uma TS pela significância estatística, ela é boa,

se eu tiver 100 TS e escolher a melhor pelo mesmo critério, ela é ruim?


Devo ter entendido algo errado? Isso também não pode estar certo?

 
Andrey Dik #:

Uma das direções pode ser a busca não pelos melhores, mas pelos parâmetros mais estáveis da TS, ou seja, descartar as variantes que apresentam variabilidade de resultados em diferentes partes da história.

Uma maneira é incluir indicadores de estabilidade dos resultados nos critérios de avaliação.

Qual é a sua variante de avaliação de estabilidade? Estivemos discutindo duas opções recentemente.
 
mytarmailS #:

ver quais argumentos a função recebe

na versão em que houve um erro com essa função.

Eu a escrevi!

embed {stats}   R Documentation
Embedding a Time Series

Description

Embeds the time series x into a low-dimensional Euclidean space.

Usage

embed (x, dimension = 1)
Arguments

x       
a numeric vector, matrix, or time series.
dimension       
a scalar representing the embedding dimension.
Details

Each row of the resulting matrix consists of sequences x[t], x[t-1], ..., x[t-dimension+1], where t is the original index of x. If x is a matrix, i.e., x contains more than one variable, then x[t] consists of the tth observation on each variable.

Value

A matrix containing the embedded time series x.

Author(s)

A. Trapletti, B.D. Ripley

Examples

x <- 1:10
embed (x, 3)
[Package stats version 4.0.2 Index]
 
Aleksey Vyazmikin #:

Está tudo bem, deve funcionar.

Tem certeza de que não alterou o código? Mostre-me o código em que o erro ocorre.

Razão: