統計関数の単純で高速な近似

仕事。計算機はありますが、手元に統計表はありませんたとえば信頼区間を計算するに、学生の分布の重要なポイントのテーブルが必要です。Excelを搭載したコンピューターを入手しますか?アスレチックではありません。



高い精度は必要ありません。近似式を使用できます。以下の式の考え方は、引数を変換することにより、すべての分布を何らかの形で通常に減らすことができるということです。近似は、累積分布関数の計算とその逆関数の計算の両方を提供する必要があります。



正規分布から始めましょう。



Φ((z=P=12[1+erf((z2]



z=Φ-1((P=2erf-1((2P-1



関数を計算する必要があります erf((バツそしてその逆です。私は近似を使用しました[1]:



erf((バツ=sgn((バツ1-exp((-バツ24π+aバツ21+aバツ2



erf-1((バツ=sgn((バツ-t2+t22-1alnt1



どこ t1 そして t2 -補助変数:



t1=1-バツ2t2=2πa+lnt12



と定数 a=0.147..。以下はオクターブ言語のコードです。



function y = erfa(x)
  a  = 0.147;
  x2 = x**2; t = x2*(4/pi + a*x2)/(1 + a*x2);
  y  = sign(x)*sqrt(1 - exp(-t));
endfunction

function y = erfinva(x)
  a  = 0.147; 
  t1 = 1 - x**2; t2 = 2/pi/a + log(t1)/2;
  y  = sign(x)*sqrt(-t2 + sqrt(t2**2 - log(t1)/a));
endfunction

function y = normcdfa(x)
  y = 1/2*(1 + erfa(x/sqrt(2)));
endfunction

function y = norminva(x)
  y = sqrt(2)*erfinva(2*x - 1);
endfunction


正規分布関数ができたので、引数を与えて、学生のt分布を計算します[2]。



Ft((バツn=Φ((1t1ln((1+バツ2n



t=Ft-1((Pn=nexp((Φ-1((P2t1-n



ここで補助変数 t1 有る



t1=n-1.5((n-12



function y = tcdfa(x,n)
  t1 = (n - 1.5)/(n - 1)**2;
 y = normcdfa(sqrt(1/t1*log(1 + x**2/n)));
endfunction

function y = tinva(x,n)
  t1 = (n - 1.5)/(n - 1)**2;
  y  = sqrt(n*exp(t1*norminva(x)**2) - n);
endfunction


分布を大まかに計算するという考え χ2 式[3]で明確に表されます。



σ2=2ナインnμ=1-σ2



Fχ2((バツn=Φ((((バツn1/3-μσ



χ2=Fχ2-1((Pn=n((Φ-1((Pσ+μ3



function y = chi2cdfa(x,n)
  s2 = 2/9/n; mu = 1 - s2;
  y  = normcdfa(((x/n)**(1/3) - mu)/sqrt(s2));
endfunction

function y = chi2inva(x,n)
 s2 = 2/9/n; mu = 1 - s2;
  y = n*(norminva(x)*sqrt(s2) + mu)**3;
endfunction


フィッシャー分布( n/k3 そして n3) . χ2 [4], , .



σ2=2ナインnμ=1-σ2



λ=2n+kバツ/3+((k-22n+4kバツ/3



Ff((バツ;kn=Φ((((λバツ1/3-μσ



, .



q=((Φ-1((Pσ+μ3



b=2n+k-2-4/3kq



D=b2+8/3knq



バツ=Ff-1((P;kn=-b+D2k/3



function y = fcdfa(x,k,n)
  mu = 1-2/9/k; s = sqrt(2/9/k);
  lambda = (2*n + k*x/3 + k-2)/(2*n + 4*k*x/3);
  normcdfa(((lambda*x)**(1/3)-mu)/s)
endfunction

function y = finva(x,k,n)
  mu = 1-2/9/k; s = sqrt(2/9/k);
  q = (norminva(x)*s + mu)**3;
  b = 2*n + k-2 -4/3*k*q;
  d = b**2 + 8/3*k*n*q;
  y = (sqrt(d) - b)/(2*k/3);
endfunction




  1. Sergei Winitzki. A handy approximation for the error function and its inverse. February 6, 2008.
  2. Gleason J.R. A note on a proposed Student t approximation // Computational statistics & data analysis. – 2000. – Vol. 34. – №. 1. – Pp. 63-66.
  3. Wilson E.B., Hilferty M.M. The distribution of chi-square // Proceedings of the National Academy of Sciences. – 1931. – Vol. 17. – №. 12. – Pp. 684-688.
  4. Li B. and Martin E.B. An approximation to the F-distribution using the chi-square distribution. Computational statistics & data analysis. – 2002. Vol. 40. – №. 1. pp. 21-26.



All Articles