Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее" - страница 15

 
MT5 у меня работает посредством wine в ubuntu 14
и да, система 32-битная
 

Либо я что-то напутал, либо есть проблема с вычислением эмпирической плотности. Всё выглядит так, словно при масштабировании были перепутаны оси:

#include <Math\Stat\Normal.mqh>
#include <Graphics\Graphic.mqh>
#define NR 1000
#define N 100
void OnStart()
  { double x[N], y[N], r[NR];
   if (!MathSequenceByCount(-1,1,N,x)) {Print("MathSequenceByCount() error "); return;}
   if (!MathProbabilityDensityNormal(x,0,1,y)) {Print("MathProbabilityDensityNormal() error "); return;}
   ChartSetInteger(0,CHART_SHOW,false);
   CGraphic graphic;
   graphic.Create(0,"G",0,0,0,750,350);
   graphic.CurveAdd(x,y,CURVE_LINES,"theor.");
   if (!MathRandomNormal(0,1,NR,r)) {Print("MathRandomNormal() error "); return;}
   if (!MathProbabilityDensityEmpirical(r,N,x,y)) {Print("MathProbabilityDensityEmpirical() error "); return;} 
   graphic.CurveAdd(x,y,CURVE_LINES,"empir.");
   graphic.CurvePlotAll();
   graphic.Update(); 
   Sleep(30000);
   ChartSetInteger(0,CHART_SHOW,true);
   graphic.Destroy(); 
  }

далеко

 

Ошибка при вычислении СКО

//+------------------------------------------------------------------+
//| Computes the variance of the values in array[]                   |
//+------------------------------------------------------------------+
double MathVariance(const double &array[])
  {
   int size=ArraySize(array);
//--- check data range
   if(size<2)
      return(QNaN); // need at least 2 observations
//--- calculate mean
   double mean=0.0;
   for(int i=0; i<size; i++)
      mean+=array[i];
   mean=mean/size;
//--- calculate variance
   double variance=0;
   for(int i=0; i<size; i++)
      variance+=MathPow(array[i]-mean,2);
   variance=variance/(size-1);
//--- return variance
   return(variance);
  }
 
fxsaber:

Ошибка при вычислении СКО

Это ответ кому-то или просто разговор сам с собою? Завтра посмотрю исходники , может ошибка там.

 
Rashid Umarov:

Это ответ кому-то или просто разговор сам с собою? Завтра посмотрю исходники , может ошибка там.

В статье описываются функции из Math.mqh, в частности. Выдрал исходник одной такой функции и подсветил ошибку.

 
fxsaber:

В статье описываются функции из Math.mqh, в частности. Выдрал исходник одной такой функции и подсветил ошибку.

это расчёт несмещённого, сиречь стандартного отклонения. То есть их, квадратичных как-бы два :-) если делить просто на size - то среднеквадратичное, если на size-1 то несмещённое или стандартное. В разных случаях применяются разные, но при большом size разница исчезающе мала
 
Maxim Kuznetsov:
это расчёт несмещённого, сиречь стандартного отклонения. То есть их, квадратичных как-бы два :-) если делить просто на size - то среднеквадратичное, если на size-1 то несмещённое или стандартное. В разных случаях применяются разные, но при большом size разница исчезающе мала

Да, так и есть

 
Maxim Kuznetsov:
это расчёт несмещённого, сиречь стандартного отклонения. То есть их, квадратичных как-бы два :-) если делить просто на size - то среднеквадратичное, если на size-1 то несмещённое или стандартное. В разных случаях применяются разные, но при большом size разница исчезающе мала

Зачем вводить то, что не работает при малых size и минимально отличается при больших?!

Так можно и в MathMean делить на (size-1). Почти никто и не заметит.


ЗЫ R то же считает через (size-1)? Проверил в маткаде - делит на size. Wolfram - на (size-1). Дебилизм.

Wolfram|Alpha: Computational Knowledge Engine
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...
 
fxsaber:

Зачем вводить то, что не работает при малых size и минимально отличается при больших?!

Так можно и в MathMean делить на (size-1). Почти никто и не заметит.

это вам на курс мат.статистики :-) Считайте это божественной истинной данной нам свыше и в виде ГОСТ
 
Maxim Kuznetsov:
это вам на курс мат.статистики :-) Считайте это божественной истинной данной нам свыше и в виде ГОСТ

Maple и Mathcad машут ручкой.

Причина обращения: