Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 200
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Makaledeki orijinal R hata ifadesine geri dönelim.
Görüşümüz geçerliliğini koruyor - hatalar var ve bunlar uygulamadaki ihmalden kaynaklanıyor.
R destek ekibine bir soru sormayı deneyeceğim.
Ve onun yaptığı gibi derine iner, her şeyi anlatır, birkaç haftayı tekrar kontrol ederek geçirirsiniz. Ama bunun yerine, makalemizi bile okumadın.
Kendi payımıza, işi yaptık. Ve iyi yaptılar. Wolfram sizin için bir otorite değilse, o zaman bu iletişim şekline boşuna başladınız.
Lütfen içerik oluşturucuları kullanıcılarla karıştırmayın.
Ve onun yaptığı gibi derine iner, her şeyi anlatır, birkaç haftayı tekrar kontrol ederek geçirirsiniz. Ama bunun yerine, makalemizi bile okumadın.
Kendi payımıza, işi yaptık. Ve iyi yaptılar. Wolfram sizin için bir otorite değilse, o zaman bu iletişim şekline boşuna başladınız.
Lütfen içerik oluşturucuları kullanıcılarla karıştırmayın.
0^0=1 olduğunu varsayan birçok formül vardır, örneğin polinomlar ve kuvvet serileri için notasyon, temel sayı aritmetiği, binom teoremi, vb., bunların tümü 0^0=1 olduğunu varsayar. Örneğin, x=0'ı x^0+x^1+x^2+... = 1/(1-x) olarak değiştirmek, 0^0 = 1'i gösterir.
Bir fonksiyon tanımlamanın, onun hesaplanma şeklini belirtmek anlamına geldiği gerçeğinden başlayabilirsiniz.
Azaltılmış ifadeAyrıca, göre:
https://en.wikipedia.org/wiki/Gamma_distribution
x = 0, alfa = 1, beta = 1 için pay, tüm kesri belirsizliğe getiren belirsiz bir değer alır.
Kesin olarak söylemek gerekirse, sıfır noktasındaki gama dağılımının yoğunluğunun tanımlanmadığını beyan ederiz. Ve sağdaki limiti alırken yoğunluk birliğe eşittir.
Bunun ışığında, "R'deki hesaplama hataları" ifadesinin formülasyonunun doğru olmadığına inanıyoruz. Daha doğrusu, bu bir uzlaşım meselesidir: sıfır ifadesinin sıfırın gücüne eşit olarak nasıl düşünüleceği. Gama dağılımının yoğunluğunu sıfır noktasında sıfıra eşitlemek, herhangi bir geleneksel uygulama gibi görünmüyor.
belirttiğiniz gibi x=0 noktasında bir belirsizlik içerdiğinden fonksiyon tanımlamaya uygun değildir.
x>=0 yerine x>0 koşulunu koyarsak belirsizlik olmayacak ve bu formülü kullanarak değerleri hesaplamak mümkün olacaktır.
Uygulamaya gelince - Mathematica ve Matlab, mühendislik hesaplamaları için endüstri standartları olarak kabul edilebilir, 0 verirler, yani. o zaman ifade sadece x>0 için geçerlidir.
Bir fonksiyon tanımlamanın, onun hesaplanma şeklini belirtmek anlamına geldiği gerçeğinden başlayabilirsiniz.
Azaltılmış ifadebelirttiğiniz gibi x=0 noktasında bir belirsizlik içerdiğinden fonksiyon tanımlamaya uygun değildir.
x>=0 yerine x>0 koşulunu koyarsak belirsizlik olmayacak ve bu formülü kullanarak değerleri hesaplamak mümkün olacaktır.
Uygulamaya gelince - Mathematica ve Matlab, mühendislik hesaplamaları için endüstri standartları olarak kabul edilebilir, 0 verirler, yani. o zaman ifade sadece x>0 için geçerlidir.
Mathematica ve Matlab, mühendislik hesaplamaları için endüstri standartları olarak kabul edilebilir
Çözümü olmayan bir durumu aldınız, Wolfram'ın döndürdüğü sonuca baktınız ve diğer tüm sonuçları yanlış olarak adlandırdınız. Bu mühendislik hesaplamaları değil, dogmadır.
Veya R'yi standart olarak alıp Wolfram'da bir hata bulma hakkında yazabilirler. Sanırım tüm matematiksel yazılımları alıp böyle bir durumda ne döndürdüklerine göre iki gruba ayırırsanız - %50 / %50 şeklinde bir bölme olacaktır, mql ile ilgili yazıya bir düzine softin daha ekleyebilirsiniz. mql'den üstündür.
AS 243'te belirtilen hatalar için teşekkür ederiz. Ancak, net bir çözümü olmayan parametrelerle diğer işlevlerin davranışını suçlamamalısınız.
Bu nedenle, mql'nin avantajları hakkında bir makale yazmak gerekiyordu - burada R'de 15 ondalık basamak hatası olan şöyle ve böyle bir işlev var. Ve mql'de daha doğru olan başka bir fonksiyonumuz var. Her şey kültürel ve bilimseldi ve şimdi olduğu gibi dogmatik değildi.
x=0 noktasında a=0.5, b=1 parametrelerine sahip bir örnek düşünün
x=0 noktasını hariç tutmazsanız, yoğunluk birbirinden uzaklaşır ve her şey olasılıkla uyumludur.
Ve sonra da sorun yok:
CDF R hesaplanırken x=0 noktasını hariç tutarken, sonsuzluğun bir yerde kaybolduğu ortaya çıktı.
Sevgili meslektaşım!
Birkaç sayfa için , fonksiyon tanımları alanının kenarlarında Vash ve R algoritmaları arasındaki farklar üzerinde bir anlaşmazlık var. Uç noktalar uç noktalardır ve uygulamada farklılıklar ihmal edilebilir.
Ancak bu durumda, çok daha önemli bir sorum var:
Tüm işlevleriniz için belgeler nerede?
Daha önce, işlevinizi aldığımızı düşündüm, sonra işlevleriniz analog olduğu için R belgelerini alıyoruz ve R belgelerinin algoritmaları tanımlayan veya R tarafından belirtilen bağlantıları izleyen bölümlerine dalıyoruz. R çok yüksek kaliteye sahip dokümantasyon ve referans aparatı.
Anlaşmazlık sırasında, işlevlerinizin R'den farklı olduğunu öğrendim - bunlar, algoritmaları başka kaynaklara dayanan diğer bazı işlevlerdir. Makalenin kendisinde bununla ilgili hiçbir şey yok, belge yok. Ve bunu Renat'tan tamamen farklı bir bağlamda öğreniyoruz.
Uygulamada, kodu R'den MQL5'e taşımanın imkansız olduğu konusunda kesin bir sonuç vardır.
Ve bu yüzden.
"R'nin bir analoğu" yazıyorsa ve bir analog için herhangi bir belge verilmemişse, bu %100 analogdur ve kodu yorumlayıcıdan derleyiciye zahmet etmeden aktarabilirim. Ve durum böyle değilse, kodu R'den MQL5'e taşıma fikrine son vermek için bir vaka yeterlidir. Çalışma kodunu R'ye taşırken, algoritmaların uygulanmasındaki incelikler nedeniyle çalışmayan MQL kodu aldığınızda, hiç kimse tamamen çıkmaz bir baş ağrısına sahip olmak istemez.
Tüm işlevleriniz için belgeler nerede?
Daha önce, işlevinizi aldığımızı düşündüm, sonra işlevleriniz analog olduğu için R belgelerini alıyoruz ve R belgelerinin algoritmaları tanımlayan veya R tarafından belirtilen bağlantıları izleyen bölümlerine dalıyoruz. R çok yüksek kaliteye sahip dokümantasyon ve referans aparatı.
Anlaşmazlık sırasında, işlevlerinizin R'den farklı olduğunu öğrendim - bunlar, algoritmaları başka kaynaklara dayanan diğer bazı işlevlerdir. Makalenin kendisinde bununla ilgili hiçbir şey yok, belge yok. Ve bunu Renat'tan tamamen farklı bir bağlamda öğreniyoruz.
Uygulamada, kodu R'den MQL5'e taşımanın imkansız olduğu konusunda kesin bir sonuç vardır.
Ve bu yüzden.
"R'nin bir analoğu" yazıyorsa ve bir analog için herhangi bir belge verilmemişse, bu %100 analogdur ve kodu yorumlayıcıdan derleyiciye zahmet etmeden aktarabilirim. Ve durum böyle değilse, kodu R'den MQL5'e taşıma fikrine son vermek için bir vaka yeterlidir. Çalışma kodunu R'ye taşırken, algoritmaların uygulanmasındaki incelikler nedeniyle çalışmayan MQL kodu aldığınızda, hiç kimse tamamen çıkmaz bir baş ağrısına sahip olmak istemez.
Şu anda, işlevlerin açıklaması https://www.mql5.com/ru/articles/2742 makalesinde yer almaktadır.
Normal dağılımın mu=2, sigma=1 parametreleriyle hesaplanması örneğini ele alalım:
n <- 10
k <- seq(0,1,by=1/n)
mu=2
sigma=1
normal_pdf<-dnorm(k, mu, sigma, log = FALSE)
normal_cdf<-pnorm(k, mu, sigma, lower.tail=TRUE,log.p = FALSE)
normal_quantile <- qnorm(normal_cdf, mu,sigma, lower.tail=TRUE,log.p = FALSE)
normal_pdf
normal_cdf
normal_quantile
1) dnorm() işlevinin R analoğu şu işlevdir:
Fonksiyon, bir dizi rastgele değişken x[] için mu ve sigma parametreleriyle normal dağılımın olasılık yoğunluk fonksiyonunun değerlerini hesaplar. Hata durumunda false döndürür. R'deki dnorm() analogu .
2) normal analog:
Fonksiyon, x[] rasgele değişkenler dizisi için mu ve sigma parametreleriyle normal olasılık dağılım fonksiyonunun değerini hesaplar. Hata durumunda false döndürür. R'deki pnorm() analogu .
3) qnorm analogu:
Olasılık[] dizisi olasılık değerleri için fonksiyon, mu ve sigma parametreleri ile ters normal dağılım fonksiyonunun değerlerini hesaplar. Hata durumunda false döndürür. R'deki qnorm() analogu .
Kullanımlarına bir örnek:
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart ()
{
//--- arrays for calculated values
double x_values[];
double normal_pdf[];
double normal_cdf[];
double normal_quantile[];
//--- prepare x values
const int N= 11 ;
ArrayResize (x_values,N);
for ( int i= 0 ;i<N;i++)
x_values[i]=i* 1.0 /(N- 1 );
//--- set distribution parameters
double mu= 2.0 ;
double sigma= 1.0 ;
//--- calculate pdf, cdf and quantiles
MathProbabilityDensityNormal(x_values,mu,sigma, false ,normal_pdf);
MathCumulativeDistributionNormal(x_values,mu,sigma, true , false ,normal_cdf);
MathQuantileNormal(normal_cdf,mu,sigma, true , false ,normal_quantile);
//--- show calculated values
for ( int i= 0 ;i<N;i++)
PrintFormat ( "1 %d, x=%.20e PDF=%.20e, CDF=%.20e, Q=%.20e," ,i,x_values[i],normal_pdf[i],normal_cdf[i],normal_quantile[i]);
}
Sonuç:
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 0, X = 0.000000000000000000E + 00 PDF = 5.39909665131880628364e-02, CDF = 2.27501319481792120547E-02, q = 0.000000000000000000E + 00,
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 1, X = 1.0000000000000055511E-01 PDF = 6.56158147746765951780E-02, CDF = 2.87165598160018034624E-02, q = 1.000000000000088818E-01,
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 2, X = 2.000000000000011102E-01 PDF = 7.89501583008941493214E-02, CDF = 3.59303191129258098213E-02, q = 2.000000000000177636e-01,
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 3, X = 2.999999999999999988898E-01 PDF = 9.40490773768869470217E-02, CDF = 4.45654627585430410108E-02, q = 3.000000000000266454e-01,
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 4, X = 4.000000000000022204E-01 PDF = 1.1092083467955543315E-01, CDF = 547992916995579740225E-02, q = 3.999999999999911182e-01
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 5, X = 5.000000000000000000E-01 PDF = 1.29517595665891743772e-01, CDF = 6.68072012688580713080E-02, Q = 5.000000000000222045E-01,
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 6, x = 5.99999999999999977796e-01 pdf = 1.49727465635744877437e-01, CDF = 8.07566592337710387195E-02, q = 6.00 milyar-01, q = 6.0000000000310862e-01
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 7, x = 6.999999999999999555591E-01 PDF = 1.71368542047807355438e-01, CDF = 9.68004845856103440793E-02, q = 7.000000000000177636e-01
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 8, X = 8.000000000000044409E-01 PDF = 1.94186054983212952330E-01, CDF = 1.1506967021708289515E-01, Q = 8.000000000000044409E-01,
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 9, X = 9.000000000000022204E-01 PDF = 2.17852177032550525793E-01, CDF = 1.35666060946382671659E-01, Q = 9.000000000000133227E-01,
2016.11.11 11: 56: 46.413 Test (EURUSD, H1) 1 10, X = 1.000000000000000000E + 00 PDF = 2.41970724519143365328E-01, CDF = 1.58655253931457046468E-01, q = 1.000000000000000000E + 00,
R için hesaplamanın sonucu: