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

 

Alexey Burnakov:
Ho iniziato a ricevere risposte alla mia domanda in R.

Corrispondenza continua con la stessa persona...


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

Sull'imputato: http://www.stats.uwo.ca/faculty/murdoch/other.shtml

In particolare:

Sonoun membro del gruppo di sviluppo del nucleo di R; vedi www.r-project.org per i dettagli sul progetto R. Mantengo laversione per Windows di R e houna pagina web di suggerimenti per chi scrive DLL per 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:

Beh, lo sai meglio tu.

Sì, più chiaramente e onestamente.

E non ho la capacità politica di abbozzare come un estraneo al forum.


Non esitate nemmeno a chiamare Matlab, Wolfram e Mathematics "non so chi sia".

Dammi un link a classifiche di pacchetti statistici che avevano Mathlab (Wolfram) al loro interno. Matlab lo era, ma è morto. Ho dato nel mio blog sul vostro sito e molte volte postato sul forum

Lei tace su cosa:

  • mostri il confronto tra R gratuito e i pacchetti a pagamento
  • lei ignora le posizioni storiche (5-10 anni fa) dei pacchetti matematici, affermando su questa base "non sono nessuno".
  • si cambia la popolarità e si discute la precisione dei calcoli

Matlab non è andato da nessuna parte, e nemmeno gli altri pacchetti. Sì, è pagato, ma è di qualità. Sì, la popolarità scenderà, ma la precisione e la qualità non vanno da nessuna parte.

Leggete di Wolfram Alpha e fate ricerche sul suo sito web - è un investimento fondamentale nell'analitica che pochi possono fare. E Wolfram Alpha ha una precisione di 30 cifre, il che dimostra la loro attenzione maniacale alla qualità del calcolo.

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
Вам

Purtroppo, lei ha formulato la domanda in modo incompleto e ha ricevuto una risposta mal concepita e brevemente educata "non importa".

Lei voleva una risposta "così concordata/convenzione" formulandola nella domanda stessa. Ma Duncan se l'è cavata con "ciò che è giusto" la prima volta e l'ha ripetuto la seconda volta.

Non hai avuto la prova della precisione in R e non hai avuto una risposta sul perché il risultato è diverso in altri pacchetti. La domanda "perché la risposta è diversa in altri pacchetti" è più importante e può essere più rivelatrice.


La nostra posizione:

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

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

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


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

R ritiene che si possa includere questo punto nel calcolo, ma prendere i valori limite anche se sono infiniti come nel caso di dgamma(0,0.5,1).

Tuttavia, se si calcolano le probabilità date all'infinito nel punto zero, tutti gli integrali di dgamma diventano formalmente infiniti e per questa logica pgamma dovrebbe essere uguale a infinito per tutti i valori di x.

Tuttavia, questo contraddice i risultati di pgamma, dove tutti i valori risultano essere finiti. Sono corretti, perché se nel punto x=0 si assume che la densità sia =0.
 

Per @SanSanych Fomenko - MQL4/MQL5 è salito al 41° posto nella classifica mondiale dei linguaggi di programmazione TIOBE: http://www.tiobe.com/tiobe-index/

R al 19° posto, Mathlab al 15° posto.

Questo per sfatare le vostre affermazioni sul "non essere un'autorità" e "non essere il top del mondo".

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...
 

Per non perdere il filo della discussione, ecco l'errore di calcolo dei quantili della distribuzione t non centrale trovato nel processo di test di R.

Per esempio:

> 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

L'algoritmo AS 243 proposto da Lenth [6] è usato per calcolare la probabilità della distribuzione T non centrale della distribuzione t di Student in R. Il vantaggio di questo metodo è il rapido calcolo della ricorrenza dei termini di serie infinita con funzioni beta incomplete. Tuttavia è stato dimostrato nell'articolo [7], che questo algoritmo porta ad errori dovuti all'errore nella stima della precisione quando si sommano i termini della serie (Tabella 2 nell'articolo [7]), specialmente per grandi valori del parametro di non centralità delta. Gli autori dell'articolo [7] hanno proposto un algoritmo corretto per il calcolo basato sulla ricorsività della probabilità di distribuzione T non centrale.

La nostra libreria statistica MQL5 utilizza l'algoritmo corretto per il calcolo delle probabilità dall'articolo [7], che dà risultati accurati.


Inoltre, in R, il modo in cui definiamo le densità per le distribuzioni Gamma, ChiSquare e Noncentral ChiSquare nel punto x=0 porta a espressioni infinite:

> 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

Così si scopre che il punto x=0 in R è incluso nel dominio di definizione dell'espressione per le densità e la soluzione sono i valori limite.

In questo caso, il valore limite a x=0 è infinito. In questo approccio, come risultato dell'integrazione da 0 a x>0, a causa della divergenza nel punto x=0, le probabilità dovrebbero essere infinite.

Tuttavia, il risultato del calcolo delle probabilità (ad esempio per x=0,1) è un'espressione 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

Nonostante il fatto che nel punto x=0 la densità sia considerata infinita, i risultati del calcolo delle probabilità in R non sono infiniti, coincidono con i valori di Wolfram Alpha(Gamma, ChiSquare, NoncentralChiSquare).

Per evitare problemi con l'integrazione di funzioni che vanno all'infinito a x=0, in Wolfram Alpha (Mathematica) e Matlab la densità nel punto x=0 è 0 per definizione:


Figura 3. Determinazione della densità di probabilità della distribuzione gamma in Wolfram Alpha


Fig.4. Determinazione della densità di probabilità della distribuzione ChiSquare in Wolfram Alpha



Fig. 5. Determinazione della funzione di densità di probabilità della distribuzione Noncentral ChiSquare in Wolfram Alpha


Pensiamo che questo approccio sia corretto. Permette di evitare incertezze nella funzione di densità di probabilità e risolve il problema dei valori infiniti, che possono verificarsi quando si integra la funzione di densità di probabilità.

Per questo motivo, nel punto x=0 le densità di queste distribuzioni sono assunte pari a zero per definizione, non infinite come in R.

Abbiamo incluso diversi script di test unitari nella consegna per essere sicuri che i calcoli siano accurati e per dare la possibilità a sviluppatori di terze parti di controllare la qualità della libreria.

Letteratura

  1. Il progetto R per il calcolo statistico.
  2. Balakrishnan N., Johnson N.L., Kotz S. "Distribuzioni univariate continue: parte 1". MOSCA: BINOM. Laboratorio della conoscenza, 2014.
  3. Balakrishnan N., Johnson N.L., Kotz S. "Distribuzioni continue univariate: parte 2 ". M.: BINOM. Laboratorio della conoscenza, 2014.
  4. Johnson N.L., Kotz S., Kemp A. "Distribuzioni discrete univariate", Mosca: BINOM. Knowledge Lab, 2014.
  5. Forbes C., Evans M., Hastings N., Peacock B., "Statistical Distributions", 4th Edition, John Wiley and Sons, 2011.
  6. Lenth, R.V., "Funzione di distribuzione cumulativa della distribuzione t non centrale", Applied Statistics, vol. 38 (1989), 185-189.
  7. D. Benton, K. Krishnamoorthy, "Calcolo di miscele discrete di distribuzioni continue: chisquare non centrale, t non centrale e la distribuzione del quadrato del coefficiente di correlazione multipla campione", 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:

Per @Sanych Fomenko - MQL4/MQL5 è 41° nella classifica mondiale dei linguaggi di programmazione TIOBE: http://www.tiobe.com/tiobe-index/

R al 19° posto, Mathlab al 15° posto.

Questo per sfatare le vostre affermazioni su "nessuna autorità" e "non in cima al mondo".

Sto discutendo di statistiche. E le mie classifiche per pacchetto statistico.

Inoltre. Nella citazione che hai citato, R è al di sopra di MQL4/5 in quelle statistiche per i linguaggi algoritmici. Ma questo NON è affatto un motivo per passare da MQL a R, per esempio. Non sto affatto discutendo le capacità algoritmiche di R.

Per me, la forza principale di R sono i suoi pacchetti, è il supporto di tutto questo sistema, è l'autorità delle persone che li hanno sviluppati, è un enorme ritrovo di R, dopo tutto un enorme numero di pubblicazioni legate a R.

Ma come qualcuno che è stato nei consigli scientifici per 15 anni. Se si scrive "analogo di R" allora è un analogo senza eccezioni. E non c'è altro modo per evitarlo. Altrimenti NON è un analogo di R, può anche essere molto più corretto, ma non è un analogo

 
SanSanych Fomenko:

Discuto di statistiche. E le mie valutazioni sui pacchetti statistici.

Inoltre. Nella citazione che citi, R è al di sopra di MQL4/5 in queste statistiche per i linguaggi algoritmici. Ma per me questo NON è affatto un motivo per passare da MQL a R, per esempio. Non sto affatto discutendo le capacità algoritmiche di R.

E stiamo discutendo un errore specifico nella R.

Quindi non preoccupatevi delle vostre valutazioni, dato che non conoscete la matematica e il caso particolare che state trattando.

 

SanSanych Fomenko:

...

Per me, la forza principale di R sono i suoi pacchetti, il supporto di tutto il sistema, l'autorità delle persone che li hanno sviluppati, un enorme ritrovo su R, alla fine un enorme numero di pubblicazioni legate a R.
...

Che cosa marcia è questa R - una bicicletta con ruote quadrate. Cosa dire di alcuni dei suoi pacchetti quando la base, cioè il kernel R, è storto e ha bisogno di una seria messa a punto con un "pencil file"? Che autorità può avere chi non si è nemmeno preoccupato di controllare la correttezza delle funzioni di base in R per così tanti anni? Quale può essere la "forza" nella debolezza di R - la scorrettezza dei calcoli attraverso di esso?

È bene che MetaQuotes ha aperto gli occhi di alcuni utenti al fatto e ai test con l'open source, così tutti potrebbero indipendentemente ricontrollare e assicurarsi, piuttosto che infondato. Non tutti, naturalmente, sono stati aperti, perché alcuni fanatici religiosi della setta distruttiva di R continueranno a credere ciecamente nell'"infallibilità" dei calcoli nel loro linguaggio e pacchetti storti, invece di rivolgersi ai test presentati e ricontrollarli essi stessi, ma non fanaticamente cazzate, difendendo la stortura di R come "standard generalmente accettato".

Ora è abbastanza ovvio che è meglio usare la funzionalità MQL per creare strategie di trading, perché il risultato sarà più corretto, piuttosto che cercare di farlo tramite curve e slash R.

Gli sviluppatori di MetaQuotes meritano un ringraziamento speciale per il loro approccio costruttivo, i test e le loro fonti, così come per l'identificazione del"Naked King - R"!

 
Quantum:
Non ci interessa la larghezza 0, dobbiamo capire come si comporta un tale integrale, cioè la cdf(x). Che tipo di funzione si ottiene, coincide con 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() trovato nel modo standard e integrare(dgamma()) quasi coincidono, vediamo che l'errore è solo3,460265e-11 a x=1. Tuttavia, un tale errore è abbastanza atteso poiché l'integrazione qui viene eseguita come una somma di piccoli passi, senza alcuna analisi preliminare o semplificazione. La funzione pgamma() stessa è scritta in C++ e dovrebbe essere più accurata di integrare(). Ecco perché dovreste usare pgamma(x,0.5,1) invece di integrare(dgamma(x,0.5,1),0,x)

 
Yury Reshetov:

Cosa si può dire di uno qualsiasi dei suoi pacchetti, quando il nucleo, cioè il kernel di R, è storto e ha bisogno di una seria messa a punto con "matita e lima"?

Il kernel R è storto e lento.

Se si divide la discussione in statistiche puramente classiche, che sono sia nella consegna di base che in pacchetti aggiuntivi, penso che non ci siano problemi qui. Se fate milioni di test statistici, le prestazioni di altri linguaggi (incluso MQL) saranno un vantaggio.

Se parliamo di programmazione R in generale, ti dirò, Yuri, la gente usa ancora pacchetti per l'elaborazione veloce dei dati (dplyr, data.table, e per i grafici - ggplot2). R stesso è di nuovo un linguaggio di scripting, antico, non progettato per dati massicci.

Ma nonostante tutto questo, il flusso di fango dalla vostra parte è ancora ingiustificatamente alto. Stavamo discutendo di statistiche qui, e non anche di refactoring del codice e altre cose tecniche. Era una discussione su concetti matematici.