[pstricks] More statistical distributions for pst-func

Herbert Voss Herbert.Voss at fu-berlin.de
Thu Aug 30 22:44:54 CEST 2007


halbard7 at aol.com wrote:
> ?Gamma distribution
> ?Chi-square distribution*
> ?Student's t distribution*
> ?Snedecor's F distribution*
>
> *These should be familiar to anyone who has studied Statistics A2 level.
>
> If you do incorporate these into pst-func, feel free to rename the functions and/or parameters as you think best.
>   
Gerry,
the package pst-math knows the PostScript function GAMMALN.
Using this one makes it easier to plot your distributions, which
are then default plots.

Herbert

\documentclass{article}
\usepackage{pst-func,pst-math,pst-xkey}

\makeatletter
\define at key[psset]{pst-func}{alpha}{\def\psk at alpha{#1 }} % gamma
\define at key[psset]{pst-func}{beta}{\def\psk at beta{#1 }} % gamma
\define at key[psset]{pst-func}{nue}{\def\psk at nue{#1 }} % t and F

% The gamma distribution with parameters $\alpha$, $\beta$ has pdf
% $f(x)=\frac{\beta(\beta x)^{\alpha-1}e^{-\beta x}}{\Gamma(\alpha)}$
% for $x>0$ and $\alpha$, $\beta>0$

\def\psGammaDist{\@ifnextchar[{\psGammaDist at i}{\psGammaDist at i[]}}
\def\psGammaDist at i[#1]#2#3{{%
    \pst at killglue%
    \psset{plotpoints=200,alpha=0.5,beta=0.5}%
    \psset{#1}%
     \psplot{#2}{#3}{%
      \psk at beta x mul \psk at alpha exp x div
      Euler \psk at beta neg x mul \psk at alpha GAMMALN sub exp mul
     }%
}\ignorespaces}

% The chi-square distribution with parameter $\nu$ is the same as
% a Gamma distribution with $\alpha=\nu/2$ and $\beta=1/2$

\def\psChiSqdist{\@ifnextchar[{\psChiSqdist at i}{\psChiSqdist at i[]}}
\def\psChiSqdist at i[#1]#2#3{{%
    \pst at killglue%
    \psset{plotpoints=200,nue=1}%
    \psset{#1}%
     \psplot{#2}{#3}{%
      x 2 div \psk at nue 2 div exp x div
      Euler -0.5 x mul \psk at nue 2 div GAMMALN sub exp mul
     }%
}\ignorespaces}

% The $t$-distribution with parameter $\nu$ has the density function
% $f(x)=\frac1{\sqrt{\nu\pi}}\times
% \frac{\Gamma[(\nu+1)/2]}{\Gamma(\nu/2)}\frac1{[1+(x^2/\nu)]^{(\nu+1)/2}}$
% for $-\infty<x<\infty$ and $\nu>0$

\def\psTdist{\@ifnextchar[{\psTdist at i}{\psTdist at i[]}}
\def\psTdist at i[#1]#2#3{{%
    \pst at killglue%
    \psset{plotpoints=200,nue=1}%
    \psset{#1}%
     \psplot{#2}{#3}{%
      1 x 2 exp \psk at nue div 1 add \psk at nue 1 add 2 div exp div
      \psk at nue Pi mul sqrt div
      Euler \psk at nue 1 add 2 div GAMMALN \psk at nue 2 div GAMMALN sub exp mul
     }%
}\ignorespaces}

% The F-distribution with parameters $\mu$ and $\nu$ has pdf
% $\frac{\Gamma[(\mu+\nu)/2]}{\Gamma(\mu/2)\Gamma(\nu/2)}\times
% (\mu/\nu)^{\mu/2}\frac{x^{(\mu/2)-1}{[1+(\mu x/\nu)]^{(\mu+\nu)/2}}$
% for $x>0$ and $\mu$, $\nu>0$

\def\psFdist{\@ifnextchar[{\psFdist at i}{\psFdist at i[]}}
\def\psFdist at i[#1]#2#3{{%
    \pst at killglue%
    \psset{plotpoints=200,mue=1,nue=1}%
    \psset{#1}%
     \psplot{#2}{#3}{%
      x \psk at mue mul \psk at nue div dup \psk at mue 2 div exp x div
      exch 1 add \psk at mue \psk at nue add 2 div exp div
      Euler \psk at mue \psk at nue add 2 div GAMMALN
      \psk at mue 2 div GAMMALN sub \psk at nue 2 div GAMMALN sub exp mul
     }%
}\ignorespaces}

\makeatother


\def\pshlabel#1{\tiny$#1$}
\let\psvlabel\pshlabel

\begin{document}

% Examples

\begin{pspicture}(-1,-0.1)(6,6)
 \psaxes{->}(0,0)(6,6)
 \psset{plotpoints=100,linewidth=1pt}
 \psplot[linecolor=red]{0.01}{5.5}{ x GAMMALN }
\end{pspicture}


\psset{xunit=1.2cm,yunit=10cm}
\begin{pspicture*}(-1,-0.1)(9.5,.65)
 \SpecialCoor
 \psaxes{->}(0,0)(-1,0)(9.5,.6)
 \psGammaDist[linewidth=1pt]{0.001}{9}
\end{pspicture*}


\begin{pspicture*}(-1,-0.1)(9.5,.65)
 \SpecialCoor
 \psaxes[Dy=0.1]{->}(0,0)(-1,0)(9.5,.6)
 \psChiSqdist[linewidth=1pt,nue=1]{0.001}{9}% like psGammaDist
 \psChiSqdist[nue=2]{0.001}{9}
 \psChiSqdist[nue=4]{0.001}{9}
 \psChiSqdist[nue=6]{0.001}{9}
\end{pspicture*}

The $\chi^2_\nu$-distribution has mode $\nu-2$ for $\nu\geq2$.

\psset{xunit=1cm,yunit=8cm}
\begin{pspicture}(-6,-0.1)(6,.5)
 \psaxes[Dy=0.1]{->}(0,0)(-6,0)(6.5,.5)
 \psset{linewidth=1pt}
 \psGauss[mue=0,sigma=1,linecolor=red]{-4}{4}
 \psTdist[nue=2]{-4}{4}
 \psTdist[nue=6]{-4}{4}
\end{pspicture}

The $t_\nu$-distribution has mode 0.

\psset{xunit=1.3cm,yunit=10cm}
\begin{pspicture}(-1,-0.1)(9.5,1.1)
 \SpecialCoor
 \psaxes[Dy=0.1]{->}(0,0)(-1,0)(9.5,1)
 \psline[linestyle=dashed](0.5,0)(0.5,1)
 \psline[linestyle=dashed](! 2 7 div 0)(! 2 7 div 1)
 \psset{linewidth=1pt}
 \psFdist[mue=12,nue=3,linecolor=red]{0.001}{9}
 \psFdist[mue=3,nue=12,linecolor=blue]{0.001}{9}
\end{pspicture}

The $F_{\mu,\nu}$-distribution has mode
$\frac{(\mu-2)\nu}{\mu(\nu+2)}$ for $\mu\geq2$.

\end{document}



More information about the PSTricks mailing list