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

 
ivanivan_11:

Provavelmente, você mesmo poderá usar estas funções, se necessário https://www.mql5.com/ru/docs/opencl.

Tenho uma placa de vídeo antiga, o OpenCL não parece suportar. Se eles enfiarem o suporte mesmo dentro da biblioteca, o que acontecerá?

Então eu quis dizer que seria possível escolher o suporte tanto para o vídeo, como para outros núcleos do processador, ou não usar OpenCL em absoluto. É apenas uma oportunidade real para as pessoas comuns verem como aplicar o OpenCL de forma eficaz.

 

Quando chegarmos aos cálculos pesados, talvez usemos o OpenCL. Mas algo me diz que o uso de CPU com vários núcleos dará resultados aceitáveis e mais garantidos.

Neste momento, não há dúvidas sobre a aceleração. Estamos a trabalhar na funcionalidade básica das bibliotecas.

 
Dr. Trader:

De acordo com a fórmula no arquivo de ajuda R, isto é calculado usando a fórmula
f(x)= 1/(s^a Gama(a)) x^(a-1) e^-(x/s)
(forma= a e escala= s,parax ≥ 0,a > 0 es > 0)
escala é 1/ taxa por padrão

O problema é que neste caso x^(a-1) = 0^(1-1) = 0^0 que é indefinido, ou seja, não há nenhum ponto em chamar a função com tal parâmetro e nenhum ponto em comparar resultados com outro software. Por 0^0 pode ser diferente em diferentes softwares, dependendo da religião dos desenvolvedores.
Isto é no sentido do software de 0^0. No sentido matemático, especificamente aqui lim(x^0), em x->0 - e este é, sem ambiguidade, um
 

Dr. Trader:
O suposto erro é que

dgamma(x=0, forma=1, taxa=1,log=FALSO)== 1

De acordo com a fórmula no arquivo de ajuda R, isto é calculado usando a fórmula
f(x)= 1/(s^a Gama(a)) x^(a-1) e^-(x/s)
(forma= a e escala= s,parax ≥ 0,a > 0 es > 0)
escala padrão para 1/ taxa

O problema é que neste caso x^(a-1) = 0^(1-1) = 0^0, o que é indefinido, ou seja, não vale a pena chamar a função com tal parâmetro e não vale a pena comparar resultados com outro software. Por 0^0 pode ser diferente em diferentes softwares, dependendo da religião dos desenvolvedores.

Está bem. Acontece que não podemos chamar-lhe uma definição, uma vez que há incertezas.

Você pode traçar o gráfico e certificar-se de que em x=0, a expressão nestes parâmetros tende a 1. Este é um número normal, não há divergências em outros pontos.

Podemos somar toda a densidade, o resultado será algum número (fator de normalização), pelo qual dividimos e obtemos a probabilidade unitária, que é manchada sobre a área de definição. A curva é normalizada, a área sob a curva = 1. Neste caso podemos falar de densidade de probabilidade.

Entretanto, com os parâmetros 0,5 e 1 no ponto x=0, a situação é diferente. O limite, neste momento, é o infinito. Quando se aproxima de 0 tende ao infinito. Também é possível não integrar depois deste ponto, o resultado não mudará. Como normalizar ao infinito? Com esta normalização qualquer curva se transforma em uma linha.

Mas se considerarmos a expressão para funcionar apenas quando x>0, então a expressão pode ser considerada como a definição da função, pois não existem incertezas em x=0. Todos os valores são finitos e nada se quebra.

Esta hipótese explica os resultados que o Mathematica e Matlab dão: no ponto x=0 a densidade=0.

Esta era a questão.

 
Renat Fatkhullin:

Quando chegarmos aos cálculos pesados, talvez usemos o OpenCL. Mas algo me diz que o uso de CPU com vários núcleos dará resultados aceitáveis e mais garantidos.

Neste momento, não há dúvidas sobre a aceleração. Estamos ocupados a mexer nas funcionalidades básicas das bibliotecas.

Já está. Eu vou esperar pelos desenvolvimentos.

 
Quantum:

Óptimo. Acontece que não podemos chamar-lhe uma definição, uma vez que há incertezas.

Você pode traçar o gráfico e certificar-se de que no ponto x=0 a expressão tende a 1. Este é um número normal, não há divergências em outros pontos.

Podemos somar toda a densidade, o resultado é algum número (o fator de normalização) pelo qual dividimos e obtemos a probabilidade unitária, que é difusa sobre a área de definição. A curva é normalizada, a área sob a curva = 1. Neste caso podemos falar de densidade de probabilidade.

Entretanto, com os parâmetros 0,5 e 1 no ponto x=0, a situação é diferente. O limite, neste momento, é o infinito. Quando se aproxima de 0 tende ao infinito. Também é possível não integrar depois deste ponto, o resultado não mudará. Como normalizar ao infinito? Com esta normalização qualquer curva se transforma em uma linha.

Mas se considerarmos a expressão para funcionar apenas quando x>0, então a expressão pode ser considerada como a definição da função, pois não existem incertezas em x=0. Todos os valores são finitos e nada se decompõe.

Esta hipótese explica os resultados que o Mathematica e Matlab dão: no ponto x=0 a densidade=0.

Essa era a questão.

Esta função é o que está definido em (0,inf). ou você não concorda com isso?

Segundo. Devido ao facto de a função de distribuição de probabilidade estar perfeitamente definida na região especificada, faz algum sentido atribuir qualquer valor 0, 1, inf à função de densidade no ponto 0 e chamar erro a um desses valores?

Não, não tenho nenhuma queixa sobre o valor 0. Você pessoalmente, como autor do código de função, vai responder aos programadores de R pelo que você disse sobre a função deles dgamma estar incorreta?
 
Meus colegas e eu verificamos o dgamma depois de ler o artigo. Suas revelações não afetaram e não podem afetar os resultados da pesquisa feita. E uma pessoa que não sabe muito sobre isso pode pensar que o R está a fazer os cálculos por engano. Fê-lo deliberadamente para este fim? Isto só se aplica ao dgamma.

A seguir.

Tenho uma pergunta para si pessoalmente. Função Dirac. Função Delta. É igual ao infinito no ponto 0 e zero nos outros pontos. Seu integral no domínio -inf a +inf = 1. Por que haveria um problema com o integral da função gama em seu domínio se a densidade é igual ao infinito a zero?
 
Alexey Burnakov:

Tenho uma pergunta para si pessoalmente. Função Dirac. Função Delta. É igual ao infinito no ponto 0 e zero nos outros pontos. Seu integral no domínio -inf a +inf = 1. Por que haveria um problema com a integral da função gama em seu domínio se a densidade é igual ao infinito a zero?

Está a dizer que essa transformação para a função delta de Dirac está bem? Porquê tudo o resto?

Diga-me o que acontece ao infinito durante o pgamma no ponto x=0, quando a resposta "correta" como você diz é dada em dgamma(0,0.5,1)=+inf.

Mostrar graficamente as funções e faixas de integração ao calcular pgamma.

 

Facto interessante

As definições dos valores da densidade de distribuição gama na tradução russa de

Johnson N.L., Kotz S., Balakrishnan N. Univariate distribuições contínuas. parte 1 e a versão anterior em inglês são diferentes:



mas a versão inglesa tem uma suspeita de erro tipográfico devido a sinais diferentes.

 
Quantum:

Está a dizer que este tipo de conversão para uma função delta de Dirac está bem? Qual é o objectivo de tudo o resto, então?

Diga-me o que acontece ao infinito no processo pgamma em x=0, quando a resposta "correta" como você diz em dgamma(0,0.5,1)=+inf foi dada.
Eu li a documentação da Pgamma. Pelo que sei não está relacionada com a dgamma. A sua contraparte é diferente.

Não, não te vou dizer o que não sei ao certo.
... Eu dei um exemplo onde para densidade = infinito o integral = 1. Uma vez que existem zeros no resto do domínio ...

E outra pergunta para si.

Eu levei o Excel. Há uma função gamma.race lá também. conta a densidade se cumulativa = falsa. para x = 0 a função produz um valor de #number! Da ajuda:No Excel, este erro ocorre quando uma fórmula ou função contém um valor numérico inválido.

O Excel também recebe o erro? Seguindo a sua lógica. Talvez também possas competir com eles em inteligência.

E acrescente ao seu artigo mencionando que a função stat para distribuição gama em Python retorna valores R similares, e chame o feuilleton da seguinte forma: Há muitos programas em torno que estragam sua pesquisa com erros, e em MT nós resolvemos todos os seus erros.

E, a propósito, acrescente uma seção sobre as convenções adotadas na MT5 para valores não calculáveis.

E estou à espera que a minha pergunta seja moderada pelo R Core e a resposta deles. Embora eu saiba o que vai ser... e depois vou-me reformar.