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

 

Alexey Burnakov:
Comecei a ter respostas para a minha pergunta em R.

Correspondência continuada com a mesma pessoa...


Re: [Rd] dgamma density values in extreme point
Duncan Murdochmurdoch.duncan@gmail.com
сегодня в 12:59
Вам
:
burnakov@yandex.ru
Язык письма — английский. Перевести на русский?
Перевести
<span class="mail-Message-Widget-Inline_help ns-action nb-with-s-right-gap" data-click-action="common.show-hint" title="Узнать больше" data-params="pos=right&counter=71105:msg.click.quest&text=Вы можете переводить письма с иностранных языков нажатием одной кнопки. Кроме того, перевод писем доступен по ссылке «Перевести» за вкладкой «подробнее». Если вы считаете, что язык письма определён неправильно, пожалуйста, сообщите нам об этом." style="margin-right: 10px !important; display: inline-flex; cursor: pointer; color: rgb(187, 187, 187); flex-shrink: 0;">
Alexey Burnakov14 ноя. в 1:54 AM
 Hi Duncan,

 "As to the "correctness", we all know that the value of a density at any
 particular point is irrelevant. Only the integrals of densities have
 any meaning. "

 Thank you for clarification. Yes, I agree that what matters practically
 is the cumulative density. One more point.

 There is an opinion expressed by sometimes that while integral from the
 left in point zero of the support == 0, density in this particular point
 cannot be anything than zero. You think that is sound?

No. The value of a density at any particular point is irrelevant.

Duncan Murdoch

Sobre o réu: http://www.stats.uwo.ca/faculty/murdoch/other.shtml

Em particular:

Sou membro do grupo de desenvolvimento do núcleo R; veja www.r-project.org para detalhes sobre o projeto R. Mantenho aversão Windows do R e tenhouma página web de dicas para pessoas escrevendo DLLs para o R.

About Duncan Murdoch
  • www.stats.uwo.ca
My research interests are in applied statistics (especially orientation statistics) and statistical computing (especially the R project and perfect sampling). I write a fair...
 
SanSanych Fomenko:

Sim, tu é que sabes.

Sim, mais clara e honestamente.

E eu não tenho a capacidade política de esboçar como um forasteiro para o fórum.


Não hesite em chamar Matlab, Wolfram e Mathematics de "Não sei quem é".

Dê-me um link para rankings de pacotes estatísticos que tinham Mathlab (Wolfram) neles. O Matlab foi, mas faleceu. Eu já dei no meu blog no vosso site e muitas vezes postei no fórum

Você está em silêncio sobre isso:

  • você mostra comparação de R gratuito com pacotes pagos
  • você ignora posições históricas (5-10 anos atrás) de pacotes matemáticos, afirmando nesta base "eles não são ninguém".
  • você muda a popularidade e discute a precisão dos cálculos

O Matlab não foi a lado nenhum, e os outros pacotes também não. Sim, é pago, mas é de qualidade. Sim, a popularidade vai diminuir, mas a precisão e a qualidade não vão a lado nenhum.

Leia sobre a Wolfram Alpha e pesquise seu site - é um investimento fundamental em análise que poucos podem fazer. E a Wolfram Alpha tem 30 dígitos de precisão, o que prova a sua atenção maníaca à qualidade dos cálculos.

Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
 
Alexey Burnakov:

Re: [Rd] dgamma density values in extreme point
Duncan Murdochmurdoch.duncan@gmail.com
сегодня в 12:59
Вам

Infelizmente, você formulou a pergunta de forma incompleta e recebeu uma resposta mal concebida e breve e educada: "não importa".

Você queria uma resposta "tão de acordo/convenção", formulando-a na própria pergunta. Mas Duncan escapou com "o que está certo" da primeira vez e repetiu-o da segunda vez.

Você não obteve uma prova de precisão em R e não obteve uma resposta sobre o porquê de o resultado ser diferente em outros pacotes. A pergunta "por que a resposta é diferente em outros pacotes" é mais importante e pode ser mais reveladora.


A nossa posição:

выражение для dgamma

(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s)

for x ≥ 0, a > 0 and s > 0


в точке 0 является неопределенным.

R acredita que você pode incluir este ponto no cálculo, mas tome os valores limite mesmo que sejam infinitos como no caso de dgamma(0,0.5,1).

No entanto, se calcularmos as probabilidades dadas o infinito no ponto zero, todos os integrais do dgamma tornam-se formalmente infinitos e por esta lógica o pgamma deve ser igual ao infinito para todos os valores de x.

No entanto, isto contradiz os resultados do pgamma, onde todos os valores acabam por ser finitos. Estão correctas, como se no ponto x=0 a densidade fosse =0.
 

Para @SanSanych Fomenko - MQL4/MQL5 subiu para o 41º lugar no ranking mundial da linguagem de programação TIOBE: http://www.tiobe.com/tiobe-index/

R em 19º lugar, Mathlab em 15º lugar.

Isto é para dissipar as suas declarações sobre "não ser uma autoridade" e "não ser o topo do mundo".

TIOBE Index | TIOBE - The Software Quality Company
  • www.tiobe.com
TIOBE Index for November 2016 November Headline: Is Haskell finally going to hit the top 20? Some people say that Haskell is the most mature purely functional programming language available nowadays. It has quite a long history, dating back from 1990 and its community is growing, although slowly. This month Haskell is only 0.255% away from the...
 

Para não perder o fio da discussão, aqui está o erro de calcular os quantis da distribuição não central em t encontrados no processo de teste de R.

Por exemplo:

> n <- 10
> k <- seq(0,1,by=1/n)
> nt_pdf<-dt(k, 10,8, log = FALSE)
> nt_cdf<-pt(k, 10,8, log = FALSE)
> nt_quantile<-qt(nt_cdf, 10,8, log = FALSE)
> nt_pdf
 [1] 4.927733e-15 1.130226e-14 2.641608e-14 6.281015e-14 1.516342e-13 3.708688e-13 9.166299e-13
 [8] 2.283319e-12 5.716198e-12 1.433893e-11 3.593699e-11
> nt_cdf
 [1] 6.220961e-16 1.388760e-15 3.166372e-15 7.362630e-15 1.742915e-14 4.191776e-14 1.021850e-13
 [8] 2.518433e-13 6.257956e-13 1.563360e-12 3.914610e-12
> k
 [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> nt_quantile
 [1]           -Inf -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154 -1.340781e+154
 [7] -1.340781e+154   7.000000e-01   8.000000e-01   9.000000e-01   1.000000e+00

O algoritmo AS 243 proposto por Lenth [6] é usado para calcular a probabilidade de não-distribuição t central da distribuição t de Student em R. A vantagem deste método é o rápido cálculo de recorrência de termos de séries infinitas com funções beta incompletas. Entretanto, foi mostrado no artigo [7], que este algoritmo leva a erros devido ao erro na estimativa da precisão ao somar os termos da série (Tabela 2 no artigo [7]), especialmente para grandes valores do parâmetro de não centralidade delta. Os autores do trabalho [7] propuseram um algoritmo corrigido para o cálculo da probabilidade não central de distribuição em T com base na recorrência.

Nossa biblioteca estatística MQL5 utiliza o algoritmo correto para o cálculo de probabilidade do artigo [7] , o que dá resultados precisos.


Além disso, em R, a forma como definimos as densidades para as distribuições Gama, ChiSquadrado e Não-Central ChiSquadrado no ponto x=0 leva a expressões infinitas:

> dgamma(0,0.5,1)
[1] Inf
> dchisq(0,df=0.5,ncp=1)
[1] Inf
> dchisq(0,df=0.5,ncp=0)
[1] Inf

Assim, verifica-se que o ponto x=0 em R está incluído no domínio da definição da expressão para densidades e a solução são os valores-limite.

Neste caso, o valor limite em x=0 é infinito. Nesta abordagem, como resultado da integração de 0 a x>0, devido à divergência no ponto x=0, as probabilidades devem ser infinitas.

No entanto, o resultado do cálculo da probabilidade (por exemplo, para x=0,1) é uma expressão finita:

> pgamma(0.1,0.5,1)
[1] 0.3452792
> pchisq(0.1,df=0.5,ncp=0)
[1] 0.5165553
> pchisq(0.1,df=0.5,ncp=1)
[1] 0.3194965

Apesar de que no ponto x=0 a densidade é considerada infinita, os resultados do cálculo de probabilidade em R não são infinitos, eles coincidem com os valores de Wolfram Alpha(Gama, Quiquadrado, Não-Chiquadrado).

Para evitar problemas de integração de funções que giram ao infinito em x=0, em Wolfram Alpha (Mathematica) e Matlab a densidade no ponto x=0 é 0 por definição:


Figura 3. Determinação da densidade de probabilidade de distribuição gama na Wolfram Alpha


Fig.4. Determinação da densidade de probabilidade da distribuição qui-quadrada na Wolfram Alpha



Fig. 5. Determinação da função de densidade de probabilidade da distribuição qui-quadrada não central na Wolfram Alpha


Pensamos que esta abordagem é correcta. Permite evitar incertezas na determinação da função de densidade de probabilidade e resolve o problema dos valores infinitos, que podem ocorrer ao integrar a função de densidade de probabilidade.

Por este motivo, no ponto x=0 as densidades destas distribuições são assumidas como zero por definição, não infinitas como em R.

Incluímos vários scripts de teste de unidade na entrega para ter certeza de que os cálculos são precisos e para dar a possibilidade aos desenvolvedores de terceiros de verificar a qualidade da biblioteca.

Literatura

  1. O Projeto R de Computação Estatística.
  2. Balakrishnan N., Johnson N.L., Kotz S. "Distribuições Univariadas Contínuas: Parte 1". BINOM. Laboratório do Conhecimento, 2014.
  3. Balakrishnan N., Johnson N.L., Kotz S. "Distribuições contínuas univariadas: parte 2 " . M.: BINOM. Laboratório do Conhecimento, 2014.
  4. Johnson N.L., Kotz S., Kemp A. "Distribuições discretas univariadas", Moscovo: BINOM. Laboratório do Conhecimento, 2014.
  5. Forbes C., Evans M., Hastings N., Peacock B., "Statistical Distributions", 4ª Edição, John Wiley and Sons, 2011.
  6. Lenth, R.V., 'Função de distribuição cumulativa da distribuição t não central', Applied Statistics, vol. 38 (1989), 185-189.
  7. D. Benton, K. Krishnamoorthy, "Computing discrete mixtures of continuous distributions: noncentral chisquare, noncentral t and the distribution of the square of the sample multiple correlation coefficient", Computational Statistics & Data Analysis, 43, (2003), 249-267
Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
 
Renat Fatkhullin:

Para @Sanych Fomenko - MQL4/MQL5 está em 41º lugar no ranking mundial da linguagem de programação TIOBE: http://www.tiobe.com/tiobe-index/

R em 19º lugar, Mathlab em 15º lugar.

Isto é para dissipar as suas declarações sobre "não ter autoridade" e "não estar no topo do mundo".

Estou a discutir estatísticas. E as minhas classificações por pacote estatístico.

Além disso. Na citação que você citou, R está acima de MQL4/5 nessas estatísticas para linguagens algorítmicas. Mas isso NÃO é razão para eu mudar de MQL para R, por exemplo, de forma alguma. Não estou a discutir as capacidades algorítmicas do R.

Para mim, a principal força do R são os seus pacotes, é o apoio a todo este sistema, é a autoridade das pessoas que os desenvolveram, é um grande R hangout, afinal um grande número de publicações ligadas ao R.

Mas como alguém que esteve em conselhos científicos durante 15 anos. Se você escrever "análogo de R então é um análogo sem qualquer excepção. E não há outra forma de contornar isto. Caso contrário NÃO é um análogo de R, pode ser muito mais correcto, mas não é um análogo

 
SanSanych Fomenko:

Eu discuto estatísticas. E as minhas classificações em pacotes estatísticos.

Além disso. Na citação que você cita, R está acima de MQL4/5 nestas estatísticas para linguagens algorítmicas. Mas para mim isso NÃO é razão alguma para mudar de MQL para R, por exemplo. Não estou a discutir as capacidades algorítmicas do R.

E estamos a discutir um erro específico no R.

Portanto, não se preocupe com suas avaliações, pois você não está ciente da matemática e do caso particular com o qual está lidando.

 

SanSanych Fomenko:

...

Para mim, a principal força do R são os seus pacotes, é o apoio de todo o sistema, é a autoridade das pessoas que os desenvolveram, é um grande encontro com o R, no final um grande número de publicações ligadas ao R.
...

Que coisa podre é este R - uma bicicleta com rodas quadradas. O que dizer sobre alguns de seus pacotes quando a base, ou seja, o kernel R, está torto e precisa ser seriamente melhorado com um "arquivo lápis"? Que credibilidade podem ter aqueles que há tantos anos nem sequer se preocupam em verificar se as funções básicas em R estão correctas? Qual pode ser a "força" na fraqueza do R - a incorrecção dos cálculos através dele?

É bom que a MetaQuotes tenha aberto os olhos de alguns usuários para o fato e testes com código aberto, para que todos pudessem checar e ter certeza, de forma independente, de que não seriam infundados. Nem todos, claro, foram abertos, porque alguns fanáticos religiosos da seita destrutiva do R continuarão a acreditar cegamente na "infalibilidade" dos cálculos em sua linguagem e pacotes tortuosos, em vez de se voltarem para os testes apresentados e verificá-los eles mesmos, mas não fanaticamente, defendendo a "infalibilidade" do R como "padrão geralmente aceito".

Agora é bastante óbvio que é melhor usar a funcionalidade MQL para criar estratégias de negociação, porque o resultado será mais correcto, em vez de tentar fazê-lo através da curva e do slash R.

Os desenvolvedores da MetaQuotes merecem um agradecimento especial pela sua abordagem construtiva, testes e suas fontes, bem como pela identificação do"Rei Nu - R"!

 
Quantum:
Nós não estamos interessados na largura 0, precisamos entender como tal integral se comporta, ou seja, cdf(x). Que tipo de função é obtida? Irá coincidir com o pgamma(x)?

> dgamma_05_1 <- function(x)dgamma(x,0.5,1) #всего 1 параметр, чтоб удобней работать

> pgamma_05_1 <- function(x)pgamma(x,0.5,1#всего 1 параметр, чтоб удобней работать

> pgamma_05_1_integralform <- function(x)integrate(dgamma_05_1, 0, x)$value #вычисление pgamma путём интегрирования dgamma
>
> pgamma_05_1(0.00001)
[1] 0.003568236
> pgamma_05_1_integralform(0.00001)
[1] 0.003568236
> pgamma_05_1(0.00001) - pgamma_05_1_integralform(0.00001)
[1] -6.938894 e-18
>
> pgamma_05_1(0.0001)
[1] 0.01128342
> pgamma_05_1_integralform(0.0001)
[1] 0.01128342
> pgamma_05_1(0.0001) - pgamma_05_1_integralform(0.0001)
[1] 3.295975 e-17
>
> pgamma_05_1(0.001)
[1] 0.03567059
> pgamma_05_1_integralform(0.001)
[1] 0.03567059
> pgamma_05_1(0.001) - pgamma_05_1_integralform(0.001)
[1] 1.595946 e-16
>
> pgamma_05_1(0.01)
[1] 0.1124629
> pgamma_05_1_integralform(0.01)
[1] 0.1124629
> pgamma_05_1(0.01) - pgamma_05_1_integralform(0.01)
[1] 1.096345 e-15
>
> pgamma_05_1(0.1)
[1] 0.3452792
> pgamma_05_1_integralform(0.1)
[1] 0.3452792
> pgamma_05_1(0.1) - pgamma_05_1_integralform(0.1)
[1] 1.126876 e-13
>
> pgamma_05_1(1)
[1] 0.8427008
> pgamma_05_1_integralform(1)
[1] 0.8427008
> pgamma_05_1(1) - pgamma_05_1_integralform(1)
[1] 3.460265 e-11

pgamma() encontrado no modo padrão e integrate(dgamma()) quase coincide, vemos que o erro é apenas3.460265e-11 em x=1. No entanto, tal erro é bastante esperado, a integração aqui é uma soma de pequenos passos, sem qualquer análise preliminar e simplificações. A função pgamma() em si é escrita em C++ e deve ser mais precisa do que integrar(). É por isso que você deve usar pgamma(x,0.5,1) em vez de integrar(dgamma(x,0.5,1),0,x)

 
Yury Reshetov:

O que podemos dizer sobre qualquer um de seus pacotes, quando o núcleo, ou seja, o kernel R, está torto e precisa de um "lápis e arquivo" para ser aperfeiçoado?

O núcleo R é torto e lento.

Se você dividir a discussão em estatísticas puramente clássicas, que estão tanto na entrega base como em pacotes adicionais, eu acho que não há problema aqui. Se você fizer milhões de testes estatísticos, o desempenho de outros idiomas (incluindo MQL) será uma vantagem.

Se falarmos sobre programação R em geral, eu lhe direi, Yuri, que as pessoas usam novamente pacotes para processamento rápido de dados (dplyr, data.table, e para gráficos - ggplot2). O próprio R é novamente uma linguagem de scripting, antiga, não concebida para dados massivos.

Mas mesmo apesar de tudo isso, o fluxo de lama do seu lado ainda é injustificadamente alto. Estávamos discutindo estatísticas aqui, e nem mesmo refatoração de código e outras coisas técnicas. Foi uma discussão de conceitos matemáticos.