L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 205

 
ivanivan_11:

Probabilmente vi sarà offerto di usare queste funzioni da soli, se necessario https://www.mql5.com/ru/docs/opencl.

Ho una vecchia scheda video, OpenCL non sembra supportarlo, ma se lo spingono all'interno della libreria, cosa succederà?

Quindi intendevo dire che sarebbe possibile scegliere il supporto sia per il video, sia per gli altri core del processore, o non usare affatto OpenCL. È solo una vera opportunità per la gente comune di vedere come applicare OpenCL in modo efficace.

 

Quando arriveremo ai calcoli pesanti, forse useremo OpenCL. Ma qualcosa mi dice che usare CPU multicore darà risultati accettabili e più garantiti.

Al momento non ci sono dubbi sull'accelerazione. Stiamo lavorando sulla funzionalità di base delle librerie.

 
Dr.Trader:

Secondo la formula nel file di aiuto di R, questo è calcolato usando la formula
f(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s)
(forma= a e scala= s,perx ≥ 0,a > 0 es > 0)
la scala è 1/grado per default

Il problema è che in questo caso x^(a-1) = 0^(1-1) = 0^0 che è indefinito, cioè non ha senso chiamare la funzione con tale parametro e non ha senso confrontare i risultati con altri software. Per 0^0 può essere diverso in diversi software, a seconda della religione degli sviluppatori.
Questo è nel senso software di 0^0. In senso matematico, in particolare qui lim(x^0), a x->0 - e questo è inequivocabilmente uno
 

Dr.Trader:
Il presunto errore è che

dgamma(x=0, shape=1, rate=1,log=FALSE)== 1

Secondo la formula nella guida R, questo è calcolato usando la formula
f(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s)
(forma= a e scala= s,perx ≥ 0,a > 0 es > 0)
scala predefinita a 1/grado

Il problema è che in questo caso x^(a-1) = 0^(1-1) = 0^0, che è indefinito, cioè non ha senso chiamare la funzione con tale parametro e non ha senso confrontare i risultati con altri software. Per 0^0 può essere diverso in diversi software, a seconda della religione degli sviluppatori.

Bene. Si scopre che non possiamo chiamarla definizione, poiché ci sono incertezze.

Puoi tracciare il grafico e assicurarti che a x=0, l'espressione a questi parametri tende a 1. Questo è un numero normale, non c'è divergenza in altri punti.

Possiamo sommare tutta la densità, il risultato sarà un certo numero (fattore di normalizzazione), per il quale dividiamo e otteniamo la probabilità unitaria, che viene spalmata sull'area di definizione. La curva è normalizzata, l'area sotto la curva = 1. In questo caso possiamo parlare di densità di probabilità.

Tuttavia, con i parametri 0,5 e 1 nel punto x=0, la situazione è diversa. Il limite in questo punto è l'infinito. Quando si avvicina a 0 tende all'infinito. È anche possibile non integrare dopo questo punto, il risultato non cambierà. Come normalizzare all'infinito? Con questa normalizzazione qualsiasi curva si trasforma in una linea.

Ma se consideriamo che l'espressione funziona solo quando x>0, allora l'espressione può essere considerata come la definizione della funzione, poiché non ci sono incertezze a x=0. Tutti i valori sono finiti e niente si rompe.

Questa ipotesi spiega i risultati che Mathematica e Matlab danno: nel punto x=0 la densità=0.

Questa era la domanda.

 
Renat Fatkhullin:

Quando arriveremo ai calcoli pesanti, forse useremo OpenCL. Ma qualcosa mi dice che usare CPU multicore darà risultati accettabili e più garantiti.

Al momento non ci sono dubbi sull'accelerazione. Siamo impegnati ad armeggiare con le funzionalità di base delle librerie.

Capito. Aspetterò gli sviluppi.

 
Quantum:

Fantastico. Si scopre che non possiamo chiamarla definizione, dato che ci sono incertezze.

Puoi tracciare il grafico e assicurarti che nel punto x=0 l'espressione tende a 1. Questo è un numero normale, non c'è divergenza in altri punti.

Possiamo sommare l'intera densità, il risultato è un certo numero (il fattore di normalizzazione) per il quale dividiamo e otteniamo la probabilità unitaria, che viene spalmata sull'area di definizione. La curva è normalizzata, l'area sotto la curva = 1. In questo caso possiamo parlare di densità di probabilità.

Tuttavia, con i parametri 0,5 e 1 nel punto x=0, la situazione è diversa. Il valore limite in questo punto è infinito. Quando si avvicina a 0 tende all'infinito. È anche possibile non integrare dopo questo punto, il risultato non cambierà. Come normalizzare all'infinito? Con questa normalizzazione qualsiasi curva si trasforma in una linea.

Ma se consideriamo che l'espressione funziona solo quando x>0, allora l'espressione può essere considerata come la definizione della funzione, poiché non ci sono incertezze a x=0. Tutti i valori sono finiti e niente si rompe.

Questa ipotesi spiega i risultati che Mathematica e Matlab danno: nel punto x=0 la densità=0.

Questa era la domanda.

Questa funzione è quella che è definita a (0,inf). o non sei d'accordo?

Secondo. Dato che la funzione di distribuzione di probabilità è perfettamente definita sulla regione specificata, ha senso assegnare qualsiasi valore 0, 1, inf alla funzione di densità nel punto 0 e chiamare uno di questi valori un errore?

No, non ho nessuna lamentela sul valore 0. Lei personalmente, come autore del codice della funzione, risponderà ai programmatori di R per quello che ha detto sul fatto che la loro funzione dgamma non è corretta?
 
Io e i miei colleghi abbiamo controllato dgamma dopo aver letto l'articolo. Le vostre rivelazioni non hanno e non possono influenzare i risultati della ricerca fatta. E una persona che non ne sa molto potrebbe pensare che R stia facendo i calcoli per errore. L'ha fatto deliberatamente per questo scopo? Questo vale solo per dgamma.

Il prossimo.

Ho una domanda per lei personalmente. Funzione di Dirac. Funzione Delta. Uguale a infinito nel punto 0 e a zero negli altri punti. Il suo integrale sul dominio da -inf a +inf = 1. Perché ci sarebbe un problema con l'integrale della funzione gamma sul suo dominio se a zero la densità è uguale a infinito?
 
Alexey Burnakov:

Ho una domanda per lei personalmente. Funzione di Dirac. Funzione Delta. È uguale a infinito nel punto 0 e a zero negli altri punti. Il suo integrale sul dominio da -inf a +inf = 1. Perché ci sarebbe un problema con l'integrale della funzione gamma sul suo dominio se a zero la densità è uguale a infinito?

Sta dicendo che una tale trasformazione della funzione delta di Dirac va bene? Perché tutto il resto?

Dimmi cosa succede all'infinito durante pgamma nel punto x=0, quando la risposta "corretta" come dici tu è data in dgamma(0,0.5,1)=+inf.

Mostra graficamente la funzione e gli intervalli di integrazione quando calcola pgamma.

 

Fatto interessante

Le definizioni dei valori di densità della distribuzione gamma nella traduzione russa di

Johnson N.L., Kotz S., Balakrishnan N. Univariate continuous distributions. part 1 e la precedente versione inglese sono diverse:



ma la versione inglese ha un sospetto refuso dovuto a segni diversi.

 
Quantum:

Sta dicendo che questo tipo di conversione in una funzione delta di Dirac va bene? Che senso ha allora tutto il resto?

Dimmi cosa succede all'infinito nel processo pgamma a x=0, quando è stata data la risposta "corretta" come dici tu in dgamma(0,0.5,1)=+inf.
Ho letto la documentazione di Pgamma. come ho capito non è legato a dgamma. la sua controparte è diversa.

No, non vi dirò quello che non so per certo
... Ho fatto un esempio in cui per densità = infinito l'integrale = 1. Dal momento che ci sono zeri sul resto del dominio ...

E un'altra domanda per te.

Ho preso Excel. C'è anche una funzione gamma.race. conta la densità se cumulativa = false. per x = 0 la funzione produce un valore di #numero! Dalla guida:In Excel, questo errore si verifica quando una formula o una funzione contiene un valore numerico non valido.

Anche Excel riceve l'errore? Seguendo la tua logica. Forse puoi competere con loro anche in arguzia.

E aggiungete al vostro articolo menzionando che la funzione stat per la distribuzione gamma in Python restituisce valori R simili, e chiamate il feuilleton come segue: ci sono molti programmi in giro che rovinano la vostra ricerca con errori, e in MT abbiamo risolto tutti i vostri errori.

E a proposito, aggiungete una sezione sulle convenzioni adottate in MT5 per i valori non calcolabili.

E sto aspettando che la mia domanda sia moderata da R Core e la loro risposta. Anche se so cosa sarà... e poi mi ritirerò.
Motivazione: