Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 210

 

Alexey Burnakov:
Empecé a recibir respuestas a mi pregunta en R.

La correspondencia continua con la misma 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

Sobre el demandado: http://www.stats.uwo.ca/faculty/murdoch/other.shtml

En particular:

Soy miembro del grupo de desarrollo del núcleo de R; véase www.r-project.org para más detalles sobre el proyecto R. Mantengo laversión de Windows de R y tengouna página web de consejos para la gente que escribe DLLs para 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:

Bueno, tú lo sabes mejor.

Sí, con más claridad y honestidad.

Y no tengo la capacidad política para hacer un esbozo como persona ajena al foro.


No dude en llamar a Matlab, Wolfram y Mathematics "no sé quién es".

Dame un enlace a las clasificaciones de los paquetes estadísticos que tenían Mathlab (Wolfram) en ellos. Matlab lo era, pero ha fallecido. He dado en mi blog en su sitio y muchas veces publicado en el foro

Usted no dice nada sobre el hecho de que:

  • usted muestra la comparación de los paquetes gratuitos de R con los de pago
  • ignoras las posiciones históricas (hace 5-10 años) de los paquetes matemáticos, afirmando en base a ello que "no son nadie".
  • se cambia la popularidad y se discute la precisión de los cálculos

Matlab no se ha ido a ninguna parte, y los demás paquetes tampoco. Sí, es de pago, pero es de calidad. Sí, la popularidad bajará, pero la precisión y la calidad no van a ninguna parte.

Lea sobre Wolfram Alpha e investigue su sitio web: es una inversión fundamental en analítica que pocos pueden hacer. Y Wolfram Alpha tiene una precisión de 30 dígitos, lo que demuestra su maníaca atención a la calidad de los 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
Вам

Desgraciadamente, has formulado la pregunta de forma incompleta y has recibido una respuesta mal concebida y escueta de tipo "no importa".

Querías una respuesta "tan acordada/convencional" formulándola en la propia pregunta. Pero Duncan se libró de "lo que es correcto" la primera vez y lo repitió la segunda.

No obtuviste una prueba de precisión en R y no obtuviste una respuesta de por qué el resultado es diferente en otros paquetes. La pregunta "por qué la respuesta es diferente en otros envases" es más importante y puede ser más reveladora.


Nuestra posición:

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

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

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


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

R considera que puede incluir este punto en el cálculo, pero toma los valores límite aunque sean infinitos como en el caso de dgamma(0,0.5,1).

Sin embargo, si se calculan las probabilidades dadas al infinito en el punto cero, todas las integrales de dgamma se convierten formalmente en infinitas y por esta lógica pgamma debería ser igual a infinito para todos los valores de x.

Sin embargo, esto contradice los resultados de pgamma, donde todos los valores resultan ser finitos. Son correctos, ya que si en el punto x=0 se supone que la densidad es =0.
 

Para @SanSanych Fomenko - MQL4/MQL5 ha subido al puesto 41 en el ranking mundial de lenguajes de programación TIOBE: http://www.tiobe.com/tiobe-index/

R en el puesto 19, Mathlab en el 15.

Esto es para disipar sus afirmaciones sobre "no ser una autoridad" y "no ser el mejor del 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 no perder el hilo de la discusión, he aquí el error de cálculo de los cuantiles de la distribución t no central encontrada en el proceso de prueba de R.

Por ejemplo:

> 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

El algoritmo AS 243 propuesto por Lenth [6] se utiliza para calcular la probabilidad de la distribución T no central de la distribución t de Student en R. La ventaja de este método es el cálculo rápido de recurrencia de los términos de series infinitas con funciones beta incompletas. Sin embargo, se demostró en el documento [7], que este algoritmo conduce a errores debido al error en la estimación de la precisión al sumar los términos de la serie (Tabla 2 en el documento [7]), especialmente para valores grandes del parámetro de no centralidad delta. Los autores del artículo [7] propusieron un algoritmo corregido para el cálculo basado en la recurrencia de la probabilidad de la distribución T no central.

Nuestra biblioteca estadística MQL5 utiliza el algoritmo correcto para el cálculo de probabilidades del artículo [7] , que da resultados precisos.


Además, en R, la forma de definir las densidades para las distribuciones Gamma, ChiCuadrado y ChiCuadrado no central en el punto x=0 conduce a expresiones 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

Así resulta que el punto x=0 en R está incluido en el dominio de definición de la expresión de las densidades y la solución son los valores límite.

En este caso, el valor límite en x=0 es infinito. En este enfoque, como resultado de la integración de 0 a x>0, debido a la divergencia en el punto x=0, las probabilidades deberían ser infinitas.

Sin embargo, el resultado del cálculo de la probabilidad (por ejemplo, para x=0,1) es una expresión 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

A pesar de que en el punto x=0 la densidad se considera infinita, los resultados del cálculo de la probabilidad en R no son infinitos, coinciden con los valores de Wolfram Alpha(Gamma, ChiSquare, NoncentralChiSquare).

Para evitar problemas con la integración de funciones que giran al infinito en x=0, en Wolfram Alpha (Mathematica) y Matlab la densidad en el punto x=0 es 0 por definición:


Figura 3. Determinación de la densidad de probabilidad de la distribución Gamma en Wolfram Alpha


Fig.4. Determinación de la densidad de probabilidad de la distribución ChiSquare en Wolfram Alpha



Fig. 5. Determinación de la función de densidad de probabilidad de la distribución ChiSquare no central en Wolfram Alpha


Creemos que este enfoque es correcto. Permite evitar las incertidumbres en la función de densidad de probabilidad y resuelve el problema de los valores infinitos, que pueden producirse al integrar la función de densidad de probabilidad.

Por esta razón, en el punto x=0 las densidades de estas distribuciones se suponen nulas por definición, no infinitas como en R.

Hemos incluido varios scripts de pruebas unitarias en la entrega para estar seguros de que los cálculos son precisos y para dar la posibilidad a terceros desarrolladores de comprobar la calidad de la biblioteca.

Literatura

  1. El proyecto R para el cálculo estadístico.
  2. Balakrishnan N., Johnson N.L., Kotz S. "Distribuciones continuas univariantes: Parte 1". MOSCÚ: BINOM. Laboratorio del Conocimiento, 2014.
  3. Balakrishnan N., Johnson N.L., Kotz S. "Distribuciones continuas univariantes: parte 2 " . MOSCÚ: BINOM. Laboratorio del Conocimiento, 2014.
  4. Johnson N.L., Kotz S., Kemp A. "Univariate discrete distributions", Moscú: BINOM. Knowledge Lab, 2014.
  5. Forbes C., Evans M., Hastings N., Peacock B., "Statistical Distributions", 4ª edición, John Wiley and Sons, 2011.
  6. Lenth, R.V., 'Cumulative distribution function of the noncentral t distribution', 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 ocupa el puesto 41 en el ranking mundial de lenguajes de programación TIOBE: http://www.tiobe.com/tiobe-index/

R en el puesto 19, Mathlab en el 15.

Esto es para disipar sus afirmaciones sobre la "falta de autoridad" y la "no cima mundial".

Estoy hablando de estadísticas. Y mis clasificaciones por paquete estadístico.

Además. En la cita que has citado, R se sitúa por encima de MQL4/5 en esas estadísticas de lenguajes algorítmicos. Pero eso NO es una razón para que yo cambie de MQL a R, por ejemplo, en absoluto. No estoy discutiendo las capacidades algorítmicas de R en absoluto.

Para mí, la principal fuerza de R son sus paquetes, el soporte de todo este sistema, la autoridad de la gente que los ha desarrollado, el gran número de publicaciones vinculadas a R.

Pero como alguien que estuvo en consejos científicos durante 15 años. Si escribes "análogo de R" entonces es un análogo sin excepciones. Y NO hay otra forma de hacerlo. Por lo demás NO es un análogo de R, puede ser mucho más correcto, pero no es un análogo

 
SanSanych Fomenko:

Hablo de estadísticas. Y mis valoraciones sobre los paquetes estadísticos.

Además. En la cita que citas, R se sitúa por encima de MQL4/5 en estas estadísticas de lenguajes algorítmicos. Pero para mí eso NO es en absoluto una razón para cambiar de MQL a R, por ejemplo. No estoy discutiendo las capacidades algorítmicas de R en absoluto.

Y estamos discutiendo un error específico en la R.

Así que no te molestes con tus calificaciones, ya que no estás al tanto de las matemáticas y del caso particular que estás tratando.

 

SanSanych Fomenko:

...

Para mí, la principal fuerza de R son sus paquetes, el soporte de todo el sistema, la autoridad de la gente que los ha desarrollado, la gran afluencia de gente a R, en fin, un gran número de publicaciones ligadas a R.
...

Qué cosa más podrida es esta R: una bicicleta con ruedas cuadradas. ¿Qué decir de algunos de sus paquetes cuando la base, es decir, el núcleo de R, está torcido y necesita ser mejorado seriamente con un "archivo de lápiz"? ¿Qué credibilidad pueden tener quienes ni siquiera se han molestado en comprobar la corrección de las funciones básicas en R durante tantos años? ¿Cuál puede ser la "fuerza" en la debilidad de R - la incorrección de los cálculos a través de ella?

Es bueno que MetaQuotes haya abierto los ojos de algunos usuarios al hecho y a las pruebas con el código abierto, para que cada uno pueda comprobarlo de forma independiente y asegurarse, en lugar de hacerlo sin fundamento. No todos, por supuesto, se abrieron, porque algunos fanáticos religiosos de la secta destructiva de R seguirán creyendo ciegamente en la "infalibilidad" de los cálculos en su lenguaje y paquetes torcidos, en lugar de recurrir a las pruebas presentadas y comprobarlas por sí mismos, pero no fanáticamente, defendiendo lo torcido de R como "norma generalmente aceptada".

Ahora es bastante obvio que es mejor utilizar la funcionalidad de MQL para crear estrategias de trading, porque el resultado será más correcto, en lugar de intentar hacerlo a través de la curva y la barra R.

Los desarrolladores de MetaQuotes merecen un agradecimiento especial por su enfoque constructivo, sus pruebas y sus fuentes, ¡así como por la identificacióndel "Rey Desnudo - R"!

 
Quantum:
No nos interesa la anchura 0, necesitamos entender cómo se comporta dicha integral, es decir, la cdf(x). ¿Qué tipo de función se obtiene? ¿Coincidirá 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() encontrada de forma estándar e integrate(dgamma()) casi coinciden, vemos que el error es sólo3,460265e-11 en x=1. Sin embargo, este error es bastante esperado, ya que la integración aquí es una suma de pequeños pasos, sin ningún tipo de análisis y simplificaciones previas. La propia función pgamma() está escrita en C++ y debería ser más precisa que integrate(). Por eso debes usar pgamma(x,0,5,1) en lugar de integrate(dgamma(x,0,5,1),0,x)

 
Yury Reshetov:

¿Qué podemos decir de cualquiera de sus paquetes, cuando el núcleo, es decir, el núcleo de R, está torcido y necesita un serio ajuste con un "lápiz y una lima"?

El núcleo R está torcido y es lento.

Si se divide la discusión en estadísticas puramente clásicas, que están tanto en la entrega base como en los paquetes adicionales, creo que no hay ningún problema. Si realiza millones de pruebas estadísticas, el rendimiento de otros lenguajes (incluido MQL) será una ventaja.

Si hablamos de la programación en R en general, te diré, Yuri, que la gente vuelve a utilizar paquetes para el procesamiento rápido de datos (dplyr, data.table, y para los gráficos - ggplot2). El propio R es de nuevo un lenguaje de scripting, antiguo, no diseñado para datos masivos.

Pero incluso a pesar de todo esto, el flujo de lodo de su parte sigue siendo injustificadamente alto. Estábamos hablando de estadísticas, y ni siquiera de refactorización de código y otras cosas técnicas. Era una discusión de conceptos matemáticos.