Update docs to match implementation of $build_and_dump_html_index
[maxima.git] / doc / info / distrib.texi.m4
blob75c76514dd235e6ed6f1241173b22b726d3cc4f4
1 @c -*- mode: texinfo -*-
2 @menu
3 * Introduction to distrib::
4 * Functions and Variables for continuous distributions::
5 * Functions and Variables for discrete distributions::
6 @end menu
8 @c Define an m4 macro for the NormalRV function that is used below.
9 @c Can't use @macro because m4 is processed too late for this to work.
10 m4_define(<<<m4_Normal_RV>>>,
11 m4_math(<<<{\it Normal}($1, $2)>>>, <<<Normal($1, $2)>>>))
13 @c Define the function student t to denote Student's t random variable
14 m4_define(<<<m4_Student_T_RV>>>,
15 @math{t($1)})
17 @c Define noncentral Student's t RV
18 m4_define(<<<m4_Noncentral_T_RV>>>,
19 m4_math(<<<{\it nc\_t}($1, $2)>>>,<<<nc_t($1, $2)>>>))
21 @c Define Chi^2(n), the chi-squared random variate function.
22 m4_define(<<<m4_Chi2_RV>>>,
23 m4_math(<<<\chi^2($1)>>>, <<<Chi^2($2)>>>))
25 @c Define the Gamma RV
26 m4_define(<<<m4_Gamma_RV>>>,
27 m4_math(<<<\Gamma\left($1,$2\right)>>>, <<<Gamma($1,$2)>>>))
29 @c Define the noncentral chi-squared RV
30 m4_define(<<<m4_noncentral_chi2_RV>>>,
31 m4_math(<<<{\it nc\_Chi}^2($1,$2)>>>, <<<nc_Chi^2($1,$2)>>>))
33 @c Define the exponential RV
34 m4_define(<<<m4_Exponential_RV>>>,
35 m4_math(<<<{\it Exponential}($1)>>>, <<<Exponential($1)>>>))
37 @c Define the Weibull RV
38 m4_define(<<<m4_Weibull_RV>>>,
39 m4_math(<<<{\it Weibull}($1,$2)>>>, <<<Weibull($1,$2)>>>))
41 @c Define lognormal RV
42 m4_define(<<<m4_Lognormal_RV>>>,
43 m4_math(<<<{\it Lognormal}($1,$2)>>>,<<<Lognormal($1,$2)>>>))
45 @c Define beta RV
46 m4_define(<<<m4_Beta_RV>>>,
47 m4_math(<<<{\it Beta}($1,$2)>>>,<<<Beta($1,$2)>>>))
49 @c Define continuous uniform RV
50 m4_define(<<<m4_Continuous_Uniform_RV>>>,
51 m4_math(<<<{\it
52 ContinuousUniform}($1,$2)>>>,<<<ContinuousUniform($1,$2)>>>))
54 @c Define logistic RV
55 m4_define(<<<m4_Logistic_RV>>>,
56 m4_math(<<<{\it Logistic}($1,$2)>>>,<<<<Logistice($1,$2)>>>))
58 @c Define pareto RV
59 m4_define(<<<m4_Pareto_RV>>>,
60 m4_math(<<<{\it Pareto}($1,$2)>>>,<<<Pareto($1,$2)>>>))
62 @c Define Rayleigh RV
63 m4_define(<<<m4_Rayleigh_RV>>>,
64 m4_math(<<<{\it Rayleigh}($1)>>>,<<<Rayleigh($1)>>>))
66 @c Define Laplace RV
67 m4_define(<<<m4_Laplace_RV>>>,
68 m4_math(<<<{\it Laplace}($1,$2)>>>,<<<Laplace($1,$2)>>>))
70 @c Define Cauchy RV
71 m4_define(<<<m4_Cauchy_RV>>>,
72 m4_math(<<<{\it Cauchy}($1,$2)>>>,<<<Cauchy($1,$2)>>>))
74 @c Define Gumbel RV
75 m4_define(<<<m4_Gumbel_RV>>>,
76 m4_math(<<<{\it Gumbel}($1,$2)>>>,<<<Gumbel($1,$2)>>>))
78 @c Define Binomial RV
79 m4_define(<<<m4_Binomial_RV>>>,
80 m4_math(<<<{\it Binomial}($1,$2)>>>,<<<Binomial($1,$2)>>>))
82 @c Define Poisson RV
83 m4_define(<<<m4_Poisson_RV>>>,
84 m4_math(<<<{\it Poisson}($1)>>>,<<<Poisson($1)>>>))
86 @c Define Bernoulli RV
87 m4_define(<<<m4_Bernoulli_RV>>>,
88 m4_math(<<<{\it Bernoulli}($1)>>>,<<<Bernoulli($1)>>>))
90 @c Define Geometric RV
91 m4_define(<<<m4_Geometric_RV>>>,
92 m4_math(<<<{\it Geometric}($1)>>>,<<<Geometric($1)>>>))
94 @c Define Discrete Uniform RV
95 m4_define(<<<m4_DiscreteUniform_RV>>>,
96 m4_math(<<<{\it DiscreteUniform}($1)>>>,<<<DiscreteUniform($1)>>>))
98 @c Define Hypergeometric RV
99 m4_define(<<<m4_Hypergeometric_RV>>>,
100 m4_math(<<<{\it Hypergeometric}($1,$2,$3)>>>,<<<Hypergeometric($1,$2,$3)>>>))
102 @c Define Negative Binomial RV
103 m4_define(<<<m4_NegativeBinomial_RV>>>,
104 m4_math(<<<{\it NegativeBinomial}($1,$2)>>>,<<<NegativeBinomial($1,$2)>>>))
107 @node Introduction to distrib, Functions and Variables for continuous distributions, , Package distrib
108 @section Introduction to distrib
111 Package @code{distrib} contains a set of functions for making probability computations on both discrete and continuous univariate models. 
113 What follows is a short reminder of basic probabilistic related definitions.
115 Let @math{f(x)} be the @var{density function} of an absolute continuous random variable @math{X}. The @var{cumulative distribution function} is defined as
116 m4_displaymath(
117 <<<F\left(x\right)=\int_{ -\infty }^{x}{f\left(u\right)\;du}>>>,
119 @example
120                        x
121                       /
122                       [
123                F(x) = I     f(u) du
124                       ]
125                       /
126                        minf
127 @end example
128 >>>)
129 which equals the probability 
130 m4_mathdot(<<<{\rm Pr}(X \le x)>>>, <<<Pr(X <= x)>>>)
132 The @var{mean} value is a localization parameter and is defined as
133 m4_displaymath(
134 <<<E\left[X\right]=\int_{ -\infty }^{\infty }{x\,f\left(x\right)\;dx}>>>,
136 @example
137                      inf
138                     /
139                     [
140            E[X]  =  I   x f(x) dx
141                     ]
142                     /
143                      minf
144 @end example
145 >>>)
147 The @var{variance} is a measure of variation,
148 m4_displaymath(
149 <<<V\left[X\right]=\int_{ -\infty }^{\infty }{f\left(x\right)\,\left(x
150  -E\left[X\right]\right)^2\;dx}>>>,
152 @example
153                  inf
154                 /
155                 [                    2
156          V[X] = I     f(x) (x - E[X])  dx
157                 ]
158                 /
159                  minf
160 @end example
161 >>>)
162 which is a positive real number. The square root of the variance is
163 the @var{standard deviation}, 
164 m4_mathcomma(<<<D[x]=\sqrt{V[X]}>>>, <<<D[X]=sqrt(V[X])>>>) 
165 and it is another measure of variation.
167 The @var{skewness coefficient} is a measure of non-symmetry,
168 m4_displaymath(
169 <<<SK\left[X\right]={{\int_{ -\infty }^{\infty }{f\left(x\right)\,
170  \left(x-E\left[X\right]\right)^3\;dx}}\over{D\left[X\right]^3}}>>>,
172 @example
173                  inf
174                 /
175             1   [                    3
176   SK[X] = ----- I     f(x) (x - E[X])  dx
177               3 ]
178           D[X]  /
179                  minf
180 @end example
181 >>>)
183 And the @var{kurtosis coefficient} measures the peakedness of the distribution,
184 m4_displaymath(
185 <<<KU\left[X\right]={{\int_{ -\infty }^{\infty }{f\left(x\right)\,
186  \left(x-E\left[X\right]\right)^4\;dx}}\over{D\left[X\right]^4}}-3>>>,
188 @example
189                  inf
190                 /
191             1   [                    4
192   KU[X] = ----- I     f(x) (x - E[X])  dx - 3
193               4 ]
194           D[X]  /
195                  minf
196 @end example
197 >>>)
198 If @math{X} is gaussian, @math{KU[X]=0}. In fact, both skewness and kurtosis are shape parameters used to measure the non--gaussianity of a distribution.
200 If the random variable @math{X} is discrete, the density, or @var{probability}, function @math{f(x)} takes positive values within certain countable set of numbers @math{x_i}, and zero elsewhere. In this case, the cumulative distribution function is
201 m4_displaymath(
202 <<< F\left(x\right)=\sum_{x_{i}\leq x}{f\left(x_{i}\right)} >>>,
204 @example
205                        ====
206                        \
207                 F(x) =  >    f(x )
208                        /        i
209                        ====
210                       x <= x
211                        i
212 @end example
213 >>>)
215 The mean, variance, standard deviation, skewness coefficient and kurtosis coefficient take the form
216 m4_displaymath(
217 <<<\eqalign{
218 E\left[X\right]&=\sum_{x_{i}}{x_{i}f\left(x_{i}\right)}, \cr
219 V\left[X\right]&=\sum_{x_{i}}{f\left(x_{i}\right)\left(x_{i}-E\left[X\right]\right)^2},\cr
220 D\left[X\right]&=\sqrt{V\left[X\right]},\cr
221 SK\left[X\right]&={{\sum_{x_{i}}{f\left(x\right)\,
222  \left(x-E\left[X\right]\right)^3\;dx}}\over{D\left[X\right]^3}}, \cr
223 KU\left[X\right]&={{\sum_{x_{i}}{f\left(x\right)\,
224  \left(x-E\left[X\right]\right)^4\;dx}}\over{D\left[X\right]^4}}-3, 
225 }>>>,
227 @example
228           ====
229           \
230    E[X] =  >  x  f(x ) ,
231           /    i    i
232           ====
233            x 
234             i
236            ====
237            \                     2
238    V[X] =   >    f(x ) (x - E[X])  ,
239            /        i    i
240            ====
241             x
242              i
244           D[X] = sqrt(V[X]),
246                      ====
247               1      \                     3
248   SK[X] =  -------    >    f(x ) (x - E[X])  
249            D[X]^3    /        i    i
250                      ====
251                       x
252                        i
254                      ====
255               1      \                     4
256   KU[X] =  -------    >    f(x ) (x - E[X])   - 3 ,
257            D[X]^4    /        i    i
258                      ====
259                       x
260                        i
261 @end example
262 >>>)
263 respectively.
265 There is a naming convention in package @code{distrib}. Every function name has two parts, the first one makes reference to the function or parameter we want to calculate,
266 @example
267 Functions:
268    Density function            (pdf_*)
269    Distribution function       (cdf_*)
270    Quantile                    (quantile_*)
271    Mean                        (mean_*)
272    Variance                    (var_*)
273    Standard deviation          (std_*)
274    Skewness coefficient        (skewness_*)
275    Kurtosis coefficient        (kurtosis_*)
276    Random variate              (random_*)
277 @end example
279 The second part is an explicit reference to the probabilistic model,
280 @example
281 Continuous distributions:
282    Normal              (*normal)
283    Student             (*student_t)
284    Chi^2               (*chi2)
285    Noncentral Chi^2    (*noncentral_chi2)
286    F                   (*f)
287    Exponential         (*exp)
288    Lognormal           (*lognormal)
289    Gamma               (*gamma)
290    Beta                (*beta)
291    Continuous uniform  (*continuous_uniform)
292    Logistic            (*logistic)
293    Pareto              (*pareto)
294    Weibull             (*weibull)
295    Rayleigh            (*rayleigh)
296    Laplace             (*laplace)
297    Cauchy              (*cauchy)
298    Gumbel              (*gumbel)
300 Discrete distributions:
301    Binomial             (*binomial)
302    Poisson              (*poisson)
303    Bernoulli            (*bernoulli)
304    Geometric            (*geometric)
305    Discrete uniform     (*discrete_uniform)
306    hypergeometric       (*hypergeometric)
307    Negative binomial    (*negative_binomial)
308    Finite discrete      (*general_finite_discrete)
309 @end example
311 For example, @code{pdf_student_t(x,n)} is the density function of the Student distribution with @var{n} degrees of freedom, @code{std_pareto(a,b)} is the standard deviation of the Pareto distribution with parameters @var{a} and @var{b} and @code{kurtosis_poisson(m)} is the kurtosis coefficient of the Poisson distribution with mean @var{m}.
314 In order to make use of package @code{distrib} you need first to load it by typing
315 @example
316 (%i1) load("distrib")$
317 @end example
319 For comments, bugs or suggestions, please contact the author at @var{'riotorto AT yahoo DOT com'}.
321 @opencatbox{Categories:}
322 @category{Statistical functions}
323 @category{Share packages}
324 @category{Package distrib}
325 @closecatbox
330 @node Functions and Variables for continuous distributions, Functions and Variables for discrete distributions, Introduction to distrib, Package distrib
331 @section Functions and Variables for continuous distributions
332 Maxima knows the following kinds of continuous distributions.
334 @menu
335 * Normal Random Variable::
336 * Student's t Random Variable::
337 * Noncentral Student's t Random Variable::
338 * Chi-squared Random Variable::
339 * Noncentral Chi-squared Random Variable::
340 * F Random Variable::
341 * Exponential Random Variable::
342 * Lognormal Random Variable::
343 * Gamma Random Variable::
344 * Beta Random Variable::
345 * Continuous Uniform Random Variable::
346 * Logistic Random Variable::
347 * Pareto Random Variable::
348 * Weibull Random Variable::
349 * Rayleigh Random Variable::
350 * Laplace Random Variable::
351 * Cauchy Random Variable::
352 * Gumbel Random Variable::
353 @end menu
355 @node Normal Random Variable, Student's t Random Variable, Functions and Variables for continuous distributions, Functions and Variables for continuous distributions
356 @subsection Normal Random Variable
358 Normal random variables (also called Gaussian) is denoted
359 by 
360 m4_Normal_RV(m, s) 
361 where
362 @math{m} is the mean and @math{s > 0} is the standard deviation.
364 @anchor{pdf_normal}
365 @deffn {Function} pdf_normal (@var{x},@var{m},@var{s})
366 Returns the value at @var{x} of the density function of a 
367 m4_Normal_RV(m,s) 
368 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
370 The pdf is
371 m4_displaymath(
372 <<<f(x; m, s) = {1\over s\sqrt{2\pi}} e^{\displaystyle -{(x-m)^2\over 2s^2}}>>>,
374 @example
375                                  2
376                           (x - m)
377                         - --------
378                                2
379                             2 s
380                       %e
381       f(x, m, s) = -------------------
382                    sqrt(2) sqrt(%pi) s
383 @end example
384 >>>)
386 @opencatbox{Categories:}
387 @category{Package distrib}
388 @closecatbox
390 @end deffn
393 @anchor{cdf_normal}
394 @deffn {Function} cdf_normal (@var{x},@var{m},@var{s})
395 Returns the value at @var{x} of the cumulative distribution function of a 
396 m4_Normal_RV(m,s) 
397 random variable, with @math{s>0}. This function is defined in terms of Maxima's built-in error function @code{erf}.
399 The cdf can be written analytically:
400 m4_displaymath(
401 <<<F(x; m, s) = {1\over 2} + {1\over 2} {\rm erf}\left(x-m\over s\sqrt{2}\right)>>>,
403 @example
404                         x - m
405                   erf(---------)
406                       sqrt(2) s    1
407      F(x, m, s) = -------------- + -
408                         2          2
409 @end example
410 >>>)
412 @c ===beg===
413 @c load ("distrib")$
414 @c cdf_normal(x,m,s);
415 @c ===end===
416 @example
417 (%i1) load ("distrib")$
418 @group
419 (%i2) cdf_normal(x,m,s);
420                              x - m
421                        erf(---------)
422                            sqrt(2) s    1
423 (%o2)                  -------------- + -
424                              2          2
425 @end group
426 @end example
428 See also @mrefdot{erf}
430 @opencatbox{Categories:}
431 @category{Package distrib}
432 @closecatbox
434 @end deffn
437 @anchor{quantile_normal}
438 @deffn {Function} quantile_normal (@var{q},@var{m},@var{s})
439 Returns the @var{q}-quantile of a 
440 m4_Normal_RV(m,s) 
441 random variable, with @math{s>0}; in other words, this is the inverse of @mrefdot{cdf_normal} Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
443 @c ===beg===
444 @c load ("distrib")$
445 @c quantile_normal(95/100,0,1);
446 @c float(%);
447 @c ===end===
448 @example
449 (%i1) load ("distrib")$
450 @group
451 (%i2) quantile_normal(95/100,0,1);
452                                          9
453 (%o2)                sqrt(2) inverse_erf(--)
454                                          10
455 @end group
456 @group
457 (%i3) float(%);
458 (%o3)                   1.644853626951472
459 @end group
460 @end example
462 @opencatbox{Categories:}
463 @category{Package distrib}
464 @closecatbox
466 @end deffn
469 @anchor{mean_normal}
470 @deffn {Function} mean_normal (@var{m},@var{s})
471 Returns the mean of a 
472 m4_Normal_RV(m,s) 
473 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
475 The mean is
476 m4_displaymath(
477 <<<E[X] = m>>>,
479 @example
480                              E[X] = m
481 @end example
482 >>>)
484 @opencatbox{Categories:}
485 @category{Package distrib}
486 @closecatbox
488 @end deffn
491 @anchor{var_normal}
492 @deffn {Function} var_normal (@var{m},@var{s})
493 Returns the variance of a 
494 m4_Normal_RV(m,s) 
495 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
497 The variance is
498 m4_displaymath(
499 <<<V[X] = s^2>>>,
501 @example
502                                      2
503                              V[X] = s
504 @end example
505 >>>)
507 @opencatbox{Categories:}
508 @category{Package distrib}
509 @closecatbox
511 @end deffn
513 @anchor{std_normal}
514 @deffn {Function} std_normal (@var{m},@var{s})
515 Returns the standard deviation of a 
516 m4_Normal_RV(m,s) 
517 random variable, with @math{s>0}, namely @var{s}. To make use of this function, write first @code{load("distrib")}.
519 The standard deviation is
520 m4_displaymath(
521 <<<D[X] = s>>>,
523 @example
524                              D[X] = s
525 @end example
527 >>>)
528 @opencatbox{Categories:}
529 @category{Package distrib}
530 @closecatbox
532 @end deffn
535 @anchor{skewness_normal}
536 @deffn {Function} skewness_normal (@var{m},@var{s})
537 Returns the skewness coefficient of a 
538 m4_Normal_RV(m,s) 
539 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
541 The skewness coefficient is
542 m4_displaymath(
543 <<<SK[X] = 0>>>,
545 @example
546                              SK[X] = 0
547 @end example
548 >>>)
549 @opencatbox{Categories:}
550 @category{Package distrib}
551 @closecatbox
553 @end deffn
556 @anchor{kurtosis_normal}
557 @deffn {Function} kurtosis_normal (@var{m},@var{s})
558 Returns the kurtosis coefficient of a 
559 m4_Normal_RV(m,s) 
560 random variable, with @math{s>0}, which is always equal to 0. To make use of this function, write first @code{load("distrib")}.
562 The kurtosis coefficient is
563 m4_displaymath(
564 <<<KU[X] = 0>>>,
566 @example
567                              SK[X] = 0
568 @end example
570 >>>)
572 @opencatbox{Categories:}
573 @category{Package distrib}
574 @closecatbox
576 @end deffn
579 @anchor{random_normal}
580 @deffn {Function} random_normal (@var{m},@var{s}) @
581 @fname{random_normal} (@var{m},@var{s},@var{n})
583 Returns a 
584 m4_Normal_RV(m,s) 
585 random variate, with @math{s>0}. Calling @code{random_normal} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
587 This is an implementation of the Box-Mueller algorithm, as described in Knuth, D.E. (1981) @var{Seminumerical Algorithms. The Art of Computer Programming.} Addison-Wesley.
589 To make use of this function, write first @code{load("distrib")}.
591 @opencatbox{Categories:}
592 @category{Package distrib}
593 @category{Random numbers}
594 @closecatbox
596 @end deffn
598 @node Student's t Random Variable, Noncentral Student's t Random Variable, Normal Random Variable, Functions and Variables for continuous distributions
599 @subsection Student's t Random Variable
602 Student's t random variable is denoted by 
603 m4_Student_T_RV(n) 
604 where
605 @math{n} is the degrees of freedom with @math{n > 0}.  If @math{Z} is
607 m4_Normal_RV(0,1) 
608 variable and @math{V} is an
609 independent 
610 m4_math(\chi^2, chi^2) 
611 random variable with @math{n} degress of
612 freedom, then
614 m4_displaymath(
615 <<<Z \over \sqrt{V/n}>>>,
616 <<<@math{Z/sqrt(V/n)}>>>)
618 has a Student's @math{t}-distribution with @math{n} degrees of freedom.
620 @anchor{pdf_student_t}
621 @deffn {Function} pdf_student_t (@var{x},@var{n})
622 Returns the value at @var{x} of the density function of a Student
623 random variable 
624 m4_Student_T_RV(n)
625 , with @math{n>0} degrees of freedom. To make use of this function, write first @code{load("distrib")}.
627 The pdf is
628 m4_displaymath(
629 <<<f(x; n) = \left[\sqrt{n} B\left({1\over 2}, {n\over 2}\right)\right]^{-1}
630 \left(1+{x^2\over n}\right)^{\displaystyle -{n+1\over 2}}>>>,
632 @example
633                                      (- n) - 1
634                                2     ---------
635                       n + 1   x          2
636                 gamma(-----) (-- + 1)
637                         2     n
638       f(x, n) = ------------------------------
639                                   n
640                   sqrt(%pi) gamma(-) sqrt(n)
641                                   2
642 @end example
643 @math{(sqrt(n)*beta(1/2,n/2))^(-1) (1+x^2/n)^(-(n+1)/2)}>>>)
645 @opencatbox{Categories:}
646 @category{Package distrib}
647 @closecatbox
649 @end deffn
652 @anchor{cdf_student_t}
653 @deffn {Function} cdf_student_t (@var{x},@var{n})
654 Returns the value at @var{x} of the cumulative distribution function of a Student
655 random variable 
656 m4_Student_T_RV(n)
657 , with @math{n>0} degrees of freedom.
659 The cdf is
660 m4_displaymath(
661 <<<F(x; n) =
662 \cases{
663 1-\displaystyle{1\over 2} I_t\left({n\over 2}, {1\over 2}\right) & $x \ge 0$ \cr
665 \displaystyle{1\over 2} I_t\left({n\over 2}, {1\over 2}\right) & $x < 0$
666 }>>>,
668 @example
669          [ 1-1/2*I_t(n/2, 1/2)  x >= 0
670 F(x,n) = [
671          [ 1/2*I_t(n/2, 1/2)    x < 0
672 @end example
673 >>>)
675 where 
676 m4_math(<<<t = n/(n+x^2)>>>, <<<t = n/(n+x^2)>>>) 
677 and 
678 m4_math(<<<I_t(a,b)>>>, <<<I_t(a,b)>>>) 
679 is the
680 @ref{beta_incomplete_regularized} function.
682 @c ===beg===
683 @c load ("distrib")$
684 @c cdf_student_t(1/2, 7/3);
685 @c float(%);
686 @c ===end===
687 @example
688 (%i1) load ("distrib")$
689 @group
690 (%i2) cdf_student_t(1/2, 7/3);
691                                             7  1  28
692                 beta_incomplete_regularized(-, -, --)
693                                             6  2  31
694 (%o2)       1 - -------------------------------------
695                                   2
696 @end group
697 @group
698 (%i3) float(%);
699 (%o3)                  0.6698450596140415
700 @end group
701 @end example
703 @opencatbox{Categories:}
704 @category{Package distrib}
705 @closecatbox
707 @end deffn
710 @anchor{quantile_student_t}
711 @deffn {Function} quantile_student_t (@var{q},@var{n})
712 Returns the @var{q}-quantile of a Student random variable 
713 m4_Student_T_RV(n)
714 , with @math{n>0}; in other words, this is the inverse of @code{cdf_student_t}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
716 @opencatbox{Categories:}
717 @category{Package distrib}
718 @closecatbox
720 @end deffn
723 @anchor{mean_student_t}
724 @deffn {Function} mean_student_t (@var{n})
725 Returns the mean of a Student random variable 
726 m4_Student_T_RV(n)
727 , with @math{n>0}. To make use of this function, write first @code{load("distrib")}.
729 The mean is
730 m4_displaymath(
731 <<<E[X] = 0>>>,
733 @example
734                              E[X] = 0
735 @end example
736 >>>)
737 @opencatbox{Categories:}
738 @category{Package distrib}
739 @closecatbox
741 @end deffn
744 @anchor{var_student_t}
745 @deffn {Function} var_student_t (@var{n})
746 Returns the variance of a Student random variable 
747 m4_Student_T_RV(n)
748 , with @math{n>2}.
750 The variance is
751 m4_displaymath(
752 <<<V[X] = {n\over n-2}>>>,
754 @example
755                                     n
756                            V[X] = -----
757                                   n - 2
758 @end example
760 >>>)
761 @c ===beg===
762 @c load ("distrib")$
763 @c var_student_t(n);
764 @c ===end===
765 @example
766 (%i1) load ("distrib")$
767 @group
768 (%i2) var_student_t(n);
769                                 n
770 (%o2)                         -----
771                               n - 2
772 @end group
773 @end example
775 @opencatbox{Categories:}
776 @category{Package distrib}
777 @closecatbox
779 @end deffn
782 @anchor{std_student_t}
783 @deffn {Function} std_student_t (@var{n})
784 Returns the standard deviation of a Student random variable 
785 m4_Student_T_RV(n)
786 , with @math{n>2}. To make use of this function, write first @code{load("distrib")}.
788 The standard deviation is
789 m4_displaymath(
790 <<<D[X] = \sqrt{\displaystyle{n\over n-2}}>>>,
792 @example
793                                      n
794                        D[X] = sqrt(-----)
795                                    n - 2
796 @end example
798 >>>)
800 @opencatbox{Categories:}
801 @category{Package distrib}
802 @closecatbox
804 @end deffn
807 @anchor{skewness_student_t}
808 @deffn {Function} skewness_student_t (@var{n})
809 Returns the skewness coefficient of a Student random variable 
810 m4_Student_T_RV(n)
811 , with @math{n>3}, which is always equal to 0. To make use of this function, write first @code{load("distrib")}.
813 The skewness coefficient is
814 m4_displaymath(
815 <<<SK[X] = 0>>>,
817 @example
818                              SK[X] = 0
819 @end example
820 >>>)
822 @opencatbox{Categories:}
823 @category{Package distrib}
824 @closecatbox
826 @end deffn
829 @anchor{kurtosis_student_t}
830 @deffn {Function} kurtosis_student_t (@var{n})
831 Returns the kurtosis coefficient of a Student random variable 
832 m4_Student_T_RV(n)
833 , with @math{n>4}. To make use of this function, write first @code{load("distrib")}.
835 The kurtosis coefficient is
836 m4_displaymath(
837 <<<KU[X] = {6\over n-4}>>>,
839 @example
840                                     6
841                           KU[X] = -----
842                                   n - 4
843 @end example
844 >>>)
846 @opencatbox{Categories:}
847 @category{Package distrib}
848 @closecatbox
850 @end deffn
853 @anchor{random_student_t}
854 @deffn {Function} random_student_t (@var{n}) @
855 @fname{random_student_t} (@var{n},@var{m})
857 Returns a Student random variate 
858 m4_Student_T_RV(n)
859 , with @math{n>0}. Calling @code{random_student_t} with a second argument @var{m}, a random sample of size @var{m} will be simulated.
861 The implemented algorithm is based on the fact that if @math{Z} is a
862 normal random variable 
863 m4_Normal_RV(0,1) 
864 and @math{S^2} is
866 m4_math(\chi^2, chi squared) 
867 random variable with @math{n} degrees of
868 freedom, 
869 m4_Chi2_RV(n)
870 , then
872 m4_displaymath(
873 <<<X={{Z}\over{\sqrt{{S^2}\over{n}}}}>>>,
875 @example
876                            Z
877                  X = -------------
878                      /   2  \ 1/2
879                      |  S   |
880                      | ---  |
881                      \  n   /
882 @end example
883 >>>)
884 is a Student random variable with @math{n} degrees of freedom, 
885 m4_Student_T_RV(n)
888 To make use of this function, write first @code{load("distrib")}.
890 @opencatbox{Categories:}
891 @category{Package distrib}
892 @category{Random numbers}
893 @closecatbox
895 @end deffn
897 @node Noncentral Student's t Random Variable, Chi-squared Random Variable, Student's t Random Variable, Functions and Variables for continuous distributions
898 @subsection Noncentral Student's t Random Variable
900 Let @math{ncp} be the non-centrality parameter, @math{n} be the
901 degrees of freedom for the non-central Student's @math{t} random
902 variable.
904 Then let @math{X} be a 
905 m4_Normal_RV(n,ncp) 
906 and @math{S^2} be an
907 independent 
908 m4_math(\chi^2, chi squared) 
909 random variable with @math{n} degrees of freedom, the
910 random variable
911 m4_displaymath(
912 <<<U = {X \over \sqrt{S^2\over n}}>>>,
913 <<<@math{U = X/sqrt(S^2/n)}>>>)
915 has a non-central Student's @math{t} distribution with non-centrality
916 parameter @math{ncp}.
918 @anchor{pdf_noncentral_student_t}
919 @deffn {Function} pdf_noncentral_student_t (@var{x},@var{n},@var{ncp})
920 Returns the value at @var{x} of the density function of a noncentral
921 Student random variable 
922 m4_Noncentral_T_RV(n,ncp)
923 , with @math{n>0} degrees of freedom and noncentrality parameter @math{ncp}. To make use of this function, write first @code{load("distrib")}.
925 The pdf is
926 m4_displaymath(
927 <<<f(x; n, \mu) = \left[\sqrt{n} B\left({1\over 2}, {n\over
928 2}\right)\right]^{-1}\left(1+{x^2\over n}\right)^{-{(n+1)/2}}
929 e^{-\mu^2/ 2}
930 \bigg[A_n(x; \mu) + B_n(x; \mu)\bigg]>>>,
932 @example
933                            2
934                          mu          (- n) - 1
935                        - ---         ---------
936                           2    2         2
937                      %e      (x  + 1)          (B(x, n, mu) + An(x, n, mu))
938 f(x;n,mu) =          -------------------------------------------------
939                                          1  n
940                                     beta(-, -) sqrt(n)
941                                          2  2
943 @end example
944 >>>)
945 where
946 m4_displaymath(
947 <<<\eqalign{
948 A_n(x;\mu) &= {}_1F_1\left({n+1\over 2}; {1\over 2}; {\mu^2 x^2\over
949 2\left(x^2+n\right)}\right) \cr
950 B_n(x;\mu) &= {\sqrt{2}\mu x \over \sqrt{x^2+n}} {\Gamma\left({n\over
951 2} + 1\right)\over \Gamma\left({n+1\over 2}\right)}\;
952 {}_1F_1\left({n\over 2} + 1; {3\over 2}; {\mu^2 x^2\over
953 2\left(x^2+n\right)}\right)
954 }>>>,
956 @example
957                                         2  2
958                        n + 1    1     mu  x
959  A(x, n, mu) = %f    ([-----], [-], ----------)
960                  1, 1    2      2       2
961                                     2 (x  + n)
963                                                    2  2
964                                   n        3     mu  x           n
965                sqrt(2) mu %f    ([- + 1], [-], ----------) gamma(- + 1) x
966                             1, 1  2        2       2             2
967                                                2 (x  + n)
968  B(x, n, mu) = ----------------------------------------------------------
969                                      n + 1        2
970                                gamma(-----) sqrt(x  + n)
971                                        2
972 @end example
973 >>>)
974 and 
975 m4_math(\mu, mu) 
976 is the non-centrality parameter @math{ncp}.
978 Sometimes an extra work is necessary to get the final result.
980 @c ===beg===
981 @c load ("distrib")$
982 @c expand(pdf_noncentral_student_t(3,5,0.1));
983 @c float(%);
984 @c ===end===
985 @example
986 (%i1) load ("distrib")$
987 @group
988 (%i2) expand(pdf_noncentral_student_t(3,5,0.1));
989 rat: replaced 0.01889822365046136 by 15934951/843198350 = 0.01889822365046136
991 rat: replaced -8.734356480209641 by -294697965/33740089 = -8.734356480209641
993 rat: replaced 4.136255165816327 by 51033443/12338079 = 4.136255165816332
995 rat: replaced 1.08061432164203 by 56754827/52520891 = 1.08061432164203
997 rat: replaced 0.0565127306411839 by 5608717/99246965 = 0.05651273064118384
999 rat: replaced -300.8069396896258 by -79782423/265228 = -300.8069396896256
1001 rat: replaced 160.6269176184973 by 178374907/1110492 = 160.626917618497
1002                            7/2                         7/2
1003       0.04296414417400905 5      1.323650307289301e-6 5
1004 (%o2) ------------------------ + -------------------------
1005          3/2   5/2                       sqrt(%pi)
1006         2    14    sqrt(%pi)
1007                                                               7/2
1008                                          1.94793720435093e-4 5
1009                                        + ------------------------
1010                                                    %pi
1011 @end group
1012 @group
1013 (%i3) float(%);
1014 (%o3)                  0.02080593159405671
1015 @end group
1016 @end example
1018 @opencatbox{Categories:}
1019 @category{Package distrib}
1020 @closecatbox
1022 @end deffn
1025 @anchor{cdf_noncentral_student_t}
1026 @deffn {Function} cdf_noncentral_student_t (@var{x},@var{n},@var{ncp})
1027 Returns the value at @var{x} of the cumulative distribution function of a
1028 noncentral Student random variable 
1029 m4_Noncentral_T_RV(n,ncp)
1030 , with @math{n>0} degrees of freedom and noncentrality parameter @math{ncp}. This function has no closed form and it is numerically computed.
1032 @c ===beg===
1033 @c load ("distrib")$
1034 @c cdf_noncentral_student_t(-2,5,-5);
1035 @c ===end===
1036 @example
1037 (%i1) load ("distrib")$
1038 @group
1039 (%i2) cdf_noncentral_student_t(-2,5,-5);
1040 (%o2)                   0.995203009331975
1041 @end group
1042 @end example
1044 @opencatbox{Categories:}
1045 @category{Package distrib}
1046 @closecatbox
1048 @end deffn
1051 @anchor{quantile_noncentral_student_t}
1052 @deffn {Function} quantile_noncentral_student_t (@var{q},@var{n},@var{ncp})
1053 Returns the @var{q}-quantile of a noncentral Student random variable 
1054 m4_Noncentral_T_RV(n,ncp)
1055 , with @math{n>0} degrees of freedom and noncentrality parameter @math{ncp}; in other words, this is the inverse of @code{cdf_noncentral_student_t}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
1057 @opencatbox{Categories:}
1058 @category{Package distrib}
1059 @closecatbox
1061 @end deffn
1064 @anchor{mean_noncentral_student_t}
1065 @deffn {Function} mean_noncentral_student_t (@var{n},@var{ncp})
1066 Returns the mean of a noncentral Student random variable 
1067 m4_Noncentral_T_RV(n,ncp)
1068 , with @math{n>1} degrees of freedom and noncentrality parameter @math{ncp}. To make use of this function, write first @code{load("distrib")}.
1070 The mean is
1071 m4_displaymath(
1072 <<<E[X] = {\mu \sqrt{n}\; \Gamma\left(\displaystyle{n-1\over 2}\right) \over
1073 \sqrt{2}\;\Gamma\left(\displaystyle{n\over 2}\right)}>>>,
1075 @example
1076                    n - 1
1077           mu gamma(-----) sqrt(n)
1078                      2
1079 E[X] =    -----------------------
1080                            n
1081              sqrt(2) gamma(-)
1082                            2
1083 @end example
1084 >>>)
1086 where 
1087 m4_math(\mu, mu) 
1088 is the noncentrality parameter @math{ncp}.
1090 @c ===beg===
1091 @c load ("distrib")$
1092 @c mean_noncentral_student_t(df,k);
1093 @c ===end===
1094 @example
1095 (%i1) load ("distrib")$
1096 @group
1097 (%i2) mean_noncentral_student_t(df,k);
1098                           df - 1
1099                     gamma(------) sqrt(df) k
1100                             2
1101 (%o2)               ------------------------
1102                                      df
1103                        sqrt(2) gamma(--)
1104                                      2
1105 @end group
1106 @end example
1108 @opencatbox{Categories:}
1109 @category{Package distrib}
1110 @closecatbox
1112 @end deffn
1115 @anchor{var_noncentral_student_t}
1116 @deffn {Function} var_noncentral_student_t (@var{n},@var{ncp})
1117 Returns the variance of a noncentral Student random variable 
1118 m4_Noncentral_T_RV(n,ncp)
1119 , with @math{n>2} degrees of freedom and noncentrality parameter @math{ncp}. To make use of this function, write first @code{load("distrib")}.
1121 The variance is
1122 m4_displaymath(
1123 <<<V[X] = {n(\mu^2+1)\over n-2} - {n\mu^2\; \Gamma\left(\displaystyle{n-1\over 2}\right)^2
1124 \over 2\Gamma\left(\displaystyle{n\over 2}\right)^2}>>>,
1126 @example
1127                              2 n - 1       2
1128                2        gamma (-----) n ncp
1129          n (ncp  + 1)            2
1130 V[X] =   ------------ - --------------------
1131             n - 2                  2 n
1132                             2 gamma (-)
1133                                      2
1134 @end example
1135 >>>)
1137 where 
1138 m4_math(\mu, mu) 
1139 is the noncentrality parameter @math{ncp}.
1141 @opencatbox{Categories:}
1142 @category{Package distrib}
1143 @closecatbox
1145 @end deffn
1148 @anchor{std_noncentral_student_t}
1149 @deffn {Function} std_noncentral_student_t (@var{n},@var{ncp})
1150 Returns the standard deviation of a noncentral Student random variable 
1151 m4_Noncentral_T_RV(n,ncp)
1152 , with @math{n>2} degrees of freedom and noncentrality parameter @math{ncp}. To make use of this function, write first @code{load("distrib")}.
1154 The standard deviation is
1155 m4_displaymath(
1156 <<<D[X] = \sqrt{{n(\mu^2+1)\over n-2} - {n\mu^2\; \Gamma\left(\displaystyle{n-1\over 2}\right)^2
1157 \over 2\Gamma\left(\displaystyle{n\over 2}\right)^2}}>>>,
1159 @example
1160                              2 n - 1       2
1161                     2        gamma (-----) n ncp
1162               n (ncp  + 1)            2
1163 D[X] =   sqrt(------------ - --------------------)
1164                  n - 2                  2 n
1165                                  2 gamma (-)
1166                                           2
1167 @end example
1168 >>>,
1169 <<<>>>)
1171 @opencatbox{Categories:}
1172 @category{Package distrib}
1173 @closecatbox
1175 @end deffn
1178 @anchor{skewness_noncentral_student_t}
1179 @deffn {Function} skewness_noncentral_student_t (@var{n},@var{ncp})
1180 Returns the skewness coefficient of a noncentral Student random
1181 variable 
1182 m4_Noncentral_T_RV(n,ncp)
1183 , with @math{n>3} degrees of freedom and noncentrality parameter @math{ncp}. To make use of this function, write first @code{load("distrib")}.
1185 @c The TeX form is obtained from
1186 @c tex(skewness_noncentral_student_t(n,mu)).  Likewise the info form
1187 @c is just cut-n-pasted from maxima's terminal output.
1188 If @math{U} is a non-central Student's @math{t} random variable with
1189 @math{n} degrees of freedom and a noncentrality parameter 
1190 m4_mathcomma(\mu, mu) 
1191 the skewness is
1192 m4_displaymath(
1193 <<<\eqalign{
1194 SK[U] &= 
1195 {\mu\sqrt{n}\,\Gamma\left({{n-1}\over{2}}\right)
1196 \over{\sqrt{2}\Gamma\left({{n
1197  }\over{2}}\right)\sigma^{3}}}\left({{n
1198  \left(2n+\mu^2-3\right)}\over{\left(n-3\right)\left(n-2\right)}}
1199  -2\sigma^2\right) \cr
1200  \sigma^2 &= {{n\left(\mu^2+1\right)}\over{n-2}}-{{n \mu^2\,
1201  \Gamma\left({{n-1}\over{2}}\right)^2}\over{2\Gamma\left({{n
1202  }\over{2}}\right)^2}}
1204 >>>,
1206 @example
1207 SK[U] = 
1208                                      2
1209           n - 1           n (2 n + mu  - 3)
1210 (mu gamma(-----) sqrt(n) (-----------------
1211             2              (n - 3) (n - 2)
1212                       2      2 n - 1
1213          2          mu  gamma (-----) n
1214       (mu  + 1) n                2
1215  - 2 (----------- - -------------------)))
1216          n - 2                 2 n
1217                         2 gamma (-)
1218                                  2
1219                                     2      2 n - 1
1220                        2          mu  gamma (-----) n
1221                 n   (mu  + 1) n                2      3/2
1222 /(sqrt(2) gamma(-) (----------- - -------------------)   )
1223                 2      n - 2                 2 n
1224                                       2 gamma (-)
1225                                                2
1226 @end example
1227 >>>)
1229 @opencatbox{Categories:}
1230 @category{Package distrib}
1231 @closecatbox
1233 @end deffn
1236 @anchor{kurtosis_noncentral_student_t}
1237 @deffn {Function} kurtosis_noncentral_student_t (@var{n},@var{ncp})
1238 Returns the kurtosis coefficient of a noncentral Student random
1239 variable 
1240 m4_Noncentral_T_RV(n,ncp)
1241 , with @math{n>4} degrees of freedom and noncentrality parameter @math{ncp}. To make use of this function, write first @code{load("distrib")}.
1243 If @math{U} is a non-central Student's @math{t} random variable with
1244 @math{n} degrees of freedom and a noncentrality parameter 
1245 m4_mathcomma(\mu, mu) 
1246 the kurtosis is
1248 @c The formula we see can be basically derived by computing
1249 @c (kurtosis_noncentral_student_t(n,mu)+3)*var_noncentral_student_t(n,mu)^2,
1250 @c which comes from the definition of kurtosis.  The rest is then
1251 @c obtained by replacing a constant by F.
1252 m4_displaymath(
1253 <<<\eqalign{
1254 KU[U] &=
1255 {\mu_4\over \sigma^4} - 3\cr
1256   \mu_4 &= {{\left(\mu^4+6\mu^2+3\right)n^2}\over{(n-4)(n-2)}}
1257  -\left({{n\left(3(3n-5)+\mu^2(n+1)\right)
1258  }\over{(n-3)(n-2)}}-3\sigma^2\right) F \cr
1259  \sigma^2 &= {{n\left(\mu^2+1\right)}\over{n-2}}-{{n \mu^2
1260  \Gamma\left({{n-1}\over{2}}\right)^2}\over{2\Gamma\left({{n
1261  }\over{2}}\right)^2}} \cr
1262  F &= {n\mu^2\Gamma\left({n-1\over 2}\right)^2 \over
1263  2\sigma^4\Gamma\left({n\over 2}\right)^2}
1264 }>>>,
1266 @example
1267 KU[U] = 
1268     4       2       2
1269  (mu  + 6 mu  + 3) n       2      2 n - 1
1270 (-------------------- - (mu  gamma (-----) n
1271    (n - 4) (n - 2)                    2
1272                                                      2      2 n - 1
1273                      2                  2          mu  gamma (-----) n
1274   n (3 (3 n - 5) + mu  (n + 1))      (mu  + 1) n                2
1275  (----------------------------- - 3 (----------- - -------------------)))
1276          (n - 3) (n - 2)                n - 2                 2 n
1277                                                        2 gamma (-)
1278                                                                 2
1279                                  2      2 n - 1
1280                     2          mu  gamma (-----) n
1281          2 n     (mu  + 1) n                2      2
1282 /(2 gamma (-)))/(----------- - -------------------)  - 3
1283            2        n - 2                 2 n
1284                                    2 gamma (-)
1285                                             2
1286 @end example
1287 >>>)
1289 @opencatbox{Categories:}
1290 @category{Package distrib}
1291 @closecatbox
1293 @end deffn
1296 @anchor{random_noncentral_student_t}
1297 @deffn {Function} random_noncentral_student_t (@var{n},@var{ncp}) @
1298 @fname{random_noncentral_student_t} (@var{n},@var{ncp},@var{m})
1300 Returns a noncentral Student random variate 
1301 m4_Noncentral_T_RV(n,ncp)
1302 , with @math{n>0}. Calling @code{random_noncentral_student_t} with a third argument @var{m}, a random sample of size @var{m} will be simulated.
1304 The implemented algorithm is based on the fact that if @var{X} is a
1305 normal random variable 
1306 m4_Normal_RV(ncp,1) 
1307 and @math{S^2} is
1309 m4_math(\chi^2, chi square) 
1310 random variable with @var{n} degrees of freedom, 
1311 m4_Chi2_RV(n)
1312 , then
1313 m4_displaymath(
1314 <<<U={{X}\over{\sqrt{{S^2}\over{n}}}}>>>,
1316 @example
1317                            X
1318                  U = -------------
1319                      /   2  \ 1/2
1320                      |  S   |
1321                      | ---  |
1322                      \  n   /
1323 @end example
1324 >>>)
1325 is a noncentral Student random variable with @math{n} degrees of
1326 freedom and noncentrality parameter @math{ncp}, 
1327 m4_Noncentral_T_RV(n,ncp)
1330 To make use of this function, write first @code{load("distrib")}.
1332 @opencatbox{Categories:}
1333 @category{Package distrib}
1334 @category{Random numbers}
1335 @closecatbox
1337 @end deffn
1340 @node Chi-squared Random Variable, Noncentral Chi-squared Random Variable, Noncentral Student's t Random Variable, Functions and Variables for continuous distributions
1341 @subsection Chi-squared Random Variable
1343 Let 
1344 m4_math(<<<X_1, X_2, \ldots, X_n>>>, <<<X_1, X_2, ...,
1345 X_k>>>) 
1346 be independent and identically distributed 
1347 m4_Normal_RV(0,1) 
1348 variables.  Then
1349 m4_displaymath(
1350 <<<X^2 = \sum_{i=1}^n X_i^2>>>,
1351 <<<@math{X^2 = sum(X_i^2, i, 1, n)}>>>)
1353 is said to follow a chi-square distribution with @math{n} degrees of
1354 freedom.
1356 @anchor{pdf_chi2}
1357 @deffn {Function} pdf_chi2 (@var{x},@var{n})
1358 Returns the value at @var{x} of the density function of a Chi-square
1359 random variable 
1360 m4_Chi2_RV(n)
1361 , with @math{n>0}.
1362 The 
1363 m4_Chi2_RV(n) 
1364 random variable is equivalent to the 
1365 m4_Gamma_RV(n/2,2)
1368 The pdf is
1370 m4_displaymath(
1371 <<<f(x; n) =
1372 \cases{
1373  \displaystyle{x^{n/2-1} e^{-x/2} \over 2^{n/2}
1374  \Gamma\left(\displaystyle{n\over 2}\right)} & for $x
1375  > 0$ \cr
1377  0 & otherwise
1378 }>>>,
1380 @example
1381              [  n/2 - 1   - x/2
1382              [ x        %e      unit_step(x)
1383              [ -----------------------------     for x >= 0
1384              [               n   n/2
1385    f(x, n) = [         gamma(-) 2
1386              [               2
1387              [
1388              [ 0                                 otherwise
1389 @end example
1390 >>>)
1392 @c ===beg===
1393 @c load ("distrib")$
1394 @c pdf_chi2(x,n);
1395 @c ===end===
1396 @example
1397 (%i1) load ("distrib")$
1398 @group
1399 (%i2) pdf_chi2(x,n);
1400                    n/2 - 1   - x/2
1401                   x        %e      unit_step(x)
1402 (%o2)             -----------------------------
1403                                 n   n/2
1404                           gamma(-) 2
1405                                 2
1406 @end group
1407 @end example
1409 @opencatbox{Categories:}
1410 @category{Package distrib}
1411 @closecatbox
1413 @end deffn
1416 @anchor{cdf_chi2}
1417 @deffn {Function} cdf_chi2 (@var{x},@var{n})
1418 Returns the value at @math{x} of the cumulative distribution function of a
1419 Chi-square random variable 
1420 m4_Chi2_RV(n)
1421 , with @math{n>0}.
1423 The cdf is
1424 m4_displaymath(
1425 <<<F(x; n) =
1426 \cases{
1427 1 - Q\left(\displaystyle{n\over 2}, {x\over 2}\right) & $x > 0$ \cr
1428 0 & otherwise
1429 }>>>,
1431 @example
1432           [        n  x
1433           [ (1 - Q(-, -))     for x >= 0
1434           [        2  2
1435 F(x, n) = [
1436           [ 0                 otherwise
1437 @end example
1438 >>>)
1439 where @math{Q(a,z)} is the @ref{gamma_incomplete_regularized} function.
1441 @c ===beg===
1442 @c load ("distrib")$
1443 @c cdf_chi2(3,4);
1444 @c float(%);
1445 @c ===end===
1446 @example
1447 (%i1) load ("distrib")$
1448 @group
1449 (%i2) cdf_chi2(3,4);
1450                                                  3
1451 (%o2)        1 - gamma_incomplete_regularized(2, -)
1452                                                  2
1453 @end group
1454 @group
1455 (%i3) float(%);
1456 (%o3)                  0.4421745996289252
1457 @end group
1458 @end example
1460 @opencatbox{Categories:}
1461 @category{Package distrib}
1462 @closecatbox
1464 @end deffn
1467 @anchor{quantile_chi2}
1468 @deffn {Function} quantile_chi2 (@var{q},@var{n})
1469 Returns the @var{q}-quantile of a Chi-square random variable 
1470 m4_Chi2_RV(n)
1471 , with @math{n>0}; in other words, this is the inverse of @code{cdf_chi2}. Argument @var{q} must be an element of @math{[0,1]}.
1473 This function has no closed form and it is numerically computed.
1475 @c ===beg===
1476 @c load ("distrib")$
1477 @c quantile_chi2(0.99,9);
1478 @c ===end===
1479 @example
1480 (%i1) load ("distrib")$
1481 @group
1482 (%i2) quantile_chi2(0.99,9);
1483 (%o2)                   21.66599433346194
1484 @end group
1485 @end example
1487 @opencatbox{Categories:}
1488 @category{Package distrib}
1489 @closecatbox
1491 @end deffn
1494 @anchor{mean_chi2}
1495 @deffn {Function} mean_chi2 (@var{n})
1496 Returns the mean of a Chi-square random variable 
1497 m4_Chi2_RV(n)
1498 , with @math{n>0}.
1500 The 
1501 m4_Chi2_RV(n) 
1502 random variable is equivalent to the 
1503 m4_Gamma_RV(n/2,2)
1506 The mean is
1507 m4_displaymath(
1508 <<<E[X] = n>>>,
1510 @example
1511                             E[X] = n
1512 @end example
1513 >>>)
1515 @c ===beg===
1516 @c load ("distrib")$
1517 @c mean_chi2(n);
1518 @c ===end===
1519 @example
1520 (%i1) load ("distrib")$
1521 @group
1522 (%i2) mean_chi2(n);
1523 (%o2)                           n
1524 @end group
1525 @end example
1527 @opencatbox{Categories:}
1528 @category{Package distrib}
1529 @closecatbox
1531 @end deffn
1534 @anchor{var_chi2}
1535 @deffn {Function} var_chi2 (@var{n})
1536 Returns the variance of a Chi-square random variable 
1537 m4_Chi2_RV(n)
1538 , with @math{n>0}.
1540 The 
1541 m4_Chi2_RV(n) 
1542 random variable is equivalent to the 
1543 m4_Gamma_RV(n/2,2)
1546 The variance is
1547 m4_displaymath(
1548 <<<V[X] = 2n>>>,
1550 @example
1551                            V[X] = 2 n
1552 @end example
1553 >>>)
1555 @c ===beg===
1556 @c load ("distrib")$
1557 @c var_chi2(n);
1558 @c ===end===
1559 @example
1560 (%i1) load ("distrib")$
1561 @group
1562 (%i2) var_chi2(n);
1563 (%o2)                          2 n
1564 @end group
1565 @end example
1567 @opencatbox{Categories:}
1568 @category{Package distrib}
1569 @closecatbox
1571 @end deffn
1574 @anchor{std_chi2}
1575 @deffn {Function} std_chi2 (@var{n})
1576 Returns the standard deviation of a Chi-square random variable 
1577 m4_Chi2_RV(n)
1578 , with @math{n>0}.
1580 The 
1581 m4_Chi2_RV(n) 
1582 random variable is equivalent to the 
1583 m4_Gamma_RV(n/2,2)
1586 The standard deviation is
1587 m4_displaymath(
1588 <<<D[X] = \sqrt{2n}>>>,
1590 @example
1591                      D[X] = sqrt(2) sqrt(n)
1592 @end example
1593 >>>)
1595 @c ===beg===
1596 @c load ("distrib")$
1597 @c std_chi2(n);
1598 @c ===end===
1599 @example
1600 (%i1) load ("distrib")$
1601 @group
1602 (%i2) std_chi2(n);
1603 (%o2)                    sqrt(2) sqrt(n)
1604 @end group
1605 @end example
1607 @opencatbox{Categories:}
1608 @category{Package distrib}
1609 @closecatbox
1611 @end deffn
1614 @anchor{skewness_chi2}
1615 @deffn {Function} skewness_chi2 (@var{n})
1616 Returns the skewness coefficient of a Chi-square random variable 
1617 m4_Chi2_RV(n)
1618 , with @math{n>0}.
1620 The 
1621 m4_Chi2_RV(n) 
1622 random variable is equivalent to the 
1623 m4_Gamma_RV(n/2,2)
1626 The skewness coefficient is
1627 m4_displaymath(
1628 <<<SK[X] = \sqrt{8\over n}>>>,
1630 @example
1631                                    3/2
1632                                   2
1633                          SK[X] = -------
1634                                  sqrt(n)
1635 @end example
1636 >>>)
1638 @c ===beg===
1639 @c load ("distrib")$
1640 @c skewness_chi2(n);
1641 @c ===end===
1642 @example
1643 (%i1) load ("distrib")$
1644 @group
1645 (%i2) skewness_chi2(n);
1646                                3/2
1647                               2
1648 (%o2)                        -------
1649                              sqrt(n)
1650 @end group
1651 @end example
1653 @opencatbox{Categories:}
1654 @category{Package distrib}
1655 @closecatbox
1657 @end deffn
1660 @anchor{kurtosis_chi2}
1661 @deffn {Function} kurtosis_chi2 (@var{n})
1662 Returns the kurtosis coefficient of a Chi-square random variable 
1663 m4_Chi2_RV(n)
1664 , with @math{n>0}.
1666 The 
1667 m4_Chi2_RV(n) 
1668 random variable is equivalent to the 
1669 m4_Gamma_RV(n/2,2)
1672 The kurtosis coefficient is
1673 m4_displaymath(
1674 <<<KU[X] = {12\over n}>>>,
1676 @example
1677                                    12
1678                            KU[X] = --
1679                                    n
1680 @end example
1681 >>>)
1683 @c ===beg===
1684 @c load ("distrib")$
1685 @c kurtosis_chi2(n);
1686 @c ===end===
1687 @example
1688 (%i1) load ("distrib")$
1689 @group
1690 (%i2) kurtosis_chi2(n);
1691                                12
1692 (%o2)                          --
1693                                n
1694 @end group
1695 @end example
1697 @opencatbox{Categories:}
1698 @category{Package distrib}
1699 @closecatbox
1701 @end deffn
1704 @anchor{random_chi2}
1705 @deffn {Function} random_chi2 (@var{n}) @
1706 @fname{random_chi2} (@var{n},@var{m})
1708 Returns a Chi-square random variate 
1709 m4_Chi2_RV(n)
1710 , with @math{n>0}. Calling @code{random_chi2} with a second argument @var{m}, a random sample of size @var{m} will be simulated.
1712 The simulation is based on the Ahrens-Cheng algorithm. See @code{random_gamma} for details.
1714 To make use of this function, write first @code{load("distrib")}.
1716 @opencatbox{Categories:}
1717 @category{Package distrib}
1718 @category{Random numbers}
1719 @closecatbox
1721 @end deffn
1724 @node Noncentral Chi-squared Random Variable, F Random Variable, Chi-squared Random Variable, Functions and Variables for continuous distributions
1725 @subsection Noncentral Chi-squared Random Variable
1727 Let 
1728 m4_math(<<<X_1, X_2, ..., X_n>>>, <<<X[1], X[2], ..., X[n]>>>) 
1729 be @math{n} 
1730 independent normally distributed random variables with
1731 means 
1732 m4_math(\mu_k, mu[k]) 
1733 and unit variances.  Then the random variable
1735 m4_displaymath(
1736 <<<\sum_{k=1}^n X_k^2>>>,
1737 <<<@math{sum(X[k]^2, k, 1, n)}>>>)
1739 has a noncentral 
1740 m4_math(\chi^2, chi-squared)
1741 distribution.  The
1742 number of degrees of freedom is @math{n}, and the noncentrality
1743 parameter is defined by
1745 m4_displaymath(
1746 <<<\sum_{k=1}^n \mu_k^2>>>,
1747 <<<@math{sum(mu[k]^2, k, 1, n)}>>>)
1749 @anchor{pdf_noncentral_chi2}
1750 @deffn {Function} pdf_noncentral_chi2 (@var{x},@var{n},@var{ncp})
1751 Returns the value at @math{x} of the density function of a 
1752 noncentral 
1753 m4_math(\chi^2, Chi-square) 
1754 random
1755 variable 
1756 m4_noncentral_chi2(n,ncp)
1757 , with @math{n>0} and noncentrality
1758 parameter 
1759 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>) 
1760 To 
1761 make use of this function, write first @code{load("distrib")}.
1763 For @math{x < 0}, the pdf is 0, and for 
1764 m4_math(x \ge 0, x >= 0) 
1765 the pdf is
1766 m4_displaymath(
1767 <<<f(x; n, \lambda) =
1768 {1\over 2}e^{-(x+\lambda)/2} \left(x\over
1769 \lambda\right)^{n/4-1/2}I_{{n\over 2} - 1}\left(\sqrt{n \lambda}\right)
1770 >>>,
1772 @example
1773  f(x, n, ncp) = 
1774                                                        (- x) - ncp
1775                                                        -----------
1776                   n                     x  n/4 - 1/2        2
1777          bessel_i(- - 1, sqrt(ncp x)) (---)          %e            unit_step(x)
1778                   2                    ncp
1779          ----------------------------------------------------------------------
1780                                            2
1781 @end example
1782 >>>)
1784 @opencatbox{Categories:}
1785 @category{Package distrib}
1786 @closecatbox
1788 @end deffn
1791 @anchor{cdf_noncentral_chi2}
1792 @deffn {Function} cdf_noncentral_chi2 (@var{x},@var{n},@var{ncp})
1793 Returns the value at @var{x} of the cumulative distribution function of a
1794 noncentral Chi-square random variable 
1795 m4_noncentral_chi2(n,ncp)
1796 , with
1797 @math{n>0} and noncentrality parameter 
1798 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>) 
1799 To make use of this function, write first @code{load("distrib")}.
1801 @opencatbox{Categories:}
1802 @category{Package distrib}
1803 @closecatbox
1805 @end deffn
1808 @anchor{quantile_noncentral_chi2}
1809 @deffn {Function} quantile_noncentral_chi2 (@var{q},@var{n},@var{ncp})
1810 Returns the @var{q}-quantile of a noncentral Chi-square random
1811 variable 
1812 m4_noncentral_chi2(n,ncp)
1813 , with @math{n>0} and noncentrality
1814 parameter 
1815 m4_math(<<<ncp \ge 0>>>, <<<ncp >= 0>>>)
1816 ; in other words, this is the inverse of @code{cdf_noncentral_chi2}. Argument @var{q} must be an element of @math{[0,1]}.
1818 This function has no closed form and it is numerically computed.
1820 @opencatbox{Categories:}
1821 @category{Package distrib}
1822 @closecatbox
1824 @end deffn
1827 @anchor{mean_noncentral_chi2}
1828 @deffn {Function} mean_noncentral_chi2 (@var{n},@var{ncp})
1829 Returns the mean of a noncentral Chi-square random variable
1830 m4_noncentral_chi2(n,ncp)
1831 , with @math{n>0} and noncentrality parameter 
1832 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>)
1834 The mean is
1835 m4_displaymath(
1836 <<<E[X] = n + \mu>>>,
1838 @example
1839                          E[X] = ncp + n
1840 @end example
1841 >>>)
1842 @ifnotinfo
1843 where 
1844 m4_math(\mu) 
1845 is the noncentrality parameter @var{ncp}.
1846 @end ifnotinfo
1849 @opencatbox{Categories:}
1850 @category{Package distrib}
1851 @closecatbox
1853 @end deffn
1856 @anchor{var_noncentral_chi2}
1857 @deffn {Function} var_noncentral_chi2 (@var{n},@var{ncp})
1858 Returns the variance of a noncentral Chi-square random variable
1859 m4_noncentral_chi2(n,ncp)
1860 , with @math{n>0} and noncentrality parameter 
1861 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>)
1863 The variance is
1864 m4_displaymath(
1865 <<<V[X] = 2(n+2\mu)>>>,
1867 @example
1868                       V[X] = 2 (2 ncp + n)
1869 @end example
1870 >>>)
1871 @ifnotinfo
1872 where 
1873 m4_math(\mu) 
1874 is the noncentrality parameter @var{ncp}.
1875 @end ifnotinfo
1877 @opencatbox{Categories:}
1878 @category{Package distrib}
1879 @closecatbox
1881 @end deffn
1884 @anchor{std_noncentral_chi2}
1885 @deffn {Function} std_noncentral_chi2 (@var{n},@var{ncp})
1886 Returns the standard deviation of a noncentral Chi-square random
1887 variable 
1888 m4_noncentral_chi2(n,ncp)
1889 , with @math{n>0} and noncentrality
1890 parameter 
1891 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>)
1893 The standard deviation is
1894 m4_displaymath(
1895 <<<D[X] = \sqrt{2(n+2\mu)}>>>,
1897 @example
1898                  D[X] = sqrt(2) sqrt(2 ncp + n)
1899 @end example
1900 >>>)
1901 @ifnotinfo
1902 where 
1903 m4_math(\mu) 
1904 is the noncentrality parameter @var{ncp}.
1905 @end ifnotinfo
1906 @opencatbox{Categories:}
1907 @category{Package distrib}
1908 @closecatbox
1910 @end deffn
1913 @anchor{skewness_noncentral_chi2}
1914 @deffn {Function} skewness_noncentral_chi2 (@var{n},@var{ncp})
1915 Returns the skewness coefficient of a noncentral Chi-square random
1916 variable
1917 m4_noncentral_chi2(n,ncp)
1918 , with @math{n>0} and noncentrality
1919 parameter 
1920 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>)
1922 The skewness coefficient is
1923 m4_displaymath(
1924 <<<SK[X] = {2^{3/2}(n+3\mu) \over (n+2\mu)^{3/2}}>>>,
1926 @example
1927           3/2
1928          2    (n + 3 mu)
1929  SK[X] = ---------------
1930                     3/2
1931           (n + 2 mu)
1933 @end example
1934 >>>)
1935 @ifnotinfo
1936 where 
1937 m4_math(\mu) 
1938 is the noncentrality parameter @var{ncp}.
1939 @end ifnotinfo
1942 @opencatbox{Categories:}
1943 @category{Package distrib}
1944 @closecatbox
1946 @end deffn
1949 @anchor{kurtosis_noncentral_chi2}
1950 @deffn {Function} kurtosis_noncentral_chi2 (@var{n},@var{ncp})
1951 Returns the kurtosis coefficient of a noncentral Chi-square random
1952 variable
1953 m4_noncentral_chi2(n,ncp)
1954 , with @math{n>0} and noncentrality
1955 parameter 
1956 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>)
1958 The kurtosis coefficient is
1959 m4_displaymath(
1960 <<<KU[X] = {12(n+4\mu)\over (2+2\mu)^2}>>>,
1962 @example
1963            12 (n + 4 mu)
1964    KU[X] = -------------
1965                       2
1966             (n + 2 mu)
1967 @end example
1968 >>>)
1969 @ifnotinfo
1970 where 
1971 m4_math(\mu) 
1972 is the noncentrality parameter @var{ncp}.
1973 @end ifnotinfo
1975 @opencatbox{Categories:}
1976 @category{Package distrib}
1977 @closecatbox
1979 @end deffn
1982 @anchor{random_noncentral_chi2}
1983 @deffn {Function} random_noncentral_chi2 (@var{n},@var{ncp}) @
1984 @fname{random_noncentral_chi2} (@var{n},@var{ncp},@var{m})
1986 Returns a noncentral Chi-square random variate
1987 m4_noncentral_chi2(n,ncp)
1988 , with @math{n>0} and noncentrality parameter 
1989 m4_mathdot(<<<ncp \ge 0>>>, <<<ncp >= 0>>>) 
1990 Calling @code{random_noncentral_chi2} with a third argument @var{m}, a random sample of size @var{m} will be simulated.
1992 To make use of this function, write first @code{load("distrib")}.
1994 @opencatbox{Categories:}
1995 @category{Package distrib}
1996 @category{Random numbers}
1997 @closecatbox
1999 @end deffn
2003 @node F Random Variable, Exponential Random Variable, Noncentral Chi-squared Random Variable, Functions and Variables for continuous distributions
2004 @subsection F Random Variable
2006 Let @math{S_1} and @math{S_2} be independent random variables with
2008 m4_math(\chi^2, chi-squared) 
2009 distribution with degrees of freedom
2010 @math{n} and @math{m}, respectively.  Then
2011 m4_displaymath(
2012 <<<F = {S_1/n \over S_2/m}>>>,
2013 <<<@math{F = (S_1/n)/(S_2/m)}>>>) has an @math{F} distribution with @math{n} and @math{m} degrees of
2014 freedom.
2016 @anchor{pdf_f}
2017 @deffn {Function} pdf_f (@var{x},@var{m},@var{n})
2018 Returns the value at @var{x} of the density function of a F random variable @math{F(m,n)}, with @math{m,n>0}. To make use of this function, write first @code{load("distrib")}.
2020 The pdf is
2021 m4_displaymath(
2022 <<<f(x; m, n) =
2023 \cases{
2024 B\left(\displaystyle{m\over 2}, \displaystyle{n\over 2}\right)^{-1}
2025 \left(\displaystyle{m\over n}\right)^{m/ 2}
2026 x^{m/2-1}
2027 \left(1 + \displaystyle{m\over n}x\right)^{-\left(n+m\right)/2} & $x >
2028 0$ \cr
2030 0 & otherwise
2031 }>>>,
2033 @example
2034  f(x, m, n) = 
2035                                                          (- n) - m
2036                                                          ---------
2037                     n n/2       n + m   n/2 - 1  n x         2
2038                    (-)    gamma(-----) x        (--- + 1)          unit_step(x)
2039                     m             2               m
2040                    ------------------------------------------------------------
2041                                               m        n
2042                                         gamma(-) gamma(-)
2043                                               2        2
2045 @end example>>>)
2047 @opencatbox{Categories:}
2048 @category{Package distrib}
2049 @closecatbox
2051 @end deffn
2054 @anchor{cdf_f}
2055 @deffn {Function} cdf_f (@var{x},@var{m},@var{n})
2056 Returns the value at @var{x} of the cumulative distribution function of a F random variable @math{F(m,n)}, with @math{m,n>0}.
2058 The cdf is
2059 m4_displaymath(
2060 <<<F(x; m, n) =
2061 \cases{
2062 1 - I_z\left(\displaystyle{m\over 2}, {n\over 2}\right) & $x > 0$ \cr
2063 0 & otherwise
2064 }>>>,
2066 @example
2067                                                n  m     n
2068  F(x, m, n) = (1 - beta_incomplete_regularized(-, -, -------))
2069                                                2  2  m x + n
2070                                                              unit_step(x)
2071 @end example
2072 >>>)
2074 @ifnotinfo
2075 where
2076 m4_displaymath(
2077 <<<z = {n\over mx+n}>>>,
2078 <<<>>>)
2080 and 
2081 m4_math(I_z(a,b)) 
2082 is the @ref{beta_incomplete_regularized}
2083 function.
2084 @end ifnotinfo
2085 @c ===beg===
2086 @c load ("distrib")$
2087 @c cdf_f(2,3,9/4);
2088 @c float(%);
2089 @c ===end===
2090 @example
2091 (%i1) load ("distrib")$
2092 @group
2093 (%i2) cdf_f(2,3,9/4);
2094                                             9  3  3
2095 (%o2)       1 - beta_incomplete_regularized(-, -, --)
2096                                             8  2  11
2097 @end group
2098 @group
2099 (%i3) float(%);
2100 (%o3)                  0.6675672817900802
2101 @end group
2102 @end example
2104 @opencatbox{Categories:}
2105 @category{Package distrib}
2106 @closecatbox
2108 @end deffn
2111 @anchor{quantile_f}
2112 @deffn {Function} quantile_f (@var{q},@var{m},@var{n})
2113 Returns the @var{q}-quantile of a F random variable @math{F(m,n)}, with @math{m,n>0}; in other words, this is the inverse of @code{cdf_f}. Argument @var{q} must be an element of @math{[0,1]}.
2115 @c ===beg===
2116 @c load ("distrib")$
2117 @c quantile_f(2/5,sqrt(3),5);
2118 @c ===end===
2119 @example
2120 (%i1) load ("distrib")$
2121 @group
2122 (%i2) quantile_f(2/5,sqrt(3),5);
2123 (%o2)                  0.5189478385736904
2124 @end group
2125 @end example
2127 @opencatbox{Categories:}
2128 @category{Package distrib}
2129 @closecatbox
2131 @end deffn
2134 @anchor{mean_f}
2135 @deffn {Function} mean_f (@var{m},@var{n})
2136 Returns the mean of a F random variable @math{F(m,n)}, with @math{m>0, n>2}. To make use of this function, write first @code{load("distrib")}.
2138 The mean is
2139 m4_displaymath(
2140 <<<E[X] = {n\over n-2}>>>,
2142 @example
2143                                    n
2144                           E[X] = -----
2145                                  n - 2
2146 @end example
2147 >>>)
2149 @opencatbox{Categories:}
2150 @category{Package distrib}
2151 @closecatbox
2153 @end deffn
2156 @anchor{var_f}
2157 @deffn {Function} var_f (@var{m},@var{n})
2158 Returns the variance of a F random variable @math{F(m,n)}, with @math{m>0, n>4}. To make use of this function, write first @code{load("distrib")}.
2160 The variance is
2161 m4_displaymath(
2162 <<<V[X] = {2n^2(n+m-2) \over m(n-4)(n-2)^2}>>>,
2164 @example
2165                2
2166             2 n  (n + m - 2)
2167     V[X] = ------------------
2168                             2
2169            m (n - 4) (n - 2)
2170 @end example
2171 >>>)
2172 @opencatbox{Categories:}
2173 @category{Package distrib}
2174 @closecatbox
2176 @end deffn
2179 @anchor{std_f}
2180 @deffn {Function} std_f (@var{m},@var{n})
2181 Returns the standard deviation of a F random variable @math{F(m,n)}, with @math{m>0, n>4}. To make use of this function, write first @code{load("distrib")}.
2183 The standard deviation is
2184 m4_displaymath(
2185 <<<D[X] = {\sqrt{2}\, n \over n-2} \sqrt{n+m-2\over m(n-4)}>>>,
2187 @example
2188                         n         n + m - 2
2189   D[X] = sqrt(2) sqrt(-----) sqrt(---------)
2190                       n - 2       m (n - 4)
2191 @end example
2192 >>>)
2193 @opencatbox{Categories:}
2194 @category{Package distrib}
2195 @closecatbox
2197 @end deffn
2200 @anchor{skewness_f}
2201 @deffn {Function} skewness_f (@var{m},@var{n})
2202 Returns the skewness coefficient of a F random variable @math{F(m,n)}, with @math{m>0, n>6}. To make use of this function, write first @code{load("distrib")}.
2204 The skewness coefficient is
2205 m4_displaymath(
2206 <<<SK[X] = {(n+2m-2)\sqrt{8(n-4)} \over (n-6)\sqrt{m(n+m-2)}}>>>,
2208 @example
2209           3/2
2210          2    sqrt(n - 4) (n + 2 m - 2)
2211  SK[X] = ------------------------------
2212           (n - 6) sqrt(m (n + m - 2))
2214 @end example
2215 >>>)
2216 @opencatbox{Categories:}
2217 @category{Package distrib}
2218 @closecatbox
2220 @end deffn
2223 @anchor{kurtosis_f}
2224 @deffn {Function} kurtosis_f (@var{m},@var{n})
2225 Returns the kurtosis coefficient of a F random variable @math{F(m,n)}, with @math{m>0, n>8}. To make use of this function, write first @code{load("distrib")}.
2227 The kurtosis coefficient is
2228 m4_displaymath(
2229 <<<KU[X] = 12{m(n+m-2)(5n-22) + (n-4)(n-2)^2 \over m(n-8)(n-6)(n+m-2)}>>>,
2231 @example
2232                                                         2
2233           12 (m (n + m - 2) (5 n - 22) + (n - 4) (n - 2) )
2234   KU[X] = ------------------------------------------------
2235                    m (n - 8) (n - 6) (n + m - 2)
2236 @end example
2237 >>>)
2239 @opencatbox{Categories:}
2240 @category{Package distrib}
2241 @closecatbox
2243 @end deffn
2246 @anchor{random_f}
2247 @deffn {Function} random_f (@var{m},@var{n}) @
2248 @fname{random_f} (@var{m},@var{n},@var{k})
2250 Returns a F random variate @math{F(m,n)}, with @math{m,n>0}. Calling @code{random_f} with a third argument @var{k}, a random sample of size @var{k} will be simulated.
2252 The simulation algorithm is based on the fact that if @var{X} is a
2253 @math{Chi^2(m)} random variable and @math{Y} is a 
2254 m4_Chi2_RV(n) 
2255 random variable, then
2256 m4_displaymath(
2257 <<<F={{n X}\over{m Y}}>>>,
2259 @example
2260                         n X
2261                     F = ---
2262                         m Y
2263 @end example
2264 >>>)
2265 is a F random variable with @var{m} and @var{n} degrees of freedom, @math{F(m,n)}.
2267 To make use of this function, write first @code{load("distrib")}.
2269 @opencatbox{Categories:}
2270 @category{Package distrib}
2271 @category{Random numbers}
2272 @closecatbox
2274 @end deffn
2277 @node Exponential Random Variable, Lognormal Random Variable, F Random Variable, Functions and Variables for continuous distributions
2278 @subsection Exponential Random Variable
2280 The @emph{exponential distribution} is the probablity distribution of
2281 the time between events in a process where the events occur
2282 continuously and independently at a constant average rate.
2284 @anchor{pdf_exp}
2285 @deffn {Function} pdf_exp (@var{x},@var{m})
2286 Returns the value at @var{x} of the density function of an 
2287 m4_Exponential_RV(m) 
2288 random variable, with @math{m>0}.
2290 The 
2291 m4_Exponential_RV(m) 
2292 random variable is equivalent to the 
2293 m4_Weibull_RV(1,1/m)
2296 The pdf is
2297 m4_displaymath(
2298 <<<f(x; m) =
2299 \cases{
2300 me^{-mx} & for $x \ge 0$ \cr
2301 0 & otherwise
2302 }>>>,
2304 @example
2305           [ m*exp(-m*x) for x >= 0
2306 f(x, m) = [
2307           [ 0           otherwise
2308 @end example
2309 >>>)
2311 @c ===beg===
2312 @c load ("distrib")$
2313 @c pdf_exp(x,m);
2314 @c ===end===
2315 @example
2316 (%i1) load ("distrib")$
2317 @group
2318 (%i2) pdf_exp(x,m);
2319                          - m x
2320 (%o2)                m %e      unit_step(x)
2321 @end group
2322 @end example
2324 @opencatbox{Categories:}
2325 @category{Package distrib}
2326 @closecatbox
2328 @end deffn
2331 @anchor{cdf_exp}
2332 @deffn {Function} cdf_exp (@var{x},@var{m})
2333 Returns the value at @var{x} of the cumulative distribution function of an 
2334 m4_Exponential_RV(m) 
2335 random variable, with @math{m>0}.
2337 The 
2338 m4_Exponential_RV(m) 
2339 random variable is equivalent to the 
2340 m4_Weibull_RV(1,1/m)
2343 The cdf is
2344 m4_displaymath(
2345 <<<F(x; m) =
2346 \cases{
2347 1 - e^{-mx} & $x \ge 0$ \cr
2348 0 & otherwise
2349 }>>>,
2351 @example
2352          [ 1 - exp(-m*x)  for x >= 0
2353 F(x,n) = [
2354          [ 0              otherwise
2355 @end example
2356 >>>)
2357 @c ===beg===
2358 @c load ("distrib")$
2359 @c cdf_exp(x,m);
2360 @c ===end===
2361 @example
2362 (%i1) load ("distrib")$
2363 @group
2364 (%i2) cdf_exp(x,m);
2365                           - m x
2366 (%o2)              (1 - %e     ) unit_step(x)
2367 @end group
2368 @end example
2370 @opencatbox{Categories:}
2371 @category{Package distrib}
2372 @closecatbox
2374 @end deffn
2377 @anchor{quantile_exp}
2378 @deffn {Function} quantile_exp (@var{q},@var{m})
2379 Returns the @var{q}-quantile of an 
2380 m4_Exponential_RV(m) 
2381 random variable, with @math{m>0}; in other words, this is the inverse of @code{cdf_exp}. Argument @var{q} must be an element of @math{[0,1]}.
2383 The 
2384 m4_Exponential_RV(m) 
2385 random variable is equivalent to the 
2386 m4_Weibull_RV(1,1/m)
2389 @c ===beg===
2390 @c load ("distrib")$
2391 @c quantile_exp(0.56,5);
2392 @c quantile_exp(0.56,m);
2393 @c ===end===
2394 @example
2395 (%i1) load ("distrib")$
2396 @group
2397 (%i2) quantile_exp(0.56,5);
2398 (%o2)                  0.1641961104139661
2399 @end group
2400 @group
2401 (%i3) quantile_exp(0.56,m);
2402                        0.8209805520698303
2403 (%o3)                  ------------------
2404                                m
2405 @end group
2406 @end example
2408 @opencatbox{Categories:}
2409 @category{Package distrib}
2410 @closecatbox
2412 @end deffn
2415 @anchor{mean_exp}
2416 @deffn {Function} mean_exp (@var{m})
2417 Returns the mean of an 
2418 m4_Exponential_RV(m) 
2419 random variable, with @math{m>0}.
2421 The 
2422 m4_Exponential_RV(m) 
2423 random variable is equivalent to the 
2424 m4_Weibull_RV(1,1/m)
2427 The mean is
2428 m4_displaymath(
2429 <<<E[X] = {1\over m}>>>,
2431 @example
2432                                    1
2433                             E[X] = -
2434                                    m
2435 @end example
2436 >>>)
2438 @c ===beg===
2439 @c load ("distrib")$
2440 @c mean_exp(m);
2441 @c ===end===
2442 @example
2443 (%i1) load ("distrib")$
2444 @group
2445 (%i2) mean_exp(m);
2446                                 1
2447 (%o2)                           -
2448                                 m
2449 @end group
2450 @end example
2452 @opencatbox{Categories:}
2453 @category{Package distrib}
2454 @closecatbox
2456 @end deffn
2459 @anchor{var_exp}
2460 @deffn {Function} var_exp (@var{m})
2461 Returns the variance of an 
2462 m4_Exponential_RV(m) 
2463 random variable, with @math{m>0}.
2465 The 
2466 m4_Exponential_RV(m) 
2467 random variable is equivalent to the 
2468 m4_Weibull_RV(1,1/m)
2471 The variance is
2472 m4_displaymath(
2473 <<<V[X] = {1\over m^2}>>>,
2475 @example
2476                                    1
2477                               VX = --
2478                                     2
2479                                    m
2480 @end example
2482 >>>)
2483 @c ===beg===
2484 @c load ("distrib")$
2485 @c var_exp(m);
2486 @c ===end===
2487 @example
2488 (%i1) load ("distrib")$
2489 @group
2490 (%i2) var_exp(m);
2491                                1
2492 (%o2)                          --
2493                                 2
2494                                m
2495 @end group
2496 @end example
2498 @opencatbox{Categories:}
2499 @category{Package distrib}
2500 @closecatbox
2502 @end deffn
2505 @anchor{std_exp}
2506 @deffn {Function} std_exp (@var{m})
2507 Returns the standard deviation of an 
2508 m4_Exponential_RV(m) 
2509 random variable, with @math{m>0}.
2511 The 
2512 m4_Exponential_RV(m) 
2513 random variable is equivalent to the 
2514 m4_Weibull_RV(1,1/m)
2517 The standard deviation is
2518 m4_displaymath(
2519 <<<D[X] = {1\over m}>>>,
2521 @example
2522                                    1
2523                             D[X] = -
2524                                    m
2525 @end example
2526 >>>)
2528 @c ===beg===
2529 @c load ("distrib")$
2530 @c std_exp(m);
2531 @c ===end===
2532 @example
2533 (%i1) load ("distrib")$
2534 @group
2535 (%i2) std_exp(m);
2536                                 1
2537 (%o2)                           -
2538                                 m
2539 @end group
2540 @end example
2542 @opencatbox{Categories:}
2543 @category{Package distrib}
2544 @closecatbox
2546 @end deffn
2549 @anchor{skewness_exp}
2550 @deffn {Function} skewness_exp (@var{m})
2551 Returns the skewness coefficient of an 
2552 m4_Exponential_RV(m) 
2553 random variable, with @math{m>0}.
2555 The 
2556 m4_Exponential_RV(m) 
2557 random variable is equivalent to the 
2558 m4_Weibull_RV(1,1/m)
2561 The skewness coefficient is
2562 m4_displaymath(
2563 <<<SK[X] = 2>>>,
2565 @example
2566                             SK[X] = 2
2567 @end example
2568 >>>)
2570 @c ===beg===
2571 @c load ("distrib")$
2572 @c skewness_exp(m);
2573 @c ===end===
2574 @example
2575 (%i1) load ("distrib")$
2576 @group
2577 (%i2) skewness_exp(m);
2578 (%o2)                           2
2579 @end group
2580 @end example
2582 @opencatbox{Categories:}
2583 @category{Package distrib}
2584 @closecatbox
2586 @end deffn
2589 @anchor{kurtosis_exp}
2590 @deffn {Function} kurtosis_exp (@var{m})
2591 Returns the kurtosis coefficient of an 
2592 m4_Exponential_RV(m) 
2593 random variable, with @math{m>0}.
2595 The 
2596 m4_Exponential_RV(m)
2597 random variable is equivalent to the 
2598 m4_Weibull_RV(1,1/m)
2601 The kurtosis coefficient is
2602 m4_displaymath(
2603 <<<KU[X] = 6>>>,
2605 @example
2606                             KU[X] = 6
2607 @end example
2608 >>>)
2610 @c ===beg===
2611 @c load ("distrib")$
2612 @c kurtosis_exp(m);
2613 @c ===end===
2614 @example
2615 (%i1) load ("distrib")$
2616 @group
2617 (%i2) kurtosis_exp(m);
2618 (%o2)                           6
2619 @end group
2620 @end example
2622 @opencatbox{Categories:}
2623 @category{Package distrib}
2624 @closecatbox
2626 @end deffn
2629 @anchor{random_exp}
2630 @deffn {Function} random_exp (@var{m}) @
2631 @fname{random_exp} (@var{m},@var{k})
2633 Returns an 
2634 m4_Exponential_RV(m) 
2635 random variate, with @math{m>0}. Calling @code{random_exp} with a second argument @var{k}, a random sample of size @var{k} will be simulated.
2637 The simulation algorithm is based on the general inverse method.
2639 To make use of this function, write first @code{load("distrib")}.
2641 @opencatbox{Categories:}
2642 @category{Package distrib}
2643 @category{Random numbers}
2644 @closecatbox
2646 @end deffn
2649 @node Lognormal Random Variable, Gamma Random Variable, Exponential Random Variable, Functions and Variables for continuous distributions
2650 @subsection Lognormal Random Variable
2652 The @emph{lognormal} distribution is distribution for a random
2653 variable whose logarithm is normally distributed.
2655 @anchor{pdf_lognormal}
2656 @deffn {Function} pdf_lognormal (@var{x},@var{m},@var{s})
2657 Returns the value at @var{x} of the density function of a 
2658 m4_Lognormal_RV(m,s) 
2659 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
2661 The pdf is
2662 m4_displaymath(
2663 <<<f(x; m, s) =
2664 \cases{
2665 \displaystyle{1\over x s \sqrt{2\pi}}
2666 \exp\left(-\displaystyle{\left(\log x - m\right)^2\over 2s^2}\right) & for $x \ge
2667 0$ \cr
2669 0 & for $x < 0$
2670 }>>>,
2672 @example
2673                    [                   2
2674                    [       (log(x) - m)
2675                    [     - -------------
2676                    [              2
2677                    [           2 s
2678                    [   %e
2679       f(x, m, s) = [ ---------------------      for x >= 0
2680                    [ sqrt(2) sqrt(%pi) s x
2681                    [
2682                    [ 0                          for x < 0
2683 @end example
2684 >>>)
2685 @opencatbox{Categories:}
2686 @category{Package distrib}
2687 @closecatbox
2689 @end deffn
2692 @anchor{cdf_lognormal}
2693 @deffn {Function} cdf_lognormal (@var{x},@var{m},@var{s})
2694 Returns the value at @var{x} of the cumulative distribution function of a 
2695 m4_Lognormal_RV(m,s) 
2696 random variable, with @math{s>0}. This function is defined in terms of Maxima's built-in error function @code{erf}.
2698 The cdf is
2699 m4_displaymath(
2700 <<<F(x; m, s) =
2701 \cases{
2702 \displaystyle{1\over 2}\left[1+{\rm erf}\left({\log x - m\over s\sqrt{2}}\right)\right] &
2703 for $x > 0$ \cr
2705 0 & for $x \le 0$
2706 }>>>,
2708 @example
2709                                          log(x) - m
2710                                      erf(----------)
2711                                          sqrt(2) s     1
2712           F(x, m, s) = unit_step(x) (--------------- + -)
2713                                             2          2
2714 @end example
2715 >>>)
2717 @c ===beg===
2718 @c load ("distrib")$
2719 @c cdf_lognormal(x,m,s);
2720 @c ===end===
2721 @example
2722 (%i1) load ("distrib")$
2723 @group
2724 (%i2) cdf_lognormal(x,m,s);
2725                                  log(x) - m
2726                              erf(----------)
2727                                  sqrt(2) s     1
2728 (%o2)          unit_step(x) (--------------- + -)
2729                                     2          2
2730 @end group
2731 @end example
2733 See also @mrefdot{erf}
2735 @opencatbox{Categories:}
2736 @category{Package distrib}
2737 @closecatbox
2739 @end deffn
2742 @anchor{quantile_lognormal}
2743 @deffn {Function} quantile_lognormal (@var{q},@var{m},@var{s})
2744 Returns the @var{q}-quantile of a 
2745 m4_Lognormal_RV(m,s) 
2746 random variable, with @math{s>0}; in other words, this is the inverse of @code{cdf_lognormal}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
2748 @c ===beg===
2749 @c load ("distrib")$
2750 @c quantile_lognormal(95/100,0,1);
2751 @c float(%);
2752 @c ===end===
2753 @example
2754 (%i1) load ("distrib")$
2755 @group
2756 (%i2) quantile_lognormal(95/100,0,1);
2757                      sqrt(2) inverse_erf(9/10)
2758 (%o2)              %e
2759 @end group
2760 @group
2761 (%i3) float(%);
2762 (%o3)                   5.180251602233015
2763 @end group
2764 @end example
2766 @opencatbox{Categories:}
2767 @category{Package distrib}
2768 @closecatbox
2770 @end deffn
2773 @anchor{mean_lognormal}
2774 @deffn {Function} mean_lognormal (@var{m},@var{s})
2775 Returns the mean of a 
2776 m4_Lognormal_RV(m,s) 
2777 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
2779 The mean is
2780 m4_displaymath(
2781 <<<E[X] = \exp\left(m+{s^2\over 2}\right)>>>,
2783 @example
2784                                    2
2785                                   s
2786                                   -- + m
2787                                   2
2788                          E[X] = %e
2789 @end example
2791 >>>)
2793 @opencatbox{Categories:}
2794 @category{Package distrib}
2795 @closecatbox
2797 @end deffn
2800 @anchor{var_lognormal}
2801 @deffn {Function} var_lognormal (@var{m},@var{s})
2802 Returns the variance of a 
2803 m4_Lognormal_RV(m,s) 
2804 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
2806 The variance is
2807 m4_displaymath(
2808 <<<V[X] = \left(\exp\left(s^2\right) - 1\right) \exp\left(2m+s^2\right)>>>,
2810 @example
2811                              2         2
2812                             s         s  + 2 m
2813                   V[X] = (%e   - 1) %e
2815 @end example
2816 >>>)
2818 @opencatbox{Categories:}
2819 @category{Package distrib}
2820 @closecatbox
2822 @end deffn
2824 @anchor{std_lognormal}
2825 @deffn {Function} std_lognormal (@var{m},@var{s})
2826 Returns the standard deviation of a 
2827 m4_Lognormal_RV(m,s) 
2828 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
2830 The standard deviation is
2831 m4_displaymath(
2832 <<<D[X] = \sqrt{\left(\exp\left(s^2\right) - 1\right)}
2833 \exp\left(m+{s^2\over 2}\right)>>>,
2835 @example
2836                                          2
2837                                         s  + 2 m
2838                                2        --------
2839                               s            2
2840                 D[X] = sqrt(%e   - 1) %e
2842 @end example
2844 >>>)
2845 @opencatbox{Categories:}
2846 @category{Package distrib}
2847 @closecatbox
2849 @end deffn
2852 @anchor{skewness_lognormal}
2853 @deffn {Function} skewness_lognormal (@var{m},@var{s})
2854 Returns the skewness coefficient of a 
2855 m4_Lognormal_RV(m,s) 
2856 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
2858 The skewness coefficient is
2859 m4_displaymath(
2860 <<<SK[X] = \left(\exp\left(s^2\right)+2\right)\sqrt{\exp\left(s^2\right)-1}>>>,
2862 @example
2863                                 2          2
2864                                s          s
2865                 SK[X] = sqrt(%e   - 1) (%e   + 2)
2866 @end example
2867 >>>)
2869 @opencatbox{Categories:}
2870 @category{Package distrib}
2871 @closecatbox
2873 @end deffn
2876 @anchor{kurtosis_lognormal}
2877 @deffn {Function} kurtosis_lognormal (@var{m},@var{s})
2878 Returns the kurtosis coefficient of a 
2879 m4_Lognormal_RV(m,s) 
2880 random variable, with @math{s>0}. To make use of this function, write first @code{load("distrib")}.
2882 The kurtosis coefficient is
2883 m4_displaymath(
2884 <<<KU[X] = \exp\left(4s^2\right)+2\exp\left(3s^2\right)+3\exp\left(2s^2\right)-3>>>,
2886 @example
2887                          2          2          2
2888                       4 s        3 s        2 s
2889             KU[X] = %e     + 2 %e     + 3 %e     - 3
2891 @end example
2893 >>>)
2895 @opencatbox{Categories:}
2896 @category{Package distrib}
2897 @closecatbox
2899 @end deffn
2902 @anchor{random_lognormal}
2903 @deffn {Function} random_lognormal (@var{m},@var{s}) @
2904 @fname{random_lognormal} (@var{m},@var{s},@var{n})
2906 Returns a 
2907 m4_Lognormal_RV(m,s) 
2908 random variate, with @math{s>0}. Calling @code{random_lognormal} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
2910 Log-normal variates are simulated by means of random normal variates. See @code{random_normal} for details.
2912 To make use of this function, write first @code{load("distrib")}.
2914 @opencatbox{Categories:}
2915 @category{Package distrib}
2916 @category{Random numbers}
2917 @closecatbox
2919 @end deffn
2922 @node Gamma Random Variable, Beta Random Variable, Lognormal Random Variable, Functions and Variables for continuous distributions
2923 @subsection Gamma Random Variable
2925 The @emph{gamma distribution} is a two-parameter family of probability
2926 distributions.  Maxima uses the parameterization using the shape and
2927 scale for the first and second parameters of the distribution.
2929 @anchor{pdf_gamma}
2930 @deffn {Function} pdf_gamma (@var{x},@var{a},@var{b})
2931 Returns the value at @var{x} of the density function of a 
2932 m4_Gamma_RV(a,b) 
2933 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
2935 The shape parameter is @math{a}, and the scale parameter is @math{b}.
2937 The pdf is
2938 m4_displaymath(
2939 <<<f(x; a, b) = {x^{a-1}e^{-x/b}\over b^a \Gamma(a)}>>>,
2941 @example
2942                     a - 1   - x/b
2943                    x      %e      unit_step(x)
2944       f(x, a, b) = ---------------------------
2945                                      a
2946                            gamma(a) b
2947 @end example
2948 >>>)
2950 @opencatbox{Categories:}
2951 @category{Package distrib}
2952 @closecatbox
2954 @end deffn
2957 @anchor{cdf_gamma}
2958 @deffn {Function} cdf_gamma (@var{x},@var{a},@var{b})
2959 Returns the value at @var{x} of the cumulative distribution function of a 
2960 m4_Gamma_RV(a,b) 
2961 random variable, with @math{a,b>0}. 
2963 The cdf is
2964 m4_displaymath(
2965 <<<F(x; a, b) =
2966 \cases{
2967 1-Q(a,{x\over b}) & for $x \ge 0$ \cr
2969 0 & for $x < 0$
2970 }>>>,
2972 @example
2973              [ 1 - Q(a,x/b) for x>= 0
2974 F(x, a, b) = [
2975              [ 0            for x < 0
2976 @end example
2977 >>>)
2978 where @math{Q(a,z)} is the @ref{gamma_incomplete_regularized} function.
2979 @c ===beg===
2980 @c load ("distrib")$
2981 @c cdf_gamma(3,5,21);
2982 @c float(%);
2983 @c ===end===
2984 @example
2985 (%i1) load ("distrib")$
2986 @group
2987 (%i2) cdf_gamma(3,5,21);
2988                                                  1
2989 (%o2)        1 - gamma_incomplete_regularized(5, -)
2990                                                  7
2991 @end group
2992 @group
2993 (%i3) float(%);
2994 (%o3)                 4.402663157376807e-7
2995 @end group
2996 @end example
2998 @opencatbox{Categories:}
2999 @category{Package distrib}
3000 @closecatbox
3002 @end deffn
3005 @anchor{quantile_gamma}
3006 @deffn {Function} quantile_gamma (@var{q},@var{a},@var{b})
3007 Returns the @var{q}-quantile of a 
3008 m4_Gamma_RV(a,b) 
3009 random variable, with @math{a,b>0}; in other words, this is the inverse of @code{cdf_gamma}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
3011 @opencatbox{Categories:}
3012 @category{Package distrib}
3013 @closecatbox
3015 @end deffn
3018 @anchor{mean_gamma}
3019 @deffn {Function} mean_gamma (@var{a},@var{b})
3020 Returns the mean of a 
3021 m4_Gamma_RV(a,b) 
3022 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3024 The mean is
3025 m4_displaymath(
3026 <<<E[X] = ab>>>,
3028 @example
3029                            E[X] = a b
3030 @end example
3031 >>>)
3033 @opencatbox{Categories:}
3034 @category{Package distrib}
3035 @closecatbox
3037 @end deffn
3040 @anchor{var_gamma}
3041 @deffn {Function} var_gamma (@var{a},@var{b})
3042 Returns the variance of a 
3043 m4_Gamma_RV(a,b) 
3044 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3046 The variance is
3047 m4_displaymath(
3048 <<<V[X] = ab^2>>>,
3050 @example
3051                                      2
3052                            V[X] = a b
3053 @end example
3055 >>>)
3056 @opencatbox{Categories:}
3057 @category{Package distrib}
3058 @closecatbox
3060 @end deffn
3062 @anchor{std_gamma}
3063 @deffn {Function} std_gamma (@var{a},@var{b})
3064 Returns the standard deviation of a 
3065 m4_Gamma_RV(a,b) 
3066 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3068 The standard deviation is
3069 m4_displaymath(
3070 <<<D[X] = b\sqrt{a}>>>,
3072 @example
3073                        D[X] = sqrt(a) b
3074 @end example
3075 >>>)
3077 @opencatbox{Categories:}
3078 @category{Package distrib}
3079 @closecatbox
3081 @end deffn
3084 @anchor{skewness_gamma}
3085 @deffn {Function} skewness_gamma (@var{a},@var{b})
3086 Returns the skewness coefficient of a 
3087 m4_Gamma_RV(a,b) 
3088 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3090 The skewness coefficient is
3091 m4_displaymath(
3092 <<<SK[X] = {2\over \sqrt{a}}>>>,
3094 @example
3095                                      2
3096                           SK[X] = -------
3097                                   sqrt(a)
3098 @end example
3099 >>>)
3101 @opencatbox{Categories:}
3102 @category{Package distrib}
3103 @closecatbox
3105 @end deffn
3108 @anchor{kurtosis_gamma}
3109 @deffn {Function} kurtosis_gamma (@var{a},@var{b})
3110 Returns the kurtosis coefficient of a 
3111 m4_Gamma_RV(a,b) 
3112 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3114 The kurtosis coefficient is
3115 m4_displaymath(
3116 <<<KU[X] = {6\over a}>>>,
3118 @example
3119                                      6
3120                              KU[X] = -
3121                                      a
3123 @end example
3124 >>>)
3126 @opencatbox{Categories:}
3127 @category{Package distrib}
3128 @closecatbox
3130 @end deffn
3133 @anchor{random_gamma}
3134 @deffn {Function} random_gamma (@var{a},@var{b}) @
3135 @fname{random_gamma} (@var{a},@var{b},@var{n})
3137 Returns a 
3138 m4_Gamma_RV(a,b) 
3139 random variate, with @math{a,b>0}. Calling @code{random_gamma} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
3141 The implemented algorithm is a combination of two procedures, depending on the value of parameter @var{a}:
3143 For 
3144 m4_mathcomma(<<<a \ge 1>>>, <<<a >= 1>>>)
3145 Cheng, R.C.H. and Feast, G.M. (1979). @var{Some simple gamma variate generators}. Appl. Stat., 28, 3, 290-295.
3147 For 
3148 m4_mathcomma(<<<0 \lt a \lt 1>>>, <<<0 < a < 1>>>, <<<0 < a < 1>>>)
3149 Ahrens, J.H. and Dieter, U. (1974). @var{Computer methods for sampling from gamma, , poisson and binomial distributions}. Computing, 12, 223-246.
3151 To make use of this function, write first @code{load("distrib")}.
3153 @opencatbox{Categories:}
3154 @category{Package distrib}
3155 @category{Random numbers}
3156 @closecatbox
3158 @end deffn
3161 @node Beta Random Variable, Continuous Uniform Random Variable, Gamma Random Variable, Functions and Variables for continuous distributions
3162 @subsection Beta Random Variable
3164 The @emph{beta} distribution is a family of distributions defined over
3165 @math{[0,1]} parameterized by two positive shape parameters @math{a},
3166 and @math{b}.
3168 @anchor{pdf_beta}
3169 @deffn {Function} pdf_beta (@var{x},@var{a},@var{b})
3170 Returns the value at @var{x} of the density function of a 
3171 m4_Beta_RV(a,b) 
3172 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3174 The pdf is
3175 m4_displaymath(
3176 <<<f(x; a, b) =
3177 \cases{
3178 \displaystyle{x^{a-1}(1-x)^{b-1} \over B(a,b)} & for $0 \le x \le 1$
3181 0 & otherwise
3182 }>>>,
3184 @example
3185               [        b - 1  a - 1
3186               [ (1 - x)      x
3187  f(x, a, b) = [ -------------------   for 0 <= x <= 1
3188               [     beta(a, b)
3189               [
3190               [ 0                     otherwise
3191 @end example
3192 >>>)
3194 @opencatbox{Categories:}
3195 @category{Package distrib}
3196 @closecatbox
3198 @end deffn
3202 @anchor{cdf_beta}
3203 @deffn {Function} cdf_beta (@var{x},@var{a},@var{b})
3204 Returns the value at @var{x} of the cumulative distribution function of a 
3205 m4_Beta_RV(a,b) 
3206 random variable, with @math{a,b>0}.
3208 The cdf is
3209 m4_displaymath(
3210 <<<F(x; a, b) =
3211 \cases{
3212 0 & $x < 0$ \cr
3213 I_x(a,b) & $0 \le x \le 1$ \cr
3214 1 & $x > 1$
3215 }>>>,
3217 @example
3218              [ 0                                     for x < 0
3219              [
3220 F(x, a, b) = [ beta_incomplete_regularized(a, b, x)  for 0 <= x <= 1
3221              [
3222              [ 1                                     for x > 1
3223 @end example
3224 >>>)
3225 @c ===beg===
3226 @c load ("distrib")$
3227 @c cdf_beta(1/3,15,2);
3228 @c float(%);
3229 @c ===end===
3230 @example
3231 (%i1) load ("distrib")$
3232 @group
3233 (%i2) cdf_beta(1/3,15,2);
3234                                11
3235 (%o2)                       --------
3236                             14348907
3237 @end group
3238 @group
3239 (%i3) float(%);
3240 (%o3)                 7.666089131388195e-7
3241 @end group
3242 @end example
3244 @opencatbox{Categories:}
3245 @category{Package distrib}
3246 @closecatbox
3248 @end deffn
3251 @anchor{quantile_beta}
3252 @deffn {Function} quantile_beta (@var{q},@var{a},@var{b})
3253 Returns the @var{q}-quantile of a 
3254 m4_Beta_RV(a,b) 
3255 random variable, with @math{a,b>0}; in other words, this is the inverse of @code{cdf_beta}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
3257 @opencatbox{Categories:}
3258 @category{Package distrib}
3259 @closecatbox
3261 @end deffn
3264 @anchor{mean_beta}
3265 @deffn {Function} mean_beta (@var{a},@var{b})
3266 Returns the mean of a 
3267 m4_Beta_RV(a,b) 
3268 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3270 The mean is
3271 m4_displaymath(
3272 <<<E[X] = {a\over a+b}>>>,
3274 @example
3275                                     a
3276                            E[X] = -----
3277                                   b + a
3278 @end example
3279 >>>)
3281 @opencatbox{Categories:}
3282 @category{Package distrib}
3283 @closecatbox
3285 @end deffn
3288 @anchor{var_beta}
3289 @deffn {Function} var_beta (@var{a},@var{b})
3290 Returns the variance of a 
3291 m4_Beta_RV(a,b) 
3292 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3294 The variance is
3295 m4_displaymath(
3296 <<<V[X] = {ab \over (a+b)^2(a+b+1)}>>>,
3298 @example
3299                    a b
3300     V[X] = --------------------
3301                   2
3302            (b + a)  (b + a + 1)
3303 @end example
3304 >>>)
3306 @opencatbox{Categories:}
3307 @category{Package distrib}
3308 @closecatbox
3310 @end deffn
3312 @anchor{std_beta}
3313 @deffn {Function} std_beta (@var{a},@var{b})
3314 Returns the standard deviation of a 
3315 m4_Beta_RV(a,b) 
3316 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3318 The standard deviation is
3319 m4_displaymath(
3320 <<<D[X] = {1\over a+b}\sqrt{ab\over a+b+1}>>>,
3322 @example
3323                    a b
3324            sqrt(---------)
3325                 b + a + 1
3326     D[X] = ---------------
3327              abs(b + a)
3328 @end example
3329 >>>)
3331 @opencatbox{Categories:}
3332 @category{Package distrib}
3333 @closecatbox
3335 @end deffn
3338 @anchor{skewness_beta}
3339 @deffn {Function} skewness_beta (@var{a},@var{b})
3340 Returns the skewness coefficient of a 
3341 m4_Beta_RV(a,b) 
3342 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3344 The skewness coefficient is
3345 m4_displaymath(
3346 <<<SK[X] = {2(b-a)\sqrt{a+b+1} \over (a+b+2)\sqrt{ab}}>>>,
3348 @example
3349            2 (b - a) sqrt(b + a + 1)
3350    SK[X] = -------------------------
3351              sqrt(a b) (b + a + 2)
3352 @end example
3353 >>>)
3354 @opencatbox{Categories:}
3355 @category{Package distrib}
3356 @closecatbox
3358 @end deffn
3361 @anchor{kurtosis_beta}
3362 @deffn {Function} kurtosis_beta (@var{a},@var{b})
3363 Returns the kurtosis coefficient of a 
3364 m4_Beta_RV(a,b) 
3365 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3367 The kurtosis coefficient is
3368 m4_displaymath(
3369 <<<KU[X] = {3(a+b+1)\left(2(a+b)^2+ab(a+b-6)\right) \over
3370 ab(a+b+2)(a+b+3)} - 3>>>,
3372 @example
3373                                   2
3374           3 (b + a + 1) (2 (b + a)  + a b (b + a - 6))
3375   KU[X] = -------------------------------------------- - 3
3376                   a b (b + a + 2) (b + a + 3)
3377 @end example
3378 >>>)
3380 @opencatbox{Categories:}
3381 @category{Package distrib}
3382 @closecatbox
3384 @end deffn
3387 @anchor{random_beta}
3388 @deffn {Function} random_beta (@var{a},@var{b}) @
3389 @fname{random_beta} (@var{a},@var{b},@var{n})
3391 Returns a 
3392 m4_Beta_RV(a,b) 
3393 random variate, with @math{a,b>0}. Calling @code{random_beta} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
3395 The implemented algorithm is defined in Cheng, R.C.H.  (1978). @var{Generating Beta Variates with Nonintegral Shape Parameters}. Communications of the ACM, 21:317-322
3397 To make use of this function, write first @code{load("distrib")}.
3399 @opencatbox{Categories:}
3400 @category{Package distrib}
3401 @category{Random numbers}
3402 @closecatbox
3404 @end deffn
3406 @node Continuous Uniform Random Variable, Logistic Random Variable, Beta Random Variable, Functions and Variables for continuous distributions
3407 @subsection Continuous Uniform Random Variable
3409 The @emph{continuous uniform} distribution is constant over the
3410 interval @math{[a,b]} and is zero elsewhere.
3412 @anchor{pdf_continuous_uniform}
3413 @deffn {Function} pdf_continuous_uniform (@var{x},@var{a},@var{b})
3414 Returns the value at @var{x} of the density function of a
3415 m4_Continuous_Uniform_RV(a,b) 
3416 random variable, with 
3417 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3418 To make use of this function, write first @code{load("distrib")}.
3420 The pdf
3421 m4_displaymath(
3422 <<<f(x; a, b) =
3423 \cases{
3424 \displaystyle{1\over b-a} & for $0 \le x \le 1$ \cr
3426 0 & otherwise
3427 }>>>,
3429 @example
3430              [ 1/(b-a) for 0 <= x <= 1
3431 f(x, a, b) = [
3432              [ 0       otherwise
3433 @end example
3434 >>>)
3435 and is 0 otherwise.
3437 @opencatbox{Categories:}
3438 @category{Package distrib}
3439 @closecatbox
3441 @end deffn
3444 @anchor{cdf_continuous_uniform}
3445 @deffn {Function} cdf_continuous_uniform (@var{x},@var{a},@var{b})
3446 Returns the value at @var{x} of the cumulative distribution function of a
3447 m4_Continuous_Uniform_RV(a,b) 
3448 random variable, with 
3449 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3450 To make use of this function, write first @code{load("distrib")}.
3452 The cdf is
3453 m4_displaymath(
3454 <<<F(x; a, b) =
3455 \cases{
3456 0 & for $x < a$ \cr
3458 \displaystyle{x-a\over b-a} & for $a \le x \le b$ \cr
3460 1 & for $x > b$
3461 }>>>,
3463 @example
3464            [ 0              for x < a
3465 F(x,a,b) = [ (x-a)/(b-a)    for a <= x <= b
3466            [ 1              for x > b
3467 @end example
3468 >>>)
3469 @opencatbox{Categories:}
3470 @category{Package distrib}
3471 @closecatbox
3473 @end deffn
3476 @anchor{quantile_continuous_uniform}
3477 @deffn {Function} quantile_continuous_uniform (@var{q},@var{a},@var{b})
3478 Returns the @var{q}-quantile of a 
3479 m4_Continuous_Uniform_RV(a,b) 
3480 random
3481 variable, with 
3482 m4_math(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>)
3483 ; in other words, this is the inverse of @code{cdf_continuous_uniform}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
3485 @opencatbox{Categories:}
3486 @category{Package distrib}
3487 @closecatbox
3489 @end deffn
3492 @anchor{mean_continuous_uniform}
3493 @deffn {Function} mean_continuous_uniform (@var{a},@var{b})
3494 Returns the mean of a 
3495 m4_Continuous_Uniform_RV(a,b) 
3496 random variable,
3497 with 
3498 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3499 To make use of this function, write first @code{load("distrib")}.
3501 The mean is
3502 m4_displaymath(
3503 <<<E[X] = {a+b\over 2}>>>,
3505 @example
3506                                   b + a
3507                            E[X] = -----
3508                                     2
3510 @end example
3511 >>>)
3512 @opencatbox{Categories:}
3513 @category{Package distrib}
3514 @closecatbox
3516 @end deffn
3519 @anchor{var_continuous_uniform}
3520 @deffn {Function} var_continuous_uniform (@var{a},@var{b})
3521 Returns the variance of a 
3522 m4_Continuous_Uniform_RV(a,b) 
3523 random
3524 variable, with 
3525 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3526 To make use of this function, write first @code{load("distrib")}.
3528 The variance is
3529 m4_displaymath(
3530 <<<V[X] = {(b-a)^2\over 12}>>>,
3532 @example
3533                                         2
3534                                  (b - a)
3535                           V[X] = --------
3536                                     12
3537 @end example
3538 >>>)
3540 @opencatbox{Categories:}
3541 @category{Package distrib}
3542 @closecatbox
3544 @end deffn
3546 @anchor{std_continuous_uniform}
3547 @deffn {Function} std_continuous_uniform (@var{a},@var{b})
3548 Returns the standard deviation of a 
3549 m4_Continuous_Uniform_RV(a,b)
3550 random variable, with 
3551 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3552 To make use of this function, write first @code{load("distrib")}.
3554 The standard deviation is
3555 m4_displaymath(
3556 <<<D[X] = {b-a \over 2\sqrt{3}}>>>,
3558 @example
3559                                 abs(b - a)
3560                          D[X] = ----------
3561                                 2 sqrt(3)
3563 @end example
3564 >>>)
3566 @opencatbox{Categories:}
3567 @category{Package distrib}
3568 @closecatbox
3570 @end deffn
3573 @anchor{skewness_continuous_uniform}
3574 @deffn {Function} skewness_continuous_uniform (@var{a},@var{b})
3575 Returns the skewness coefficient of a 
3576 m4_Continuous_Uniform_RV(a,b)
3577 random variable, with 
3578 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3579 To make use of this function, write first @code{load("distrib")}.
3581 The skewness coefficient is
3582 m4_displaymath(
3583 <<<SK[X] = 0>>>,
3585 @example
3586                             SK[X] = 0
3587 @end example
3588 >>>)
3590 @opencatbox{Categories:}
3591 @category{Package distrib}
3592 @closecatbox
3594 @end deffn
3597 @anchor{kurtosis_continuous_uniform}
3598 @deffn {Function} kurtosis_continuous_uniform (@var{a},@var{b})
3599 Returns the kurtosis coefficient of a 
3600 m4_Continuous_Uniform_RV(a,b)
3601 random variable, with 
3602 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3603 To make use of this function, write first @code{load("distrib")}.
3605 The kurtosis coefficient is
3606 m4_displaymath(
3607 <<<KU[X] = -{6\over5}>>>,
3609                                      6
3610                            KU[X] = - -
3611                                      5
3612 >>>)
3614 @opencatbox{Categories:}
3615 @category{Package distrib}
3616 @closecatbox
3618 @end deffn
3621 @anchor{random_continuous_uniform}
3622 @deffn {Function} random_continuous_uniform (@var{a},@var{b}) @
3623 @fname{random_continuous_uniform} (@var{a},@var{b},@var{n})
3625 Returns a 
3626 m4_Continuous_Uniform_RV(a,b) 
3627 random variate, with 
3628 m4_mathdot(<<<a \lt b>>>, <<<a < b>>>, <<<a < b>>>) 
3629 Calling @code{random_continuous_uniform} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
3631 This is a direct application of the @code{random} built-in Maxima function.
3633 See also @mrefdot{random} To make use of this function, write first @code{load("distrib")}.
3635 @opencatbox{Categories:}
3636 @category{Package distrib}
3637 @category{Random numbers}
3638 @closecatbox
3640 @end deffn
3643 @node Logistic Random Variable, Pareto Random Variable, Continuous Uniform Random Variable, Functions and Variables for continuous distributions
3644 @subsection Logistic Random Variable
3646 The @emph{logistic} distribution is a continuous distribution where
3647 its cumulative distribution function is the logistic function.
3649 @anchor{pdf_logistic}
3650 @deffn {Function} pdf_logistic (@var{x},@var{a},@var{b})
3651 Returns the value at @var{x} of the density function of a 
3652 m4_Logistic_RV(a,b) 
3653 random variable , with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
3655 @math{a} is the location parameter and @math{b} is the scale
3656 parameter.
3658 The pdf is
3659 m4_displaymath(
3660 <<<f(x; a, b) = {e^{-(x-a)/b} \over b\left(1 + e^{-(x-a)/b}\right)^2}>>>,
3662 @example
3663                                       a - x
3664                                       -----
3665                                         b
3666                                     %e
3667                    f(x, a, b) = ----------------
3668                                      a - x
3669                                      -----
3670                                        b       2
3671                                 b (%e      + 1)
3672 @end example
3673 >>>)
3674 @opencatbox{Categories:}
3675 @category{Package distrib}
3676 @closecatbox
3678 @end deffn
3681 @anchor{cdf_logistic}
3682 @deffn {Function} cdf_logistic (@var{x},@var{a},@var{b})
3683 Returns the value at @var{x} of the cumulative distribution function of a 
3684 m4_Logistic_RV(a,b) 
3685 random variable , with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
3687 The cdf is
3688 m4_displaymath(
3689 <<<F(x; a, b) = {1\over 1+e^{-(x-a)/b}}>>>,
3691 @example
3692                                        1
3693                      F(x, a, b) = -----------
3694                                     a - x
3695                                     -----
3696                                       b
3697                                   %e      + 1
3698 @end example
3699 >>>)
3701 @opencatbox{Categories:}
3702 @category{Package distrib}
3703 @closecatbox
3705 @end deffn
3708 @anchor{quantile_logistic}
3709 @deffn {Function} quantile_logistic (@var{q},@var{a},@var{b})
3710 Returns the @var{q}-quantile of a 
3711 m4_Logistic_RV(a,b) 
3712 random variable , with @math{b>0}; in other words, this is the inverse of @code{cdf_logistic}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
3714 @opencatbox{Categories:}
3715 @category{Package distrib}
3716 @closecatbox
3718 @end deffn
3721 @anchor{mean_logistic}
3722 @deffn {Function} mean_logistic (@var{a},@var{b})
3723 Returns the mean of a 
3724 m4_Logistic_RV(a,b) 
3725 random variable , with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
3727 The mean is
3728 m4_displaymath(
3729 <<<E[X] = a>>>,
3731 @example
3732                             E[X] = a
3733 @end example
3734 >>>)
3736 @opencatbox{Categories:}
3737 @category{Package distrib}
3738 @closecatbox
3740 @end deffn
3743 @anchor{var_logistic}
3744 @deffn {Function} var_logistic (@var{a},@var{b})
3745 Returns the variance of a 
3746 m4_Logistic_RV(a,b) 
3747 random variable , with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
3749 The variance is
3750 m4_displaymath(
3751 <<<V[X] = {\pi^2 b^2 \over 3}>>>,
3753 @example
3754                                    2  2
3755                                 %pi  b
3756                          V[X] = -------
3757                                    3
3759 @end example
3760 >>>)
3762 @opencatbox{Categories:}
3763 @category{Package distrib}
3764 @closecatbox
3766 @end deffn
3769 @anchor{std_logistic}
3770 @deffn {Function} std_logistic (@var{a},@var{b})
3771 Returns the standard deviation of a 
3772 m4_Logistic_RV(a,b) 
3773 random variable , with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
3775 The standard deviation is
3776 m4_displaymath(
3777 <<<D[X] = {\pi b\over \sqrt{3}}>>>,
3779 @example
3780                                %pi abs(b)
3781                         D[X] = ----------
3782                                 sqrt(3)
3783 @end example
3784 >>>)
3786 @opencatbox{Categories:}
3787 @category{Package distrib}
3788 @closecatbox
3790 @end deffn
3793 @anchor{skewness_logistic}
3794 @deffn {Function} skewness_logistic (@var{a},@var{b})
3795 Returns the skewness coefficient of a 
3796 m4_Logistic_RV(a,b) 
3797 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
3799 The skewness coefficient is
3800 m4_displaymath(
3801 <<<SK[X] = 0>>>,
3803 @example
3804                             SK[X] = 0
3805 @end example
3806 >>>)
3808 @opencatbox{Categories:}
3809 @category{Package distrib}
3810 @closecatbox
3812 @end deffn
3815 @anchor{kurtosis_logistic}
3816 @deffn {Function} kurtosis_logistic (@var{a},@var{b})
3817 Returns the kurtosis coefficient of a 
3818 m4_Logistic_RV(a,b) 
3819 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
3821 The kurtosis coefficient is
3822 m4_displaymath(
3823 <<<KU[X] = {6\over 5}>>>,
3825 @example
3826                                     6
3827                             KU[X] = -
3828                                     5
3829 @end example
3830 >>>)
3832 @opencatbox{Categories:}
3833 @category{Package distrib}
3834 @closecatbox
3836 @end deffn
3839 @anchor{random_logistic}
3840 @deffn {Function} random_logistic (@var{a},@var{b}) @
3841 @fname{random_logistic} (@var{a},@var{b},@var{n})
3843 Returns a 
3844 m4_Logistic_RV(a,b) 
3845 random variate, with @math{b>0}. Calling @code{random_logistic} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
3847 The implemented algorithm is based on the general inverse method.
3849 To make use of this function, write first @code{load("distrib")}.
3851 @opencatbox{Categories:}
3852 @category{Package distrib}
3853 @category{Random numbers}
3854 @closecatbox
3856 @end deffn
3859 @node Pareto Random Variable, Weibull Random Variable, Logistic Random Variable, Functions and Variables for continuous distributions
3860 @subsection Pareto Random Variable
3862 @anchor{pdf_pareto}
3863 @deffn {Function} pdf_pareto (@var{x},@var{a},@var{b})
3864 Returns the value at @var{x} of the density function of a 
3865 m4_Pareto_RV(a,b) 
3866 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3868 The pdf is
3869 m4_displaymath(
3870 <<<f(x; a, b) = 
3871 \cases{
3872 \displaystyle{a b^a \over x^{a+1}} & for $x \ge b$ \cr
3874 0 & for $x < b$
3875 }>>>,
3877 @example
3878              [ a*b^a/x^(a+1)   for x >= b
3879 f(x, a, b) = [
3880              [ 0               for x < b
3881 @end example
3882 >>>)
3884 @opencatbox{Categories:}
3885 @category{Package distrib}
3886 @closecatbox
3888 @end deffn
3891 @anchor{cdf_pareto}
3892 @deffn {Function} cdf_pareto (@var{x},@var{a},@var{b})
3893 Returns the value at @var{x} of the cumulative distribution function of a 
3894 m4_Pareto_RV(a,b) 
3895 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
3897 The cdf is
3898 m4_displaymath(
3899 <<<F(x; a, b) =
3900 \cases{
3901 1-\left(\displaystyle{b\over x}\right)^a & for $x \ge b$\cr
3902 0 & for $x < b$
3903 }>>>,
3905 @example
3906              [ 1 - (b/x)^a     for x >= 0
3907 F(x, a, b) = [
3908              [ 0               for x < 0
3909 @end example
3910 >>>)
3911 @opencatbox{Categories:}
3912 @category{Package distrib}
3913 @closecatbox
3915 @end deffn
3918 @anchor{quantile_pareto}
3919 @deffn {Function} quantile_pareto (@var{q},@var{a},@var{b})
3920 Returns the @var{q}-quantile of a 
3921 m4_Pareto_RV(a,b) 
3922 random variable, with @math{a,b>0}; in other words, this is the inverse of @code{cdf_pareto}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
3924 @opencatbox{Categories:}
3925 @category{Package distrib}
3926 @closecatbox
3928 @end deffn
3931 @anchor{mean_pareto}
3932 @deffn {Function} mean_pareto (@var{a},@var{b})
3933 Returns the mean of a 
3934 m4_Pareto_RV(a,b) 
3935 random variable, with @math{a>1,b>0}. To make use of this function, write first @code{load("distrib")}.
3937 The mean is
3938 m4_displaymath(
3939 <<<E[X] = {ab\over a-1}>>>,
3940 <<<@math{E[X] = a*b/(a-1)}>>>)
3942 @opencatbox{Categories:}
3943 @category{Package distrib}
3944 @closecatbox
3946 @end deffn
3949 @anchor{var_pareto}
3950 @deffn {Function} var_pareto (@var{a},@var{b})
3951 Returns the variance of a 
3952 m4_Pareto_RV(a,b) 
3953 random variable, with @math{a>2,b>0}. To make use of this function, write first @code{load("distrib")}.
3955 The variance is
3956 m4_displaymath(
3957 <<<V[X] = {ab^2\over (a-2)(a-1)^2}>>>,
3959 @example
3960                               2
3961                            a b
3962               V[X] = ----------------
3963                                     2
3964                      (a - 2) (a - 1)
3965 @end example
3966 >>>)
3968 @opencatbox{Categories:}
3969 @category{Package distrib}
3970 @closecatbox
3972 @end deffn
3974 @anchor{std_pareto}
3975 @deffn {Function} std_pareto (@var{a},@var{b})
3976 Returns the standard deviation of a 
3977 m4_Pareto_RV(a,b) 
3978 random variable, with @math{a>2,b>0}. To make use of this function, write first @code{load("distrib")}.
3980 The standard deviation is
3981 m4_displaymath(
3982 <<<D[X] = {b\over a-1} \sqrt{a\over a-2}>>>,
3984 @example
3985                               a
3986                        sqrt(-----) b
3987                             a - 2
3988                 D[X] = -------------
3989                            a - 1
3990 @end example
3991 >>>)
3993 @opencatbox{Categories:}
3994 @category{Package distrib}
3995 @closecatbox
3997 @end deffn
4001 @anchor{skewness_pareto}
4002 @deffn {Function} skewness_pareto (@var{a},@var{b})
4003 Returns the skewness coefficient of a 
4004 m4_Pareto_RV(a,b) 
4005 random variable, with @math{a>3,b>0}. To make use of this function, write first @code{load("distrib")}.
4007 The skewness coefficient is
4008 m4_displaymath(
4009 <<<SK[X] = {2(a+1)\over a-3} \sqrt{a-2\over a}>>>,
4011 @example
4012                      2 sqrt(a - 2) (a + 1)
4013              SK[X] = ---------------------
4014                         (a - 3) sqrt(a)
4015 @end example
4016 >>>)
4018 @opencatbox{Categories:}
4019 @category{Package distrib}
4020 @closecatbox
4022 @end deffn
4025 @anchor{kurtosis_pareto}
4026 @deffn {Function} kurtosis_pareto (@var{a},@var{b})
4027 Returns the kurtosis coefficient of a 
4028 m4_Pareto_RV(a,b) 
4029 random variable, with @math{a>4,b>0}. To make use of this function, write first @code{load("distrib")}.
4031 The kurtosis coefficient is
4032 m4_displaymath(
4033 <<<KU[X] = {6\left(a^3+a^2-6*a-2\right) \over a(a-3)(a-4)} - 3>>>,
4035 @example
4036                         3    2
4037                     6 (a  + a  - 6 a - 2)
4038             KU[X] = --------------------- - 3
4039                           2
4040                       a (a  - 7 a + 12)
4041 @end example
4042 >>>)
4044 @opencatbox{Categories:}
4045 @category{Package distrib}
4046 @closecatbox
4048 @end deffn
4051 @anchor{random_pareto}
4052 @deffn {Function} random_pareto (@var{a},@var{b}) @
4053 @fname{random_pareto} (@var{a},@var{b},@var{n})
4055 Returns a 
4056 m4_Pareto_RV(a,b) 
4057 random variate, with @math{a>0,b>0}. Calling @code{random_pareto} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
4059 The implemented algorithm is based on the general inverse method.
4061 To make use of this function, write first @code{load("distrib")}.
4063 @opencatbox{Categories:}
4064 @category{Package distrib}
4065 @category{Random numbers}
4066 @closecatbox
4068 @end deffn
4071 @node Weibull Random Variable, Rayleigh Random Variable, Pareto Random Variable, Functions and Variables for continuous distributions
4072 @subsection Weibull Random Variable
4074 @anchor{pdf_weibull}
4075 @deffn {Function} pdf_weibull (@var{x},@var{a},@var{b})
4076 Returns the value at @var{x} of the density function of a 
4077 m4_Weibull_RV(a,b) 
4078 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
4080 The pdf is
4081 m4_displaymath(
4082 <<<f(x; a, b) =
4083 \cases{
4084 \displaystyle{1\over b} \left({x\over b}\right)^{a-1} e^{-(x/b)^a} &
4085 for $x \ge 0$ \cr
4087 0 & for $x < 0$
4088 }>>>,
4090 @example
4091              [                       a
4092              [      x a - 1   - (x/b)
4093              [   a (-)      %e         unit_step(x)
4094              [      b
4095              [   ----------------------------------   for x >= 0
4096              [                   b
4097 f(x, a, b) = [
4098              [ 0                                      for x < 0
4099 @end example
4100 >>>)
4101 @opencatbox{Categories:}
4102 @category{Package distrib}
4103 @closecatbox
4105 @end deffn
4108 @anchor{cdf_weibull}
4109 @deffn {Function} cdf_weibull (@var{x},@var{a},@var{b})
4110 Returns the value at @var{x} of the cumulative distribution function of a 
4111 m4_Weibull_RV(a,b) 
4112 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
4114 The cdf is
4115 m4_displaymath(
4116 <<<F(x; a, b) =
4117 \cases{
4118 1 - e^{-(x/b)^a} & for $x \ge 0$ \cr
4119 0 & for $x < 0$
4120 }>>>,
4122 @example
4123              [ 1 - exp(-(x/b)^a)      for x >= 0
4124 F(x, a, b) = [
4125              [ 0                      for x < 0
4126 @end example
4127 >>>)
4128 @opencatbox{Categories:}
4129 @category{Package distrib}
4130 @closecatbox
4132 @end deffn
4135 @anchor{quantile_weibull}
4136 @deffn {Function} quantile_weibull (@var{q},@var{a},@var{b})
4137 Returns the @var{q}-quantile of a 
4138 m4_Weibull_RV(a,b) 
4139 random variable, with @math{a,b>0}; in other words, this is the inverse of @code{cdf_weibull}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
4141 @opencatbox{Categories:}
4142 @category{Package distrib}
4143 @closecatbox
4145 @end deffn
4148 @anchor{mean_weibull}
4149 @deffn {Function} mean_weibull (@var{a},@var{b})
4150 Returns the mean of a 
4151 m4_Weibull_RV(a,b) 
4152 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
4154 The mean is
4155 m4_displaymath(
4156 <<<E[X] = b\Gamma\left(1+{1\over a}\right)>>>,
4158 @example
4159                                    1
4160                       E[X] = gamma(- + 1) b
4161                                    a
4162 @end example
4163 >>>)
4165 @opencatbox{Categories:}
4166 @category{Package distrib}
4167 @closecatbox
4169 @end deffn
4172 @anchor{var_weibull}
4173 @deffn {Function} var_weibull (@var{a},@var{b})
4174 Returns the variance of a 
4175 m4_Weibull_RV(a,b) 
4176 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
4178 The variance is
4179 m4_displaymath(
4180 <<<V[X] = b^2\left[\Gamma\left(1+{2\over a}\right) -
4181 \Gamma\left(1+{1\over a}\right)^2\right]>>>,
4183 @example
4184                          2             2 1        2
4185            V[X] = (gamma(- + 1) - gamma (- + 1)) b
4186                          a               a
4187 @end example
4188 >>>)
4190 @opencatbox{Categories:}
4191 @category{Package distrib}
4192 @closecatbox
4194 @end deffn
4196 @anchor{std_weibull}
4197 @deffn {Function} std_weibull (@var{a},@var{b})
4198 Returns the standard deviation of a 
4199 m4_Weibull_RV(a,b) 
4200 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
4202 The variance is
4203 m4_displaymath(
4204 <<<D[X] = b\sqrt{\Gamma\left(1+{2\over a}\right) -
4205 \Gamma\left(1+{1\over a}\right)^2}>>>,
4207 @example
4208                              2             2 1
4209            D[X] = sqrt(gamma(- + 1) - gamma (- + 1)) b
4210                              a               a
4211 @end example
4212 >>>)
4214 @opencatbox{Categories:}
4215 @category{Package distrib}
4216 @closecatbox
4218 @end deffn
4222 @anchor{skewness_weibull}
4223 @deffn {Function} skewness_weibull (@var{a},@var{b})
4224 Returns the skewness coefficient of a 
4225 m4_Weibull_RV(a,b) 
4226 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
4228 The skewness coefficient is
4229 m4_displaymath(
4230 <<<SK[X] = {\displaystyle\Gamma\left(1+{3\over a}\right)
4231 -3\Gamma\left(1+{1\over a}\right)\Gamma\left(1+{2\over
4232 a}\right)+2\Gamma\left(1+{1\over a}\right)^3
4233  \over
4234  \displaystyle\left[\Gamma\left(1+{2\over a}\right)-\Gamma\left(1+{1\over
4235  a}\right)^2\right]^{3/2}
4237 >>>,
4239 @example
4240               3                1            2               3 1
4241         gamma(- + 1) - 3 gamma(- + 1) gamma(- + 1) + 2 gamma (- + 1)
4242               a                a            a                 a
4243 SK[X] = ------------------------------------------------------------
4244                             2             2 1      3/2
4245                      (gamma(- + 1) - gamma (- + 1))
4246                             a               a
4247 @end example
4248 >>>)
4250 @opencatbox{Categories:}
4251 @category{Package distrib}
4252 @closecatbox
4254 @end deffn
4257 @anchor{kurtosis_weibull}
4258 @deffn {Function} kurtosis_weibull (@var{a},@var{b})
4259 Returns the kurtosis coefficient of a 
4260 m4_Weibull_RV(a,b) 
4261 random variable, with @math{a,b>0}. To make use of this function, write first @code{load("distrib")}.
4263 The kurtosis coefficient is
4264 m4_displaymath(
4265 <<<KU[X] = {
4266 \Gamma_4
4267  - 4\Gamma_1 \Gamma_3
4268  + 6\Gamma_1^2 \Gamma_2
4269  - 3 \Gamma_1^4
4270 \over
4271  \left[\Gamma_2 - \Gamma_1^2\right]^2
4272 } - 3>>>,
4274 @example
4275                 4                1            3
4276  KU[X] = (gamma(- + 1) - 4 gamma(- + 1) gamma(- + 1)
4277                 a                a            a
4278           2 1            2               4 1
4279  + 6 gamma (- + 1) gamma(- + 1) - 3 gamma (- + 1))
4280             a            a                 a
4281         2             2 1      2
4282 /(gamma(- + 1) - gamma (- + 1))  - 3
4283         a               a
4284 @end example
4285 >>>)
4286 @ifnotinfo
4287 where 
4288 m4_mathdot(\Gamma_k = \Gamma\left(1+k/a\right))
4289 @end ifnotinfo
4291 @opencatbox{Categories:}
4292 @category{Package distrib}
4293 @closecatbox
4295 @end deffn
4298 @anchor{random_weibull}
4299 @deffn {Function} random_weibull (@var{a},@var{b}) @
4300 @fname{random_weibull} (@var{a},@var{b},@var{n})
4302 Returns a 
4303 m4_Weibull_RV(a,b) 
4304 random variate, with @math{a,b>0}. Calling @code{random_weibull} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
4306 The implemented algorithm is based on the general inverse method.
4308 To make use of this function, write first @code{load("distrib")}.
4310 @opencatbox{Categories:}
4311 @category{Package distrib}
4312 @category{Random numbers}
4313 @closecatbox
4315 @end deffn
4319 @node Rayleigh Random Variable, Laplace Random Variable, Weibull Random Variable, Functions and Variables for continuous distributions
4320 @subsection Rayleigh Random Variable
4322 The @emph{Rayleigh} distribution coincides with the 
4323 m4_math(\chi^2,
4324 chi-squared) 
4325 distribution with two degrees of freedom.
4327 @anchor{pdf_rayleigh}
4328 @deffn {Function} pdf_rayleigh (@var{x},@var{b})
4329 Returns the value at @var{x} of the density function of a 
4330 m4_Rayleigh_RV(b) 
4331 random variable, with @math{b>0}.
4333 The 
4334 m4_Rayleigh_RV(b) 
4335 random variable is equivalent to the 
4336 m4_Weibull_RV(2,1/b)
4339 The pdf is
4340 m4_displaymath(
4341 <<<f(x; b) =
4342 \cases{
4343 2b^2 x e^{-b^2 x^2} & for $x \ge 0$ \cr
4344 0 & for $x < 0$
4345 }>>>,
4347 @example
4348           [ 2*b^2*x*exp(-b^2*x^2)    for x>= 0
4349 f(x, b) = [
4350           [ 0                        otherwise
4351 @end example
4352 >>>)
4353 @c ===beg===
4354 @c load ("distrib")$
4355 @c pdf_rayleigh(x,b);
4356 @c ===end===
4357 @example
4358 (%i1) load ("distrib")$
4359 @group
4360 (%i2) pdf_rayleigh(x,b);
4361                               2  2
4362                      2     - b  x
4363 (%o2)             2 b  x %e        unit_step(x)
4364 @end group
4365 @end example
4367 @opencatbox{Categories:}
4368 @category{Package distrib}
4369 @closecatbox
4371 @end deffn
4374 @anchor{cdf_rayleigh}
4375 @deffn {Function} cdf_rayleigh (@var{x},@var{b})
4376 Returns the value at @var{x} of the cumulative distribution function of a 
4377 m4_Rayleigh_RV(b) 
4378 random variable, with @math{b>0}.
4380 The 
4381 m4_Rayleigh_RV(b) 
4382 random variable is equivalent to the 
4383 m4_Weibull_RV(2,1/b)
4386 The cdf is
4387 m4_displaymath(
4388 <<<F(x; b) =
4389 \cases{
4390 1 - e^{-b^2 x^2} & for $x \ge 0$\cr
4391 0 & for $x < 0$
4392 }>>>,
4394 @example
4395           [ 1 - exp(-b^2*x^2)    for x >= 0
4396 F(x, b) = [
4397           [ 0                    for x < 0
4398 @end example
4399 >>>)
4400 @c ===beg===
4401 @c load ("distrib")$
4402 @c cdf_rayleigh(x,b);
4403 @c ===end===
4404 @example
4405 (%i1) load ("distrib")$
4406 @group
4407 (%i2) cdf_rayleigh(x,b);
4408                             2  2
4409                          - b  x
4410 (%o2)             (1 - %e       ) unit_step(x)
4411 @end group
4412 @end example
4414 @opencatbox{Categories:}
4415 @category{Package distrib}
4416 @closecatbox
4418 @end deffn
4421 @anchor{quantile_rayleigh}
4422 @deffn {Function} quantile_rayleigh (@var{q},@var{b})
4423 Returns the @var{q}-quantile of a 
4424 m4_Rayleigh_RV(b) 
4425 random variable, with @math{b>0}; in other words, this is the inverse of @code{cdf_rayleigh}. Argument @var{q} must be an element of @math{[0,1]}.
4427 The 
4428 m4_Rayleigh_RV(b) 
4429 random variable is equivalent to the 
4430 m4_Weibull_RV(2,1/b)
4433 @c ===beg===
4434 @c load ("distrib")$
4435 @c quantile_rayleigh(0.99,b);
4436 @c ===end===
4437 @example
4438 (%i1) load ("distrib")$
4439 @group
4440 (%i2) quantile_rayleigh(0.99,b);
4441                         2.145966026289347
4442 (%o2)                   -----------------
4443                                 b
4444 @end group
4445 @end example
4447 @opencatbox{Categories:}
4448 @category{Package distrib}
4449 @closecatbox
4451 @end deffn
4454 @anchor{mean_rayleigh}
4455 @deffn {Function} mean_rayleigh (@var{b})
4456 Returns the mean of a 
4457 m4_Rayleigh_RV(b) 
4458 random variable, with @math{b>0}.
4460 The 
4461 m4_Rayleigh_RV(b) 
4462 random variable is equivalent to the 
4463 m4_Weibull_RV(2,1/b)
4466 The mean is
4467 m4_displaymath(
4468 <<<E[X] = {\sqrt{\pi}\over 2b}>>>,
4470 @example
4471                                sqrt(%pi)
4472                         E[X] = ---------
4473                                   2 b
4474 @end example
4475 >>>)
4477 @c ===beg===
4478 @c load ("distrib")$
4479 @c mean_rayleigh(b);
4480 @c ===end===
4481 @example
4482 (%i1) load ("distrib")$
4483 @group
4484 (%i2) mean_rayleigh(b);
4485                             sqrt(%pi)
4486 (%o2)                       ---------
4487                                2 b
4488 @end group
4489 @end example
4491 @opencatbox{Categories:}
4492 @category{Package distrib}
4493 @closecatbox
4495 @end deffn
4498 @anchor{var_rayleigh}
4499 @deffn {Function} var_rayleigh (@var{b})
4500 Returns the variance of a 
4501 m4_Rayleigh_RV(b) 
4502 random variable, with @math{b>0}.
4504 The 
4505 m4_Rayleigh_RV(b) 
4506 random variable is equivalent to the 
4507 m4_Weibull_RV(2,1/b)
4510 The variance is
4511 m4_displaymath(
4512 <<<V[X] = {1\over b^2}\left(1-{\pi \over 4}\right)>>>,
4514 @example
4515                                     %pi
4516                                 1 - ---
4517                                      4
4518                          V[X] = -------
4519                                    2
4520                                   b
4521 @end example
4522 >>>)
4524 @c ===beg===
4525 @c load ("distrib")$
4526 @c var_rayleigh(b);
4527 @c ===end===
4528 @example
4529 (%i1) load ("distrib")$
4530 @group
4531 (%i2) var_rayleigh(b);
4532                                  %pi
4533                              1 - ---
4534                                   4
4535 (%o2)                        -------
4536                                 2
4537                                b
4538 @end group
4539 @end example
4541 @opencatbox{Categories:}
4542 @category{Package distrib}
4543 @closecatbox
4545 @end deffn
4548 @anchor{std_rayleigh}
4549 @deffn {Function} std_rayleigh (@var{b})
4550 Returns the standard deviation of a 
4551 m4_Rayleigh_RV(b) 
4552 random variable, with @math{b>0}.
4554 The 
4555 m4_Rayleigh_RV(b) 
4556 random variable is equivalent to the 
4557 m4_Weibull_RV(2,1/b)
4560 The standard deviation is
4561 m4_displaymath(
4562 <<<D[X] = {1\over b}\sqrt{\displaystyle 1 - {\pi\over 4}}>>>,
4564 @example
4565                                      %pi
4566                             sqrt(1 - ---)
4567                                       4
4568                      D[X] = -------------
4569                                   b
4570 @end example
4571 >>>)
4573 @c ===beg===
4574 @c load ("distrib")$
4575 @c std_rayleigh(b);
4576 @c ===end===
4577 @example
4578 (%i1) load ("distrib")$
4579 @group
4580 (%i2) std_rayleigh(b);
4581                                    %pi
4582                           sqrt(1 - ---)
4583                                     4
4584 (%o2)                     -------------
4585                                 b
4586 @end group
4587 @end example
4589 @opencatbox{Categories:}
4590 @category{Package distrib}
4591 @closecatbox
4593 @end deffn
4596 @anchor{skewness_rayleigh}
4597 @deffn {Function} skewness_rayleigh (@var{b})
4598 Returns the skewness coefficient of a
4599 m4_Rayleigh_RV(b) 
4600 random variable, with @math{b>0}.
4602 The 
4603 m4_Rayleigh_RV(b) 
4604 random variable is equivalent to the 
4605 m4_Weibull_RV(2,1/b)
4608 The skewness coefficient is
4609 m4_displaymath(
4610 <<<SK[X] = {2\sqrt{\pi}(\pi - 3)\over (4-\pi)^{3/2}}>>>,
4612 @example
4613                             3/2
4614                          %pi      3 sqrt(%pi)
4615                          ------ - -----------
4616                            4           4
4617                  SK[X] = --------------------
4618                                   %pi 3/2
4619                              (1 - ---)
4620                                    4
4621 @end example
4622 >>>)
4624 @c ===beg===
4625 @c load ("distrib")$
4626 @c skewness_rayleigh(b);
4627 @c ===end===
4628 @example
4629 (%i1) load ("distrib")$
4630 @group
4631 (%i2) skewness_rayleigh(b);
4632                          3/2
4633                       %pi      3 sqrt(%pi)
4634                       ------ - -----------
4635                         4           4
4636 (%o2)                 --------------------
4637                                %pi 3/2
4638                           (1 - ---)
4639                                 4
4640 @end group
4641 @end example
4643 @opencatbox{Categories:}
4644 @category{Package distrib}
4645 @closecatbox
4647 @end deffn
4650 @anchor{kurtosis_rayleigh}
4651 @deffn {Function} kurtosis_rayleigh (@var{b})
4652 Returns the kurtosis coefficient of a
4653 m4_Rayleigh_RV(b) 
4654 random variable, with @math{b>0}.
4656 The 
4657 m4_Rayleigh_RV(b) 
4658 random variable is equivalent to the 
4659 m4_Weibull_RV(2,1/b)
4662 The kurtosis coefficient is
4663 m4_displaymath(
4664 <<<KU[X] = {32-3\pi\over (4-\pi)^2} - 3>>>,
4666 @example
4667                                      2
4668                                 3 %pi
4669                             2 - ------
4670                                   16
4671                     KU[X] = ---------- - 3
4672                                  %pi 2
4673                             (1 - ---)
4674                                   4
4675 @end example
4676 >>>)
4678 @c ===beg===
4679 @c load ("distrib")$
4680 @c kurtosis_rayleigh(b);
4681 @c ===end===
4682 @example
4683 (%i1) load ("distrib")$
4684 @group
4685 (%i2) kurtosis_rayleigh(b);
4686                                   2
4687                              3 %pi
4688                          2 - ------
4689                                16
4690 (%o2)                    ---------- - 3
4691                               %pi 2
4692                          (1 - ---)
4693                                4
4694 @end group
4695 @end example
4697 @opencatbox{Categories:}
4698 @category{Package distrib}
4699 @closecatbox
4701 @end deffn
4704 @anchor{random_rayleigh}
4705 @deffn {Function} random_rayleigh (@var{b}) @
4706 @fname{random_rayleigh} (@var{b},@var{n})
4708 Returns a 
4709 m4_Rayleigh_RV(b) 
4710 random variate, with @math{b>0}. Calling @code{random_rayleigh} with a second argument @var{n}, a random sample of size @var{n} will be simulated.
4712 The implemented algorithm is based on the general inverse method.
4714 To make use of this function, write first @code{load("distrib")}.
4716 @opencatbox{Categories:}
4717 @category{Package distrib}
4718 @category{Random numbers}
4719 @closecatbox
4721 @end deffn
4725 @node Laplace Random Variable, Cauchy Random Variable, Rayleigh Random Variable, Functions and Variables for continuous distributions
4726 @subsection Laplace Random Variable
4728 The @emph{Laplace} distribution is a continuous probability
4729 distribution that is sometimes called the double exponential
4730 distribution because it can be thought of as two exponential
4731 distributions spliced back to back.
4733 @anchor{pdf_laplace}
4734 @deffn {Function} pdf_laplace (@var{x},@var{a},@var{b})
4735 Returns the value at @var{x} of the density function of a 
4736 m4_Laplace_RV(a,b) 
4737 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4739 Here, @math{a} is the location parameter (or mean), and @math{b} is
4740 the scale parameter, related to the variance.
4742 The pdf is
4743 m4_displaymath(
4744 <<<f(x; a, b) = {1\over 2b}\exp\left(-{|x-a|\over b}\right)>>>,
4746 @example
4747                            abs(x - a)
4748                          - ----------
4749                                b
4750                        %e
4751           f(x, a, b) = --------------
4752                             2 b
4753 @end example
4754 @math{1/(2*b)*exp(-abs(x-a)/b)}>>>)
4756 @opencatbox{Categories:}
4757 @category{Package distrib}
4758 @closecatbox
4760 @end deffn
4763 @anchor{cdf_laplace}
4764 @deffn {Function} cdf_laplace (@var{x},@var{a},@var{b})
4765 Returns the value at @var{x} of the cumulative distribution function of a 
4766 m4_Laplace_RV(a,b) 
4767 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4769 The cdf is
4770 m4_displaymath(
4771 <<<F(x; a, b) =
4772 \cases{
4773 \displaystyle{1\over 2} \exp\left({x-a\over b}\right) & for $x < a$\cr
4775 1-\displaystyle{1\over 2} \exp\left({x-a\over b}\right) & for $x \ge a$
4776 }>>>,
4778 @example
4779              [ 1/2*exp((x-a)/b)     for x < a
4780 F(x, a, b) = [
4781              [ 1-1/2*exp((x-a)/b)   for x >= a
4782 @end example
4783 >>>)
4784 @opencatbox{Categories:}
4785 @category{Package distrib}
4786 @closecatbox
4788 @end deffn
4791 @anchor{quantile_laplace}
4792 @deffn {Function} quantile_laplace (@var{q},@var{a},@var{b})
4793 Returns the @var{q}-quantile of a 
4794 m4_Laplace_RV(a,b) 
4795 random variable, with @math{b>0}; in other words, this is the inverse of @code{cdf_laplace}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
4797 @opencatbox{Categories:}
4798 @category{Package distrib}
4799 @closecatbox
4801 @end deffn
4804 @anchor{mean_laplace}
4805 @deffn {Function} mean_laplace (@var{a},@var{b})
4806 Returns the mean of a 
4807 m4_Laplace_RV(a,b) 
4808 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4810 The mean is
4811 m4_displaymath(
4812 <<<E[X] = a>>>,
4814 @example
4815                             E[X] = a
4816 @end example
4817 >>>)
4819 @opencatbox{Categories:}
4820 @category{Package distrib}
4821 @closecatbox
4823 @end deffn
4826 @anchor{var_laplace}
4827 @deffn {Function} var_laplace (@var{a},@var{b})
4828 Returns the variance of a 
4829 m4_Laplace_RV(a,b) 
4830 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4832 The variance is
4833 m4_displaymath(
4834 <<<V[X] = 2b^2>>>,
4836 @example
4837                                      2
4838                            V[X] = 2 b
4839 @end example
4840 >>>)
4842 @opencatbox{Categories:}
4843 @category{Package distrib}
4844 @closecatbox
4846 @end deffn
4849 @anchor{std_laplace}
4850 @deffn {Function} std_laplace (@var{a},@var{b})
4851 Returns the standard deviation of a 
4852 m4_Laplace_RV(a,b) 
4853 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4855 The standard deviation is
4856 m4_displaymath(
4857 <<<D[X] = \sqrt{2} b>>>,
4859 @example
4860                         D[X] = sqrt(2) b
4861 @end example
4862 >>>)
4864 @opencatbox{Categories:}
4865 @category{Package distrib}
4866 @closecatbox
4868 @end deffn
4871 @anchor{skewness_laplace}
4872 @deffn {Function} skewness_laplace (@var{a},@var{b})
4873 Returns the skewness coefficient of a 
4874 m4_Laplace_RV(a,b) 
4875 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4877 The skewness coefficient is
4878 m4_displaymath(
4879 <<<SK[X] = 0>>>,
4881 @example
4882                             SK[X] = 0
4883 @end example
4884 >>>)
4886 @opencatbox{Categories:}
4887 @category{Package distrib}
4888 @closecatbox
4890 @end deffn
4893 @anchor{kurtosis_laplace}
4894 @deffn {Function} kurtosis_laplace (@var{a},@var{b})
4895 Returns the kurtosis coefficient of a 
4896 m4_Laplace_RV(a,b) 
4897 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4899 The kurtosis coefficient is
4900 m4_displaymath(
4901 <<<KU[X] = 3>>>,
4903 @example
4904                             KU[X] = 3
4905 @end example
4906 >>>)
4908 @opencatbox{Categories:}
4909 @category{Package distrib}
4910 @closecatbox
4912 @end deffn
4915 @anchor{random_laplace}
4916 @deffn {Function} random_laplace (@var{a},@var{b}) @
4917 @fname{random_laplace} (@var{a},@var{b},@var{n})
4919 Returns a 
4920 m4_Laplace_RV(a,b) 
4921 random variate, with @math{b>0}. Calling @code{random_laplace} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
4923 The implemented algorithm is based on the general inverse method.
4925 To make use of this function, write first @code{load("distrib")}.
4927 @opencatbox{Categories:}
4928 @category{Package distrib}
4929 @category{Random numbers}
4930 @closecatbox
4932 @end deffn
4936 @node Cauchy Random Variable, Gumbel Random Variable, Laplace Random Variable, Functions and Variables for continuous distributions
4937 @subsection Cauchy Random Variable
4939 The @emph{Cauchy} distribution (also known as the Lorentz
4940 distribution) is the distribution of of the ratio of two independent
4941 normally distributed random variables with mean zero.
4943 Note that the mean, variance, standard deviation, skewness
4944 coefficient, and kurtosis coefficient are all undefined for the Cauchy
4945 distribution.  The integrals do not converge in this case.
4947 @anchor{pdf_cauchy}
4948 @deffn {Function} pdf_cauchy (@var{x},@var{a},@var{b})
4949 Returns the value at @var{x} of the density function of a 
4950 m4_Cauchy_RV(a,b) 
4951 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4953 The pdf is
4954 m4_displaymath(
4955 <<<f(x; a, b) = {b\over \pi\left((x-a)^2+b^2\right)}>>>,
4957 @example
4958                             b
4959       f(x, a, b) = -------------------
4960                                2    2
4961                    %pi ((x - a)  + b )
4962 @end example
4963 >>>)
4964 @opencatbox{Categories:}
4965 @category{Package distrib}
4966 @closecatbox
4968 @end deffn
4971 @anchor{cdf_cauchy}
4972 @deffn {Function} cdf_cauchy (@var{x},@var{a},@var{b})
4973 Returns the value at @var{x} of the cumulative distribution function of a 
4974 m4_Cauchy_RV(a,b) 
4975 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
4977 The cdf is
4978 m4_displaymath(
4979 <<<F(x; a, b) = {1\over 2} + {1\over \pi} \tan^{-1} {x-a\over b}>>>,
4981 @example
4982                                      x - a
4983                                 atan(-----)
4984                                        b      1
4985                    F(x, a, b) = ----------- + -
4986                                     %pi       2
4987 @end example
4988 >>>)
4989 @opencatbox{Categories:}
4990 @category{Package distrib}
4991 @closecatbox
4993 @end deffn
4996 @anchor{quantile_cauchy}
4997 @deffn {Function} quantile_cauchy (@var{q},@var{a},@var{b})
4998 Returns the @var{q}-quantile of a 
4999 m4_Cauchy_RV(a,b) 
5000 random variable, with @math{b>0}; in other words, this is the inverse of @code{cdf_cauchy}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
5002 @opencatbox{Categories:}
5003 @category{Package distrib}
5004 @closecatbox
5006 @end deffn
5009 @anchor{random_cauchy}
5010 @deffn {Function} random_cauchy (@var{a},@var{b}) @
5011 @fname{random_cauchy} (@var{a},@var{b},@var{n})
5013 Returns a 
5014 m4_Cauchy_RV(a,b) 
5015 random variate, with @math{b>0}. Calling @code{random_cauchy} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
5017 The implemented algorithm is based on the general inverse method.
5019 To make use of this function, write first @code{load("distrib")}.
5021 @opencatbox{Categories:}
5022 @category{Package distrib}
5023 @category{Random numbers}
5024 @closecatbox
5026 @end deffn
5030 @node Gumbel Random Variable,  , Cauchy Random Variable, Functions and Variables for continuous distributions
5031 @subsection Gumbel Random Variable
5033 @anchor{pdf_gumbel}
5034 @deffn {Function} pdf_gumbel (@var{x},@var{a},@var{b})
5035 Returns the value at @var{x} of the density function of a 
5036 m4_Gumbel_RV(a,b) 
5037 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
5039 The pdf is
5040 m4_displaymath(
5041 <<<f(x; a, b) = {1\over b} \exp\left[{a-x\over b} - \exp\left({a-x\over b}\right)\right]>>>,
5043 @example
5044                              a - x
5045                              -----
5046                    a - x       b
5047                    ----- - %e
5048                      b
5049                  %e
5050     f(x, a, b) = -----------------
5051                          b
5052 @end example
5053 >>>)
5055 @opencatbox{Categories:}
5056 @category{Package distrib}
5057 @closecatbox
5059 @end deffn
5062 @anchor{cdf_gumbel}
5063 @deffn {Function} cdf_gumbel (@var{x},@var{a},@var{b})
5064 Returns the value at @var{x} of the cumulative distribution function of a 
5065 m4_Gumbel_RV(a,b) 
5066 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
5068 The cdf is
5069 m4_displaymath(
5070 <<<F(x; a, b) = \exp\left[-\exp\left({a-x\over b}\right)\right]>>>,
5072 @example
5073                        a - x
5074                        -----
5075                          b
5076                    - %e
5077     F(x, a, b) = %e
5078 @end example
5079 >>>)
5080 @opencatbox{Categories:}
5081 @category{Package distrib}
5082 @closecatbox
5084 @end deffn
5087 @anchor{quantile_gumbel}
5088 @deffn {Function} quantile_gumbel (@var{q},@var{a},@var{b})
5089 Returns the @var{q}-quantile of a 
5090 m4_Gumbel_RV(a,b) 
5091 random variable, with @math{b>0}; in other words, this is the inverse of @code{cdf_gumbel}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
5093 @opencatbox{Categories:}
5094 @category{Package distrib}
5095 @closecatbox
5097 @end deffn
5100 @anchor{mean_gumbel}
5101 @deffn {Function} mean_gumbel (@var{a},@var{b})
5102 Returns the mean of a 
5103 m4_Gumbel_RV(a,b) 
5104 random variable, with @math{b>0}.
5106 The mean is
5107 m4_displaymath(
5108 <<<E[X] = a+b\gamma>>>,
5110 @example
5111                        E[X] = %gamma b + a
5112 @end example
5113 >>>)
5115 @c ===beg===
5116 @c load ("distrib")$
5117 @c mean_gumbel(a,b);
5118 @c ===end===
5119 @example
5120 (%i1) load ("distrib")$
5121 @group
5122 (%i2) mean_gumbel(a,b);
5123 (%o2)                     %gamma b + a
5124 @end group
5125 @end example
5126 where symbol @code{%gamma} stands for the Euler-Mascheroni constant. See also @mrefdot{%gamma}
5128 @opencatbox{Categories:}
5129 @category{Package distrib}
5130 @closecatbox
5132 @end deffn
5135 @anchor{var_gumbel}
5136 @deffn {Function} var_gumbel (@var{a},@var{b})
5137 Returns the variance of a 
5138 m4_Gumbel_RV(a,b) 
5139 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
5141 The variance is
5142 m4_displaymath(
5143 <<<V[X] = {\pi^2\over 6} b^2>>>,
5145 @example
5146                                    2  2
5147                                 %pi  b
5148                          V[X] = -------
5149                                    6
5150 @end example
5151 >>>)
5153 @opencatbox{Categories:}
5154 @category{Package distrib}
5155 @closecatbox
5157 @end deffn
5160 @anchor{std_gumbel}
5161 @deffn {Function} std_gumbel (@var{a},@var{b})
5162 Returns the standard deviation of a 
5163 m4_Gumbel_RV(a,b) 
5164 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
5166 The standard deviation is
5167 m4_displaymath(
5168 <<<D[X] = {\pi \over \sqrt{6}} b>>>,
5170 @example
5171                                  %pi b
5172                          D[X] = -------
5173                                 sqrt(6)
5174 @end example
5175 >>>)
5177 @opencatbox{Categories:}
5178 @category{Package distrib}
5179 @closecatbox
5181 @end deffn
5184 @anchor{skewness_gumbel}
5185 @deffn {Function} skewness_gumbel (@var{a},@var{b})
5186 Returns the skewness coefficient of a 
5187 m4_Gumbel_RV(a,b) 
5188 random variable, with @math{b>0}.
5190 The skewness coefficient is
5191 m4_displaymath(
5192 <<<SK[X] = {12\sqrt{6}\over \pi^3} \zeta(3)>>>,
5194 @example
5195                                 3/2
5196                              2 6    zeta(3)
5197                      SK[X] = --------------
5198                                      3
5199                                   %pi
5200 @end example
5201 >>>)
5203 @c ===beg===
5204 @c load ("distrib")$
5205 @c skewness_gumbel(a,b);
5206 @c ===end===
5207 @example
5208 (%i1) load ("distrib")$
5209 @group
5210 (%i2) skewness_gumbel(a,b);
5211                             3/2
5212                          2 6    zeta(3)
5213 (%o2)                    --------------
5214                                  3
5215                               %pi
5216 @end group
5217 @end example
5218 where @code{zeta} stands for the Riemann's zeta function.
5220 @opencatbox{Categories:}
5221 @category{Package distrib}
5222 @closecatbox
5224 @end deffn
5227 @anchor{kurtosis_gumbel}
5228 @deffn {Function} kurtosis_gumbel (@var{a},@var{b})
5229 Returns the kurtosis coefficient of a 
5230 m4_Gumbel_RV(a,b) 
5231 random variable, with @math{b>0}. To make use of this function, write first @code{load("distrib")}.
5233 The kurtosis coefficient is
5234 m4_displaymath(
5235 <<<KU[X] = {12\over 5}>>>,
5237 @example
5238                                    12
5239                            KU[X] = --
5240                                    5
5241 @end example
5242 >>>)
5244 @opencatbox{Categories:}
5245 @category{Package distrib}
5246 @category{Package distrib}
5247 @closecatbox
5249 @end deffn
5252 @anchor{random_gumbel}
5253 @deffn {Function} random_gumbel (@var{a},@var{b}) @
5254 @fname{random_gumbel} (@var{a},@var{b},@var{n})
5256 Returns a 
5257 m4_Gumbel_RV(a,b) 
5258 random variate, with @math{b>0}. Calling @code{random_gumbel} with a third argument @var{n}, a random sample of size @var{n} will be simulated.
5260 The implemented algorithm is based on the general inverse method.
5262 To make use of this function, write first @code{load("distrib")}.
5264 @opencatbox{Categories:}
5265 @category{Package distrib}
5266 @category{Random numbers}
5267 @closecatbox
5269 @end deffn
5272 @node Functions and Variables for discrete distributions,  , Functions and Variables for continuous distributions, Package distrib
5273 @section Functions and Variables for discrete distributions
5275 Maxima knows the following kinds of discrete distributions
5278 @menu
5279 * General Finite Discrete Random Variable::
5280 * Binomial Random Variable::
5281 * Poisson Random Variable::
5282 * Bernoulli Random Variable::
5283 * Geometric Random Variable::
5284 * Discrete Uniform Random Variable::
5285 * Hypergeometric Random Variable::
5286 * Negative Binomial Random Variable::
5287 @end menu
5289 @node General Finite Discrete Random Variable, Binomial Random Variable, Functions and Variables for discrete distributions, Functions and Variables for discrete distributions
5290 @subsection General Finite Discrete Random Variable
5292 @anchor{pdf_general_finite_discrete}
5293 @deffn {Function} pdf_general_finite_discrete (@var{x},@var{v})
5294 Returns the value at @var{x} of the probability function of a general finite discrete random variable, with vector probabilities @math{v}, such that @code{Pr(X=i) = v_i}. Vector @math{v} can be a list of nonnegative expressions, whose components will be normalized to get a vector of probabilities. To make use of this function, write first @code{load("distrib")}.
5296 @c ===beg===
5297 @c load ("distrib")$
5298 @c pdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
5299 @c pdf_general_finite_discrete(2, [1, 4, 2]);
5300 @c ===end===
5301 @example
5302 (%i1) load ("distrib")$
5303 @group
5304 (%i2) pdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
5305                                 4
5306 (%o2)                           -
5307                                 7
5308 @end group
5309 @group
5310 (%i3) pdf_general_finite_discrete(2, [1, 4, 2]);
5311                                 4
5312 (%o3)                           -
5313                                 7
5314 @end group
5315 @end example
5317 @opencatbox{Categories:}
5318 @category{Package distrib}
5319 @closecatbox
5321 @end deffn
5324 @anchor{cdf_general_finite_discrete}
5325 @deffn {Function} cdf_general_finite_discrete (@var{x},@var{v})
5326 Returns the value at @var{x} of the cumulative distribution function of a general finite discrete random variable, with vector probabilities @math{v}.
5328 See @code{pdf_general_finite_discrete} for more details.
5330 @c ===beg===
5331 @c load ("distrib")$
5332 @c cdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
5333 @c cdf_general_finite_discrete(2, [1, 4, 2]);
5334 @c cdf_general_finite_discrete(2+1/2, [1, 4, 2]);
5335 @c ===end===
5336 @example
5337 (%i1) load ("distrib")$
5338 @group
5339 (%i2) cdf_general_finite_discrete(2, [1/7, 4/7, 2/7]);
5340                                 5
5341 (%o2)                           -
5342                                 7
5343 @end group
5344 @group
5345 (%i3) cdf_general_finite_discrete(2, [1, 4, 2]);
5346                                 5
5347 (%o3)                           -
5348                                 7
5349 @end group
5350 @group
5351 (%i4) cdf_general_finite_discrete(2+1/2, [1, 4, 2]);
5352                                 5
5353 (%o4)                           -
5354                                 7
5355 @end group
5356 @end example
5358 @opencatbox{Categories:}
5359 @category{Package distrib}
5360 @closecatbox
5362 @end deffn
5365 @anchor{quantile_general_finite_discrete}
5366 @deffn {Function} quantile_general_finite_discrete (@var{q},@var{v})
5367 Returns the @var{q}-quantile of a general finite discrete random variable, with vector probabilities @math{v}.
5369 See @code{pdf_general_finite_discrete} for more details.
5371 @opencatbox{Categories:}
5372 @category{Package distrib}
5373 @closecatbox
5375 @end deffn
5378 @anchor{mean_general_finite_discrete}
5379 @deffn {Function} mean_general_finite_discrete (@var{v})
5380 Returns the mean of a general finite discrete random variable, with vector probabilities @math{v}.
5382 See @code{pdf_general_finite_discrete} for more details.
5384 @opencatbox{Categories:}
5385 @category{Package distrib}
5386 @closecatbox
5388 @end deffn
5391 @anchor{var_general_finite_discrete}
5392 @deffn {Function} var_general_finite_discrete (@var{v})
5393 Returns the variance of a general finite discrete random variable, with vector probabilities @math{v}.
5395 See @code{pdf_general_finite_discrete} for more details.
5397 @opencatbox{Categories:}
5398 @category{Package distrib}
5399 @closecatbox
5401 @end deffn
5404 @anchor{std_general_finite_discrete}
5405 @deffn {Function} std_general_finite_discrete (@var{v})
5406 Returns the standard deviation of a general finite discrete random variable, with vector probabilities @math{v}.
5408 See @code{pdf_general_finite_discrete} for more details.
5410 @opencatbox{Categories:}
5411 @category{Package distrib}
5412 @closecatbox
5414 @end deffn
5417 @anchor{skewness_general_finite_discrete}
5418 @deffn {Function} skewness_general_finite_discrete (@var{v})
5419 Returns the skewness coefficient of a general finite discrete random variable, with vector probabilities @math{v}.
5421 See @code{pdf_general_finite_discrete} for more details.
5423 @opencatbox{Categories:}
5424 @category{Package distrib}
5425 @closecatbox
5427 @end deffn
5430 @anchor{kurtosis_general_finite_discrete}
5431 @deffn {Function} kurtosis_general_finite_discrete (@var{v})
5432 Returns the kurtosis coefficient of a general finite discrete random variable, with vector probabilities @math{v}.
5434 See @code{pdf_general_finite_discrete} for more details.
5436 @opencatbox{Categories:}
5437 @category{Package distrib}
5438 @closecatbox
5440 @end deffn
5443 @anchor{random_general_finite_discrete}
5444 @deffn {Function} random_general_finite_discrete (@var{v}) @
5445 @fname{random_general_finite_discrete} (@var{v},@var{m})
5447 Returns a general finite discrete random variate, with vector probabilities @math{v}. Calling @code{random_general_finite_discrete} with a second argument @var{m}, a random sample of size @var{m} will be simulated.
5449 See @code{pdf_general_finite_discrete} for more details.
5451 @c ===beg===
5452 @c load ("distrib")$
5453 @c random_general_finite_discrete([1,3,1,5]);
5454 @c random_general_finite_discrete([1,3,1,5], 10);
5455 @c ===end===
5456 @example
5457 (%i1) load ("distrib")$
5458 @group
5459 (%i2) random_general_finite_discrete([1,3,1,5]);
5460 (%o2)                           4
5461 @end group
5462 @group
5463 (%i3) random_general_finite_discrete([1,3,1,5], 10);
5464 (%o3)            [3, 4, 3, 4, 4, 4, 4, 2, 4, 4]
5465 @end group
5466 @end example
5468 @opencatbox{Categories:}
5469 @category{Package distrib}
5470 @category{Random numbers}
5471 @closecatbox
5473 @end deffn
5475 @node Binomial Random Variable, Poisson Random Variable, General Finite Discrete Random Variable, Functions and Variables for discrete distributions
5476 @subsection Binomial Random Variable
5478 The @emph{binomial distribution} with parameters @math{n} and @math{p}
5479 is a discrete probability distribution.  It consists of @math{n}
5480 independent experiments where each experiment consists of a
5481 Boolean-valued outcome where a success occurs with a probablity
5482 @math{p}.
5484 For example, a biased coin that comes up heads with probablity
5485 @math{p} is tossed @math{n} times.  Then the probability of exactly
5486 @math{k} heads in @math{n} tosses is given by the binomial
5487 distribution.
5489 @anchor{pdf_binomial}
5490 @deffn {Function} pdf_binomial (@var{x},@var{n},@var{p})
5491 Returns the value at @var{x} of the probability function of a 
5492 m4_Binomial_RV(n,p) 
5493 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer. To make use of this function, write first @code{load("distrib")}.
5495 The pdf is
5496 m4_displaymath(
5497 <<<f(x; n, p) = {n\choose x} (1-p)^{n-x}p^x>>>,
5499 @example
5500                                                n - x  x
5501             f(x, n, p) = binomial(n, x) (1 - p)      p
5502 @end example
5503 >>>)
5505 @opencatbox{Categories:}
5506 @category{Package distrib}
5507 @closecatbox
5509 @end deffn
5512 @anchor{cdf_binomial}
5513 @deffn {Function} cdf_binomial (@var{x},@var{n},@var{p})
5514 Returns the value at @var{x} of the cumulative distribution function of a 
5515 m4_Binomial_RV(n,p) 
5516 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer.
5518 The cdf is
5519 m4_displaymath(
5520 <<<F(x; n, p) = I_{1-p}(n-\lfloor x \rfloor, \lfloor x \rfloor + 1)>>>,
5522 @example
5523 F(x, n, p) = beta_incomplete_regularized(n - floor(x), floor(x) + 1, 
5524                                                                   1 - p)
5525 @end example
5526 >>>)
5527 @ifnotinfo
5528 where 
5529 m4_math(I_z(a,b)) 
5530 is the @ref{beta_incomplete_regularized}
5531 function.
5532 @end ifnotinfo
5535 @c ===beg===
5536 @c load ("distrib")$
5537 @c cdf_binomial(5,7,1/6);
5538 @c float(%);
5539 @c ===end===
5540 @example
5541 (%i1) load ("distrib")$
5542 @group
5543 (%i2) cdf_binomial(5,7,1/6);
5544                               7775
5545 (%o2)                         ----
5546                               7776
5547 @end group
5548 @group
5549 (%i3) float(%);
5550 (%o3)                  0.9998713991769548
5551 @end group
5552 @end example
5554 @opencatbox{Categories:}
5555 @category{Package distrib}
5556 @closecatbox
5558 @end deffn
5561 @anchor{quantile_binomial}
5562 @deffn {Function} quantile_binomial (@var{q},@var{n},@var{p})
5563 Returns the @var{q}-quantile of a 
5564 m4_Binomial_RV(n,p) 
5565 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer; in other words, this is the inverse of @code{cdf_binomial}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
5567 @opencatbox{Categories:}
5568 @category{Package distrib}
5569 @closecatbox
5571 @end deffn
5574 @anchor{mean_binomial}
5575 @deffn {Function} mean_binomial (@var{n},@var{p})
5576 Returns the mean of a 
5577 m4_Binomial_RV(n,p) 
5578 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer. To make use of this function, write first @code{load("distrib")}.
5580 The mean is
5581 m4_displaymath(
5582 <<<E[X] = np>>>,
5584 @example
5585                             E[X] = n p
5586 @end example
5588 >>>)
5590 @opencatbox{Categories:}
5591 @category{Package distrib}
5592 @closecatbox
5594 @end deffn
5597 @anchor{var_binomial}
5598 @deffn {Function} var_binomial (@var{n},@var{p})
5599 Returns the variance of a 
5600 m4_Binomial_RV(n,p) 
5601 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer. To make use of this function, write first @code{load("distrib")}.
5603 The variance is
5604 m4_displaymath(
5605 <<<V[X] = np(1-p)>>>,
5607 @example
5608                        V[X] = n (1 - p) p
5609 @end example
5610 >>>)
5612 @opencatbox{Categories:}
5613 @category{Package distrib}
5614 @closecatbox
5616 @end deffn
5619 @anchor{std_binomial}
5620 @deffn {Function} std_binomial (@var{n},@var{p})
5621 Returns the standard deviation of a 
5622 m4_Binomial_RV(n,p) 
5623 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer. To make use of this function, write first @code{load("distrib")}.
5625 The standard deviation is
5626 m4_displaymath(
5627 <<<D[X] = \sqrt{np(1-p)}>>>,
5629 @example
5630                     D[X] = sqrt(n (1 - p) p)
5631 @end example
5632 >>>)
5634 @opencatbox{Categories:}
5635 @category{Package distrib}
5636 @closecatbox
5638 @end deffn
5641 @anchor{skewness_binomial}
5642 @deffn {Function} skewness_binomial (@var{n},@var{p})
5643 Returns the skewness coefficient of a 
5644 m4_Binomial_RV(n,p) 
5645 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer. To make use of this function, write first @code{load("distrib")}.
5647 The skewness coefficient is
5648 m4_displaymath(
5649 <<<SK[X] = {1-2p\over \sqrt{np(1-p)}}>>>,
5651 @example
5652                                  1 - 2 p
5653                     SK[X] = -----------------
5654                             sqrt(n (1 - p) p)
5655 @end example
5657 >>>)
5659 @opencatbox{Categories:}
5660 @category{Package distrib}
5661 @closecatbox
5663 @end deffn
5666 @anchor{kurtosis_binomial}
5667 @deffn {Function} kurtosis_binomial (@var{n},@var{p})
5668 Returns the kurtosis coefficient of a 
5669 m4_Binomial_RV(n,p) 
5670 random variable, with @math{0 \leq p \leq 1} and @math{n} a positive integer. To make use of this function, write first @code{load("distrib")}.
5672 The kurtosis coefficient is
5673 m4_displaymath(
5674 <<<KU[X] = {1-6p(1-p)\over np(1-p)}>>>,
5676 @example
5677                              1 - 6 (1 - p) p
5678                      KU[X] = ---------------
5679                                n (1 - p) p
5680 @end example
5682 >>>)
5684 @opencatbox{Categories:}
5685 @category{Package distrib}
5686 @closecatbox
5688 @end deffn
5691 @anchor{random_binomial}
5692 @deffn {Function} random_binomial (@var{n},@var{p}) @
5693 @fname{random_binomial} (@var{n},@var{p},@var{m})
5695 Returns a 
5696 m4_Binomial_RV(n,p) 
5697 random variate, with @math{0 \leq p \leq 1} and @math{n} a positive integer. Calling @code{random_binomial} with a third argument @var{m}, a random sample of size @var{m} will be simulated.
5699 The implemented algorithm is based on the one described in Kachitvichyanukul, V. and Schmeiser, B.W. (1988) @var{Binomial Random Variate Generation}. Communications of the ACM, 31, Feb., 216.
5701 To make use of this function, write first @code{load("distrib")}.
5703 @opencatbox{Categories:}
5704 @category{Package distrib}
5705 @category{Random numbers}
5706 @closecatbox
5708 @end deffn
5710 @node Poisson Random Variable, Bernoulli Random Variable, Binomial Random Variable, Functions and Variables for discrete distributions
5711 @subsection Poisson Random Variable
5713 The @emph{Poisson distribution} is a discrete probability
5714 distribution. It is the probability that a given number of events
5715 occur in a fixed interval when the events occur independently of the
5716 time of the last event, and the events occur with a known constant
5717 rate.
5719 @anchor{pdf_poisson}
5720 @deffn {Function} pdf_poisson (@var{x},@var{m})
5721 Returns the value at @var{x} of the probability function of a 
5722 m4_Poisson_RV(m) 
5723 random variable, with @math{m>0}. To make use of this function, write first @code{load("distrib")}.
5725 The pdf is
5726 m4_displaymath(
5727 <<<f(x; m) = {m^x e^{-m}\over x!}>>>,
5729 @example
5730                                    x   - m
5731                                   m  %e
5732                         f(x, m) = --------
5733                                      x!
5734 @end example
5736 >>>)
5738 @opencatbox{Categories:}
5739 @category{Package distrib}
5740 @closecatbox
5742 @end deffn
5745 @anchor{cdf_poisson}
5746 @deffn {Function} cdf_poisson (@var{x},@var{m})
5747 Returns the value at @var{x} of the cumulative distribution function of a 
5748 m4_Poisson_RV(m) 
5749 random variable, with @math{m>0}.
5751 The cdf is
5752 m4_displaymath(
5753 <<<F(x; m) = Q(\lfloor x \rfloor + 1, m)>>>,
5755 @example
5756       F(x, m) = gamma_incomplete_regularized(floor(x) + 1, m)
5757 @end example
5758 >>>)
5759 @ifnotinfo
5760 where @math{Q(x,m)} is the @ref{gamma_incomplete_regularized}
5761 function.
5762 @end ifnotinfo
5764 @c ===beg===
5765 @c load ("distrib")$
5766 @c cdf_poisson(3,5);
5767 @c float(%);
5768 @c ===end===
5769 @example
5770 (%i1) load ("distrib")$
5771 @group
5772 (%i2) cdf_poisson(3,5);
5773 (%o2)          gamma_incomplete_regularized(4, 5)
5774 @end group
5775 @group
5776 (%i3) float(%);
5777 (%o3)                  0.2650259152973619
5778 @end group
5779 @end example
5781 @opencatbox{Categories:}
5782 @category{Package distrib}
5783 @closecatbox
5785 @end deffn
5788 @anchor{quantile_poisson}
5789 @deffn {Function} quantile_poisson (@var{q},@var{m})
5790 Returns the @var{q}-quantile of a 
5791 m4_Poisson_RV(m) 
5792 random variable, with @math{m>0}; in other words, this is the inverse of @code{cdf_poisson}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
5794 @opencatbox{Categories:}
5795 @category{Package distrib}
5796 @closecatbox
5798 @end deffn
5801 @anchor{mean_poisson}
5802 @deffn {Function} mean_poisson (@var{m})
5803 Returns the mean of a 
5804 m4_Poisson_RV(m) 
5805 random variable, with  @math{m>0}. To make use of this function, write first @code{load("distrib")}.
5807 The mean is
5808 m4_displaymath(
5809 <<<E[X] = m>>>,
5811 @example
5812                             E[X] = m
5813 @end example
5814 >>>)
5816 @opencatbox{Categories:}
5817 @category{Package distrib}
5818 @closecatbox
5820 @end deffn
5823 @anchor{var_poisson}
5824 @deffn {Function} var_poisson (@var{m})
5825 Returns the variance of a 
5826 m4_Poisson_RV(m) 
5827 random variable, with  @math{m>0}. To make use of this function, write first @code{load("distrib")}.
5829 The variance is
5830 m4_displaymath(
5831 <<<V[X] = m>>>,
5833 @example
5834                             V[X] = m
5835 @end example
5836 >>>)
5838 @opencatbox{Categories:}
5839 @category{Package distrib}
5840 @closecatbox
5842 @end deffn
5845 @anchor{std_poisson}
5846 @deffn {Function} std_poisson (@var{m})
5847 Returns the standard deviation of a 
5848 m4_Poisson_RV(m) 
5849 random variable, with @math{m>0}. To make use of this function, write first @code{load("distrib")}.
5851 The standard deviation is
5852 m4_displaymath(
5853 <<<V[X] = \sqrt{m}>>>,
5855 @example
5856                          D[X] = sqrt(m)
5857 @end example
5858 >>>)
5860 @opencatbox{Categories:}
5861 @category{Package distrib}
5862 @closecatbox
5864 @end deffn
5867 @anchor{skewness_poisson}
5868 @deffn {Function} skewness_poisson (@var{m})
5869 Returns the skewness coefficient of a 
5870 m4_Poisson_RV(m) 
5871 random variable, with @math{m>0}. To make use of this function, write first @code{load("distrib")}.
5873 The skewness is
5874 m4_displaymath(
5875 <<<SK[X] = {1\over \sqrt{m}}>>>,
5877 @example
5878                                     1
5879                          SK[X] = -------
5880                                  sqrt(m)
5881 @end example
5883 >>>)
5885 @opencatbox{Categories:}
5886 @category{Package distrib}
5887 @closecatbox
5889 @end deffn
5892 @anchor{kurtosis_poisson}
5893 @deffn {Function} kurtosis_poisson (@var{m})
5894 Returns the kurtosis coefficient of a Poisson random variable  @math{Poi(m)}, with @math{m>0}. To make use of this function, write first @code{load("distrib")}.
5896 The kurtosis coefficient is
5897 m4_displaymath(
5898 <<<KU[X] = {1\over m}>>>,
5900 @example
5901                                     1
5902                             KU[X] = -
5903                                     m
5904 @end example
5905 >>>)
5907 @opencatbox{Categories:}
5908 @category{Package distrib}
5909 @closecatbox
5911 @end deffn
5914 @anchor{random_poisson}
5915 @deffn {Function} random_poisson (@var{m}) @
5916 @fname{random_poisson} (@var{m},@var{n})
5918 Returns a 
5919 m4_Poisson_RV(m) 
5920 random variate, with @math{m>0}. Calling @code{random_poisson} with a second argument @var{n}, a random sample of size @var{n} will be simulated.
5922 The implemented algorithm is the one described in Ahrens, J.H. and Dieter, U. (1982) @var{Computer Generation of Poisson Deviates From Modified Normal Distributions}. ACM Trans. Math. Software, 8, 2, June,163-179.
5924 To make use of this function, write first @code{load("distrib")}.
5926 @opencatbox{Categories:}
5927 @category{Package distrib}
5928 @category{Random numbers}
5929 @closecatbox
5931 @end deffn
5933 @node Bernoulli Random Variable, Geometric Random Variable, Poisson Random Variable, Functions and Variables for discrete distributions
5934 @subsection Bernoulli Random Variable
5936 The @emph{Bernoulli distribution} is a discrete probability
5937 distribution which takes on two values, 0 and 1.  The value 1 occurs
5938 with probability @math{p}, and 0 occurs with probabilty @math{1-p}.
5940 It is equivalent to the 
5941 m4_Binomial_RV(1,p) 
5942 distribution (@pxref{Binomial Random Variable})
5944 @anchor{pdf_bernoulli}
5945 @deffn {Function} pdf_bernoulli (@var{x},@var{p})
5946 Returns the value at @var{x} of the probability function of a 
5947 m4_Bernoulli_RV(p) 
5948 random variable, with @math{0 \leq p \leq 1}.
5950 The 
5951 m4_Bernoulli_RV(p) 
5952 random variable is equivalent to the 
5953 m4_Binomial_RV(1,p)
5956 The mean is
5957 m4_displaymath(
5958 <<<f(x; p) = p^x (1-p)^{1-x}>>>,
5960 @example
5961                                        1 - x  x
5962                       f(x, p) = (1 - p)      p
5963 @end example
5965 >>>)
5967 @c ===beg===
5968 @c load ("distrib")$
5969 @c pdf_bernoulli(1,p);
5970 @c ===end===
5971 @example
5972 (%i1) load ("distrib")$
5973 @group
5974 (%i2) pdf_bernoulli(1,p);
5975 (%o2)                           p
5976 @end group
5977 @end example
5979 @opencatbox{Categories:}
5980 @category{Package distrib}
5981 @closecatbox
5983 @end deffn
5986 @anchor{cdf_bernoulli}
5987 @deffn {Function} cdf_bernoulli (@var{x},@var{p})
5988 Returns the value at @var{x} of the cumulative distribution function of a 
5989 m4_Bernoulli_RV(p) 
5990 random variable, with @math{0 \leq p \leq 1}. To make use of this function, write first @code{load("distrib")}.
5992 The cdf is
5993 m4_displaymath(
5994 <<<F(x; p) = I_{1-p}(1-\lfloor x \rfloor, \lfloor x \rfloor + 1)>>>,
5996 @example
5997  F(x, n, p) = beta_incomplete_regularized(n - floor(x), floor(x) + 1, 
5998                                                                     1 - p)
5999 @end example
6001 >>>)
6003 @opencatbox{Categories:}
6004 @category{Package distrib}
6005 @closecatbox
6007 @end deffn
6010 @anchor{quantile_bernoulli}
6011 @deffn {Function} quantile_bernoulli (@var{q},@var{p})
6012 Returns the @var{q}-quantile of a 
6013 m4_Bernoulli_RV(p) 
6014 random variable, with @math{0 \leq p \leq 1}; in other words, this is the inverse of @code{cdf_bernoulli}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
6016 @opencatbox{Categories:}
6017 @category{Package distrib}
6018 @closecatbox
6020 @end deffn
6023 @anchor{mean_bernoulli}
6024 @deffn {Function} mean_bernoulli (@var{p})
6025 Returns the mean of a 
6026 m4_Bernoulli_RV(p) 
6027 random variable, with @math{0 \leq p \leq 1}.
6029 The 
6030 m4_Bernoulli_RV(p) 
6031 random variable is equivalent to the 
6032 m4_Binomial_RV(1,p)
6035 The mean is
6036 m4_displaymath(
6037 <<<E[X] = p>>>,
6039 @example
6040                             E[X] = p
6041 @end example
6042 >>>)
6044 @c ===beg===
6045 @c load ("distrib")$
6046 @c mean_bernoulli(p);
6047 @c ===end===
6048 @example
6049 (%i1) load ("distrib")$
6050 @group
6051 (%i2) mean_bernoulli(p);
6052 (%o2)                           p
6053 @end group
6054 @end example
6056 @opencatbox{Categories:}
6057 @category{Package distrib}
6058 @closecatbox
6060 @end deffn
6063 @anchor{var_bernoulli}
6064 @deffn {Function} var_bernoulli (@var{p})
6065 Returns the variance of a 
6066 m4_Bernoulli_RV(p) 
6067 random variable, with @math{0 \leq p \leq 1}.
6069 The 
6070 m4_Bernoulli_RV(p) 
6071 random variable is equivalent to the 
6072 m4_Binomial_RV(1,p)
6075 The variance is
6076 m4_displaymath(
6077 <<<V[X] = p(1-p)>>>,
6079 @example
6080                         V[X] = (1 - p) p
6081 @end example
6082 >>>)
6084 @c ===beg===
6085 @c load ("distrib")$
6086 @c var_bernoulli(p);
6087 @c ===end===
6088 @example
6089 (%i1) load ("distrib")$
6090 @group
6091 (%i2) var_bernoulli(p);
6092 (%o2)                       (1 - p) p
6093 @end group
6094 @end example
6096 @opencatbox{Categories:}
6097 @category{Package distrib}
6098 @closecatbox
6100 @end deffn
6103 @anchor{std_bernoulli}
6104 @deffn {Function} std_bernoulli (@var{p})
6105 Returns the standard deviation of a 
6106 m4_Bernoulli_RV(p) 
6107 random variable, with @math{0 \leq p \leq 1}.
6109 The 
6110 m4_Bernoulli_RV(p) 
6111 random variable is equivalent to the
6112 m4_Binomial_RV(1,p)
6115 The standard deviation is
6116 m4_displaymath(
6117 <<<D[X] = \sqrt{p(1-p)}>>>,
6119 @example
6120                      D[X] = sqrt((1 - p) p)
6121 @end example
6123 >>>)
6125 @c ===beg===
6126 @c load ("distrib")$
6127 @c std_bernoulli(p);
6128 @c ===end===
6129 @example
6130 (%i1) load ("distrib")$
6131 @group
6132 (%i2) std_bernoulli(p);
6133 (%o2)                    sqrt((1 - p) p)
6134 @end group
6135 @end example
6137 @opencatbox{Categories:}
6138 @category{Package distrib}
6139 @closecatbox
6141 @end deffn
6144 @anchor{skewness_bernoulli}
6145 @deffn {Function} skewness_bernoulli (@var{p})
6146 Returns the skewness coefficient of a 
6147 m4_Bernoulli_RV(p) 
6148 random variable, with @math{0 \leq p \leq 1}.
6150 The 
6151 m4_Bernoulli_RV(p)
6152 random variable is equivalent to the 
6153 m4_Binomial_RV(1,p)
6156 The skewness coefficient is
6157 m4_displaymath(
6158 <<<SK[X] = {1-2p \over \sqrt{p(1-p)}}>>>,
6160 @example
6161                                  1 - 2 p
6162                      SK[X] = ---------------
6163                              sqrt((1 - p) p)
6164 @end example
6166 >>>)
6168 @c ===beg===
6169 @c load ("distrib")$
6170 @c skewness_bernoulli(p);
6171 @c ===end===
6172 @example
6173 (%i1) load ("distrib")$
6174 @group
6175 (%i2) skewness_bernoulli(p);
6176                              1 - 2 p
6177 (%o2)                    ---------------
6178                          sqrt((1 - p) p)
6179 @end group
6180 @end example
6182 @opencatbox{Categories:}
6183 @category{Package distrib}
6184 @closecatbox
6186 @end deffn
6189 @anchor{kurtosis_bernoulli}
6190 @deffn {Function} kurtosis_bernoulli (@var{p})
6191 Returns the kurtosis coefficient of a 
6192 m4_Bernoulli_RV(p) 
6193 random variable, with @math{0 \leq p \leq 1}.
6195 The 
6196 m4_Bernoulli_RV(p) 
6197 random variable is equivalent to the 
6198 m4_Binomial_RV(1,p)
6201 The kurtosis coefficient is
6202 m4_displaymath(
6203 <<<KU[X] = {1-6p(1-p) \over p(1-p)}>>>,
6205 @example
6206                              1 - 6 (1 - p) p
6207                      KU[X] = ---------------
6208                                 (1 - p) p
6209 @end example
6211 >>>)
6213 @c ===beg===
6214 @c load ("distrib")$
6215 @c kurtosis_bernoulli(p);
6216 @c ===end===
6217 @example
6218 (%i1) load ("distrib")$
6219 @group
6220 (%i2) kurtosis_bernoulli(p);
6221                          1 - 6 (1 - p) p
6222 (%o2)                    ---------------
6223                             (1 - p) p
6224 @end group
6225 @end example
6227 @opencatbox{Categories:}
6228 @category{Package distrib}
6229 @closecatbox
6231 @end deffn
6234 @anchor{random_bernoulli}
6235 @deffn {Function} random_bernoulli (@var{p}) @
6236 @fname{random_bernoulli} (@var{p},@var{n})
6238 Returns a 
6239 m4_Bernoulli_RV(p) 
6240 random variate, with @math{0 \leq p \leq 1}. Calling @code{random_bernoulli} with a second argument @var{n}, a random sample of size @var{n} will be simulated.
6242 This is a direct application of the @code{random} built-in Maxima function.
6244 See also @mrefdot{random} To make use of this function, write first @code{load("distrib")}.
6246 @opencatbox{Categories:}
6247 @category{Package distrib}
6248 @category{Random numbers}
6249 @closecatbox
6251 @end deffn
6253 @node Geometric Random Variable, Discrete Uniform Random Variable, Bernoulli Random Variable, Functions and Variables for discrete distributions
6254 @subsection Geometric Random Variable
6256 The @emph{Geometric distibution} is a discrete probability
6257 distribution.  It is the distribution of the number 
6258 Bernoulli trials that fail before the first success.
6260 Consider flipping a biased coin where heads occurs with probablity
6261 @math{p}.   Then the probability of @math{k-1} tails in a row followed
6262 by heads is given by the 
6263 m4_Geometric_RV(p) 
6264 distribution.
6266 @anchor{pdf_geometric}
6267 @deffn {Function} pdf_geometric (@var{x},@var{p})
6268 Returns the value at @var{x} of the probability function of a 
6269 m4_Geometric_RV(p) 
6270 random variable, with
6271 @math{0 < p \leq 1}
6273 The pdf is
6274 m4_displaymath(
6275 <<<f(x; p) = p(1-p)^x>>>,
6277 @example
6278                                         x
6279                        f(x, p) = (1 - p)  p
6280 @end example
6282 >>>)
6284 This is interpreted as the probability of @math{x} failures before the first success.
6286 @code{load("distrib")} loads this function.
6288 @opencatbox{Categories:}
6289 @category{Package distrib}
6290 @closecatbox
6292 @end deffn
6295 @anchor{cdf_geometric}
6296 @deffn {Function} cdf_geometric (@var{x},@var{p})
6297 Returns the value at @var{x} of the cumulative distribution function of a 
6298 m4_Geometric_RV(p) 
6299 random variable, with
6300 @math{0 < p \leq  1}
6302 The cdf is
6303 m4_displaymath(
6304 <<<1-(1-p)^{1 + \lfloor x \rfloor}>>>,
6306 @example
6307                                       floor(x) + 1
6308                  F(x, p) = 1 - (1 - p)
6309 @end example
6311 >>>)
6313 @code{load("distrib")} loads this function.
6315 @opencatbox{Categories:}
6316 @category{Package distrib}
6317 @closecatbox
6319 @end deffn
6322 @anchor{quantile_geometric}
6323 @deffn {Function} quantile_geometric (@var{q},@var{p})
6324 Returns the @var{q}-quantile of a 
6325 m4_Geometric_RV(p) 
6326 random variable,
6327 with 
6328 m4_math(<<<0 \lt p \le 1>>>, <<<0 < p <= 1>>>, <<<0 < p <= 1>>>)
6330 in other words, this is the inverse of @code{cdf_geometric}.
6331 Argument @var{q} must be an element of @math{[0,1]}.
6333 The probability from which the quantile is derived is defined as @math{p (1 - p)^x}.
6334 This is interpreted as the probability of @math{x} failures before the first success.
6336 @code{load("distrib")} loads this function.
6338 @opencatbox{Categories:}
6339 @category{Package distrib}
6340 @closecatbox
6342 @end deffn
6345 @anchor{mean_geometric}
6346 @deffn {Function} mean_geometric (@var{p})
6347 Returns the mean of a 
6348 m4_Geometric_RV(p) 
6349 random variable, with
6350 @math{0 < p \leq 1}.
6352 The mean is
6353 m4_displaymath(
6354 <<<E[X] = {1\over p} - 1>>>,
6356 @example
6357                                  1
6358                           E[X] = - - 1
6359                                  p
6360 @end example
6362 >>>)
6364 The probability from which the mean is derived is defined as @math{p (1 - p)^x}.
6365 This is interpreted as the probability of @math{x} failures before the first success.
6367 @code{load("distrib")} loads this function.
6369 @opencatbox{Categories:}
6370 @category{Package distrib}
6371 @closecatbox
6373 @end deffn
6376 @anchor{var_geometric}
6377 @deffn {Function} var_geometric (@var{p})
6378 Returns the variance of a 
6379 m4_Geometric_RV(p) 
6380 random variable, with
6381 @math{0 < p \leq 1}.
6383 The variance is
6384 m4_displaymath(
6385 <<<V[X] = {1-p\over p^2}>>>,
6387 @example
6388                                  1 - p
6389                           V[X] = -----
6390                                    2
6391                                   p
6392 @end example
6394 >>>)
6396 @code{load("distrib")} loads this function.
6398 @opencatbox{Categories:}
6399 @category{Package distrib}
6400 @closecatbox
6402 @end deffn
6405 @anchor{std_geometric}
6406 @deffn {Function} std_geometric (@var{p})
6407 Returns the standard deviation of a 
6408 m4_Geometric_RV(p) 
6409 random variable, with
6410 @math{0 < p \leq 1}.
6412 m4_displaymath(
6413 <<<D[X] = {\sqrt{1-p} \over p}>>>,
6415 @example
6416                               sqrt(1 - p)
6417                        D[X] = -----------
6418                                    p
6419 @end example
6421 >>>)
6423 @code{load("distrib")} loads this function.
6425 @opencatbox{Categories:}
6426 @category{Package distrib}
6427 @closecatbox
6429 @end deffn
6432 @anchor{skewness_geometric}
6433 @deffn {Function} skewness_geometric (@var{p})
6434 Returns the skewness coefficient of a 
6435 m4_Geometric_RV(p) 
6436 random variable, with
6437 @math{0 < p \leq 1}.
6439 The skewness coefficient is
6440 m4_displaymath(
6441 <<<SK[X] = {2-p \over \sqrt{1-p}}>>>,
6443 @example
6444                                   2 - p
6445                        SK[X] = -----------
6446                                sqrt(1 - p)
6447 @end example
6449 >>>)
6451 @code{load("distrib")} loads this function.
6453 @opencatbox{Categories:}
6454 @category{Package distrib}
6455 @closecatbox
6457 @end deffn
6460 @anchor{kurtosis_geometric}
6461 @deffn {Function} kurtosis_geometric (@var{p})
6462 Returns the kurtosis coefficient of a geometric random variable  
6463 m4_Geometric_RV(p)
6464 , with
6465 @math{0 < p \leq 1}.
6467 The kurtosis coefficient is
6468 m4_displaymath(
6469 <<<KU[X] = {p^2-6p+6 \over 1-p}>>>,
6471 @example
6472                                2
6473                               p  - 6 p + 6
6474                       KU[X] = ------------
6475                                  1 - p
6476 @end example
6478 >>>)
6480 @code{load("distrib")} loads this function.
6482 @opencatbox{Categories:}
6483 @category{Package distrib}
6484 @closecatbox
6486 @end deffn
6489 @anchor{random_geometric}
6490 @deffn {Function} random_geometric (@var{p}) @
6491 @fname{random_geometric} (@var{p},@var{n})
6493 @code{random_geometric(@var{p})} returns one random sample from a 
6494 m4_Geometric_RV(p) 
6495 distribution,
6496 with 
6497 m4_mathdot(<<<0 \lt p \le 1>>>, <<<0 < p <= 1>>>, <<<0 < p \le 1>>>)
6499 @code{random_geometric(@var{p}, @var{n})} returns a list of @var{n} random samples.
6501 The algorithm is based on simulation of Bernoulli trials.
6503 The probability from which the random sample is derived is defined as @math{p (1 - p)^x}.
6504 This is interpreted as the probability of @math{x} failures before the first success.
6506 @code{load("distrib")} loads this function.
6509 @opencatbox{Categories:}
6510 @category{Package distrib}
6511 @category{Random numbers}
6512 @closecatbox
6514 @end deffn
6516 @node Discrete Uniform Random Variable, Hypergeometric Random Variable, Geometric Random Variable, Functions and Variables for discrete distributions
6517 @subsection Discrete Uniform Random Variable
6519 The @emph{Discrete uniform distribution} is a discrete probablity
6520 distribution where a finite number of values are equally likely to
6521 occur.  The values are @math{1,2,3,...,n}.
6523 For example throwing a fair die of 6 sides numbered 1 through 6
6524 follows a 
6525 m4_DiscreteUniform_RV(1/6) 
6526 distribution.
6528 @anchor{pdf_discrete_uniform}
6529 @deffn {Function} pdf_discrete_uniform (@var{x},@var{n})
6530 Returns the value at @var{x} of the probability function of a 
6531 m4_DiscreteUniform_RV(n) 
6532 random variable, with @math{n} a strictly positive integer. To make use of this function, write first @code{load("distrib")}.
6534 The pdf is
6535 m4_displaymath(
6536 <<<f(x,n) = {1\over n}>>>,
6538 @example
6539                                        1
6540                              f(x, n) = -
6541                                        n
6542 @end example
6544 >>>)
6546 @opencatbox{Categories:}
6547 @category{Package distrib}
6548 @closecatbox
6550 @end deffn
6553 @anchor{cdf_discrete_uniform}
6554 @deffn {Function} cdf_discrete_uniform (@var{x},@var{n})
6555 Returns the value at @var{x} of the cumulative distribution function of a 
6556 m4_DiscreteUniform_RV(n) 
6557 random variable, with @math{n} a strictly positive integer. To make use of this function, write first @code{load("distrib")}.
6559 The cdf is
6560 m4_displaymath(
6561 <<<F(x; n) = {\lfloor x \rfloor \over n}>>>,
6563 @example
6564                                   floor(x)
6565                         F(x, n) = --------
6566                                      n
6567 @end example
6569 >>>)
6571 @opencatbox{Categories:}
6572 @category{Package distrib}
6573 @closecatbox
6575 @end deffn
6578 @anchor{quantile_discrete_uniform}
6579 @deffn {Function} quantile_discrete_uniform (@var{q},@var{n})
6580 Returns the @var{q}-quantile of a 
6581 m4_DiscreteUniform_RV(n) 
6582 random variable, with @math{n} a strictly positive integer; in other words, this is the inverse of @code{cdf_discrete_uniform}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
6584 @opencatbox{Categories:}
6585 @category{Package distrib}
6586 @closecatbox
6588 @end deffn
6591 @anchor{mean_discrete_uniform}
6592 @deffn {Function} mean_discrete_uniform (@var{n})
6593 Returns the mean of a 
6594 m4_DiscreteUniform_RV(n) 
6595 random variable, with @math{n} a strictly positive integer. To make use of this function, write first @code{load("distrib")}.
6597 The mean is
6598 m4_displaymath(
6599 <<<E[X] = {n+1\over 2}>>>,
6601 @example
6602                                  n + 1
6603                           E[X] = -----
6604                                    2
6605 @end example
6607 >>>)
6609 @opencatbox{Categories:}
6610 @category{Package distrib}
6611 @closecatbox
6613 @end deffn
6616 @anchor{var_discrete_uniform}
6617 @deffn {Function} var_discrete_uniform (@var{n})
6618 Returns the variance of a 
6619 m4_DiscreteUniform_RV(n) 
6620 random variable, with @math{n} a strictly positive integer. To make use of this function, write first @code{load("distrib")}.
6622 The variance is
6623 m4_displaymath(
6624 <<<V[X] = {n^2-1 \over 12}>>>,
6626 @example
6627                                   2
6628                                  n  - 1
6629                           V[X] = ------
6630                                    12
6631 @end example
6633 >>>)
6635 @opencatbox{Categories:}
6636 @category{Package distrib}
6637 @closecatbox
6639 @end deffn
6642 @anchor{std_discrete_uniform}
6643 @deffn {Function} std_discrete_uniform (@var{n})
6644 Returns the standard deviation of a 
6645 m4_DiscreteUniform_RV(n) 
6646 random variable, with @math{n} a strictly positive integer. To make use of this function, write first @code{load("distrib")}.
6648 The standard deviation is
6649 m4_displaymath(
6650 <<<D[X] = {\sqrt{n^2-1} \over 2\sqrt{3}}>>>,
6652 @example
6653                                     2
6654                               sqrt(n  - 1)
6655                        D[X] = ------------
6656                                2 sqrt(3)
6657 @end example
6659 >>>)
6661 @opencatbox{Categories:}
6662 @category{Package distrib}
6663 @closecatbox
6665 @end deffn
6668 @anchor{skewness_discrete_uniform}
6669 @deffn {Function} skewness_discrete_uniform (@var{n})
6670 Returns the skewness coefficient of a 
6671 m4_DiscreteUniform_RV(n) 
6672 random variable, with @math{n} a strictly positive integer. To make use of this function, write first @code{load("distrib")}.
6674 The skewness coefficient is
6675 m4_displaymath(
6676 <<<SK[X] = 0>>>,
6678 @example
6679                             SK[X] = 0
6680 @end example
6681 >>>)
6683 @opencatbox{Categories:}
6684 @category{Package distrib}
6685 @closecatbox
6687 @end deffn
6690 @anchor{kurtosis_discrete_uniform}
6691 @deffn {Function} kurtosis_discrete_uniform (@var{n})
6692 Returns the kurtosis coefficient of a 
6693 m4_DiscreteUniform_RV(n) 
6694 random variable, with @math{n} a strictly positive integer. To make use of this function, write first @code{load("distrib")}.
6696 The kurtosis coefficient is
6697 m4_displaymath(
6698 <<<KU[X] = - {6(n^2+1)\over 5 (n^2-1)}>>>,
6700 @example
6701                                     2
6702                                 6 (n  + 1)
6703                    KU[X] = - -----------------
6704                              5 (n - 1) (n + 1)
6706 @end example
6707 >>>)
6709 @opencatbox{Categories:}
6710 @category{Package distrib}
6711 @closecatbox
6713 @end deffn
6716 @anchor{random_discrete_uniform}
6717 @deffn {Function} random_discrete_uniform (@var{n}) @
6718 @fname{random_discrete_uniform} (@var{n},@var{m})
6720 Returns a 
6721 m4_DiscreteUniform_RV(n) 
6722 random variate, with @math{n} a strictly positive integer. Calling @code{random_discrete_uniform} with a second argument @var{m}, a random sample of size @var{m} will be simulated.
6724 This is a direct application of the @code{random} built-in Maxima function.
6726 See also @mrefdot{random} To make use of this function, write first @code{load("distrib")}.
6728 @opencatbox{Categories:}
6729 @category{Package distrib}
6730 @category{Random numbers}
6731 @closecatbox
6733 @end deffn
6735 @node Hypergeometric Random Variable, Negative Binomial Random Variable, Discrete Uniform Random Variable, Functions and Variables for discrete distributions
6736 @subsection Hypergeometric Random Variable
6738 The @emph{hypergeometric distribution} is a discrete probability
6739 distribution.
6741 Let @math{n_1} be the number of objects of a class
6742 @math{A} and @math{n_2} be the number of objects of class @math{B}.
6743 We take out @math{n} objects, @emph{without} replacment.  Then the
6744 hypergeometric distribution is the probability that exactly @math{k}
6745 objects are from class @math{A}.  Of course @math{n \leq n_1 + n_2}.
6747 @anchor{pdf_hypergeometric}
6748 @deffn {Function} pdf_hypergeometric (@var{x},@var{n_1},@var{n_2},@var{n})
6749 Returns the value at @var{x} of the probability function of a 
6750 m4_Hypergeometric_RV(n1,n2,n)
6751 random variable, with @math{n_1}, @math{n_2} and @math{n} non negative
6752 integers and @math{n\leq n_1+n_2}.
6753 Being @math{n_1} the number of objects of class A, @math{n_2} the number of objects of class B, and
6754 @math{n} the size of the sample without replacement, this function returns the probability of
6755 event "exactly @var{x} objects are of class A". 
6757 To make use of this function, write first @code{load("distrib")}.
6759 The pdf is
6760 m4_displaymath(
6761 <<<f(x; n_1, n_2, n) = {\displaystyle{n_1\choose x} {n_2 \choose n-x}
6762 \over \displaystyle{n_2+n_1 \choose n}}>>>,
6764 @example
6765                            binomial(n_1, x) binomial(n_2, n - x)
6766        f(x, n_1, n_2, n) = -----------------------------------
6767                                   binomial(n_2 + n_1, n)
6768 @end example
6770 >>>)
6772 @opencatbox{Categories:}
6773 @category{Package distrib}
6774 @closecatbox
6776 @end deffn
6779 @anchor{cdf_hypergeometric}
6780 @deffn {Function} cdf_hypergeometric (@var{x},@var{n_1},@var{n_2},@var{n})
6781 Returns the value at @var{x} of the cumulative distribution function of a 
6782 m4_Hypergeometric_RV(n1,n2,n) 
6783 random variable, with @math{n_1}, @math{n_2} and @math{n} non negative
6784 integers and @math{n\leq n_1+n_2}. 
6785 See @code{pdf_hypergeometric} for a more complete description.
6787 To make use of this function, write first @code{load("distrib")}.
6789 The cdf is
6790 m4_displaymath(
6791 <<<F(x; n_1, n_2, n) = {n_2+n_1\choose n}^{-1}
6792 \sum_{k=0}^{\lfloor x \rfloor} {n_1 \choose k} {n_2 \choose n - k}>>>,
6794 @example
6795                       floor(x)
6796                       ====
6797                       \
6798                        >       binomial(n_1, k) binomial(n_2, n - k)
6799                       /
6800                       ====
6801                       k = 0
6802   F(x, n_1, n_2, n) = --------------------------------------------
6803                                   binomial(n_2 + n_1, n)
6804 @end example
6806 >>>)
6808 @opencatbox{Categories:}
6809 @category{Package distrib}
6810 @closecatbox
6812 @end deffn
6815 @anchor{quantile_hypergeometric}
6816 @deffn {Function} quantile_hypergeometric (@var{q},@var{n1},@var{n2},@var{n})
6817 Returns the @var{q}-quantile of a 
6818 m4_Hypergeometric_RV(n1,n2,n) 
6819 random
6820 variable, with @var{n1}, @var{n2} and @var{n} non negative integers
6821 and @math{n\leq n1+n2}; in other words, this is the inverse of @code{cdf_hypergeometric}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
6823 @opencatbox{Categories:}
6824 @category{Package distrib}
6825 @closecatbox
6827 @end deffn
6830 @anchor{mean_hypergeometric}
6831 @deffn {Function} mean_hypergeometric (@var{n_1},@var{n_2},@var{n})
6832 Returns the mean of a discrete uniform random variable 
6833 m4_Hypergeometric_RV(n_1,n_2,n)
6834 , with @math{n_1}, @math{n_2} and @math{n} non negative integers and @math{n\leq n_1+n_2}. To make use of this function, write first @code{load("distrib")}.
6836 The mean is
6837 m4_displaymath(
6838 <<<E[X] = {n n_1\over n_2+n_1}>>>,
6840 @example
6841                                  n n_1
6842                          E[X] = -------
6843                                 n_2 + n_1
6845 @end example
6847 >>>)
6849 @opencatbox{Categories:}
6850 @category{Package distrib}
6851 @closecatbox
6853 @end deffn
6856 @anchor{var_hypergeometric}
6857 @deffn {Function} var_hypergeometric (@var{n1},@var{n2},@var{n})
6858 Returns the variance of a hypergeometric  random variable 
6859 m4_Hypergeometric_RV(n_1,n_2,n)
6861 with @math{n_1}, @math{n_2} and @math{n} non negative integers and 
6862 m4_mathdot(<<<n \le n_1 + n_2>>>, <<<n <= n_1 + n_2>>>)
6863 To make use of this function, write first @code{load("distrib")}.
6865 The variance is
6866 m4_displaymath(
6867 <<<V[X] = {n n_1 n_2 (n_1 + n_2 - n)
6868  \over
6869  (n_1 + n_2 - 1) (n_1 + n_2)^2}>>>,
6871 @example
6872                         n n_1 n_2 (n_2 + n_1 - n)
6873                 V[X] = ----------------------------
6874                                                   2
6875                        (n_2 + n_1 - 1) (n_2 + n_1)
6876 @end example
6878 >>>)
6880 @opencatbox{Categories:}
6881 @category{Package distrib}
6882 @closecatbox
6884 @end deffn
6887 @anchor{std_hypergeometric}
6888 @deffn {Function} std_hypergeometric (@var{n_1},@var{n_2},@var{n})
6889 Returns the standard deviation of a 
6890 m4_Hypergeometric_RV(n_1,n_2,n)
6891 random variable, with @math{n_1}, @math{n_2} and @math{n} non negative integers and @math{n\leq n_1+n_2}. To make use of this function, write first @code{load("distrib")}.
6893 The standard deviation is
6894 m4_displaymath(
6895 <<<D[X] = {1\over n_1+n_2}\sqrt{n n_1 n_2 (n_1 + n_2 - n) \over n_1+n_2-1}>>>,
6897 @example
6898                           n n_1 n_2 (n_2 + n_1 - n)
6899                      sqrt(-------------------------)
6900                                 n_2 + n_1 - 1
6901               D[X] = -------------------------------
6902                                 n_2 + n_1
6903 @end example
6905 >>>)
6907 @opencatbox{Categories:}
6908 @category{Package distrib}
6909 @closecatbox
6911 @end deffn
6914 @anchor{skewness_hypergeometric}
6915 @deffn {Function} skewness_hypergeometric (@var{n_1},@var{n_2},@var{n})
6916 Returns the skewness coefficient of a 
6917 m4_Hypergeometric_RV(n1,n2,n) 
6918 random variable, with @math{n_1}, @math{n_2} and @math{n} non negative integers and @math{n\leq n1+n2}. To make use of this function, write first @code{load("distrib")}.
6920 The skewness coefficient is
6921 m4_displaymath(
6922 <<<SK[X] = {(n_2-n_2)(n_1+n_2-2n)\over n_1+n_2-2}
6923 \sqrt{n_1+n_2-1 \over n n_1 n_2 (n_1+n_2-n)}>>>,
6925 @example
6926                                                  n_2 + n_1 - 1
6927         (n_2 - n_1) (n_2 + n_1 - 2 n) sqrt(-------------------------)
6928                                            n n_1 n_2 (n_2 + n_1 - n)
6929 SK[X] = -------------------------------------------------------------
6930                                 n_2 + n_1 - 2
6932 @end example
6934 >>>)
6936 @opencatbox{Categories:}
6937 @category{Package distrib}
6938 @closecatbox
6940 @end deffn
6943 @anchor{kurtosis_hypergeometric}
6944 @deffn {Function} kurtosis_hypergeometric (@var{n_1},@var{n_2},@var{n})
6945 Returns the kurtosis coefficient of a 
6946 m4_Hypergeometric_RV(n_1,n_2,n) 
6947 random variable, with @math{n_1}, @math{n_2} and @math{n} non negative integers and @math{n\leq n1+n2}. To make use of this function, write first @code{load("distrib")}.
6949 The kurtosis coefficient is
6950 m4_displaymath(
6952 \eqalign{
6953 KU[X] = &
6954  \left[{C(1)C(0)^2
6955    \over
6956   n n_1 n_2 C(3)C(2)C(n)}\right. \cr
6957   & \times 
6958   \left.\left(
6959     {3n_1n_2\left((n-2)C(0)^2+6nC(n)-n^2C(0)\right)
6960     \over
6961     C(0)^2
6962     }
6963     -6nC(n) + C(0)C(-1)
6964   \right)\right] \cr
6965   &-3
6966 }>>>,
6968 @example
6969                                     2
6970 KU[X] = ((n_2 + n_1 - 1) (n_2 + n_1)
6971                                 2                          2
6972   3 n_1 n_2 ((n - 2) (n_2 + n_1)  + 6 n (n_2 + n_1 - n) - n  (n_2 + n_1))
6973  (-----------------------------------------------------------------------
6974                                           2
6975                                (n_2 + n_1)
6976  - 6 n (n_2 + n_1 - n) + (n_2 + n_1) (n_2 + n_1 + 1)))
6977 /(n n_1 n_2 (n_2 + n_1 - 3) (n_2 + n_1 - 2) (n_2 + n_1 - n)) - 3
6978 @end example
6979 >>>)
6980 @ifnotinfo
6981 where 
6982 m4_mathdot(C(k) = n_1+n_2-k)
6983 @end ifnotinfo
6985 @opencatbox{Categories:}
6986 @category{Package distrib}
6987 @closecatbox
6989 @end deffn
6992 @anchor{random_hypergeometric}
6993 @deffn {Function} random_hypergeometric (@var{n1},@var{n2},@var{n}) @
6994 @fname{random_hypergeometric} (@var{n1},@var{n2},@var{n},@var{m})
6996 Returns a 
6997 m4_Hypergeometric_RV(n1,n2,n) 
6998 random variate,
6999 with @var{n1}, @var{n2} and @var{n} non negative integers and 
7000 m4_mathdot(<<<n \le n_1 + n_2>>>, <<<n <= n_1 + n_2>>>)
7001 Calling @code{random_hypergeometric} with a fourth argument @var{m}, a random sample of size @var{m} will be simulated.
7003 Algorithm described in Kachitvichyanukul, V., Schmeiser, B.W. (1985) @var{Computer generation of hypergeometric random variates.} Journal of Statistical Computation and Simulation 22, 127-145.
7005 To make use of this function, write first @code{load("distrib")}.
7007 @opencatbox{Categories:}
7008 @category{Package distrib}
7009 @category{Random numbers}
7010 @closecatbox
7012 @end deffn
7014 @node Negative Binomial Random Variable,  , Hypergeometric Random Variable, Functions and Variables for discrete distributions
7015 @subsection Negative Binomial Random Variable
7017 The @emph{negative binomial distribution} is a discrete probability
7018 distribution.  Suppose we have a sequence of Bernoulli trials where
7019 each trial has two outcomes called ``success'' and ``failure'' where
7020 ``success'' occurs with probablity @math{p} and ``failure'' with
7021 probability @math{1-p}.  We observe the sequence until a predefined
7022 number @math{r} of sucesses have occurred.  Then the number of
7023 failures seen will have a 
7024 m4_NegativeBinomial_RV(r, p) 
7025 distribution.
7027 @anchor{pdf_negative_binomial}
7028 @deffn {Function} pdf_negative_binomial (@var{x},@var{n},@var{p})
7029 Returns the value at @var{x} of the probability function of a 
7030 m4_NegativeBinomial_RV(n,p) 
7031 random variable, with @math{0 < p \leq 1} and @math{n} a positive number. To make use of this function, write first @code{load("distrib")}.
7033 The pdf is
7034 m4_displaymath(
7035 <<<f(x; n, p) = {x+n-1 \choose n-1} (1-p)^xp^n>>>,
7037 @example
7038                                    x  n
7039                             (1 - p)  p  gamma(x + n)
7040                f(x, n, p) = ------------------------
7041                                   gamma(n) x!
7042 @end example
7044 >>>)
7046 @opencatbox{Categories:}
7047 @category{Package distrib}
7048 @closecatbox
7050 @end deffn
7053 @anchor{cdf_negative_binomial}
7054 @deffn {Function} cdf_negative_binomial (@var{x},@var{n},@var{p})
7055 Returns the value at @var{x} of the cumulative distribution function of a 
7056 m4_NegativeBinomial_RV(n,p) 
7057 random variable, with @math{0 < p \leq 1} and @math{n} a positive number.
7059 The cdf is
7060 m4_displaymath(
7061 <<<F(x; n, p) = I_p(n,\lfloor x \rfloor + 1)>>>,
7063 @example
7064    F(x, n, p) = beta_incomplete_regularized(n, floor(x) + 1, p)
7065 @end example
7066 >>>)
7067 @ifnotinfo
7068 where 
7069 m4_math(I_p(a,b)) 
7070 is the @ref{beta_incomplete_regularized} function.
7071 @end ifnotinfo
7073 @c ===beg===
7074 @c load ("distrib")$
7075 @c cdf_negative_binomial(3,4,1/8);
7076 @c ===end===
7077 @example
7078 (%i1) load ("distrib")$
7079 @group
7080 (%i2) cdf_negative_binomial(3,4,1/8);
7081                               3271
7082 (%o2)                        ------
7083                              524288
7084 @end group
7085 @end example
7087 @opencatbox{Categories:}
7088 @category{Package distrib}
7089 @closecatbox
7091 @end deffn
7094 @anchor{quantile_negative_binomial}
7095 @deffn {Function} quantile_negative_binomial (@var{q},@var{n},@var{p})
7096 Returns the @var{q}-quantile of a 
7097 m4_NegativeBinomial_RV(n,p) 
7098 random variable, with @math{0 < p \leq 1} and @math{n} a positive number; in other words, this is the inverse of @code{cdf_negative_binomial}. Argument @var{q} must be an element of @math{[0,1]}. To make use of this function, write first @code{load("distrib")}.
7100 @opencatbox{Categories:}
7101 @category{Package distrib}
7102 @closecatbox
7104 @end deffn
7107 @anchor{mean_negative_binomial}
7108 @deffn {Function} mean_negative_binomial (@var{n},@var{p})
7109 Returns the mean of a 
7110 m4_NegativeBinomial_RV(n,p) 
7111 random variable, with @math{0 < p \leq 1} and @math{n} a positive number. To make use of this function, write first @code{load("distrib")}.
7113 The mean is
7114 m4_displaymath(
7115 <<<E[X] = {n(1-p)\over p}>>>,
7117 @example
7118                                n (1 - p)
7119                         E[X] = ---------
7120                                    p
7121 @end example
7122 >>>)
7124 @opencatbox{Categories:}
7125 @category{Package distrib}
7126 @closecatbox
7128 @end deffn
7131 @anchor{var_negative_binomial}
7132 @deffn {Function} var_negative_binomial (@var{n},@var{p})
7133 Returns the variance of a 
7134 m4_NegativeBinomial_RV(n,p) 
7135 random variable, with @math{0 < p \leq 1} and @math{n} a positive number. To make use of this function, write first @code{load("distrib")}.
7137 The variance is
7138 m4_displaymath(
7139 <<<V[X] = {n(1-p)\over p^2}>>>,
7141 @example
7142                                n (1 - p)
7143                         V[X] = ---------
7144                                    2
7145                                   p
7146 @end example
7147 >>>)
7149 @opencatbox{Categories:}
7150 @category{Package distrib}
7151 @closecatbox
7153 @end deffn
7156 @anchor{std_negative_binomial}
7157 @deffn {Function} std_negative_binomial (@var{n},@var{p})
7158 Returns the standard deviation of a 
7159 m4_NegativeBinomial_RV(n,p) 
7160 random variable, with @math{0 < p \leq 1} and @math{n} a positive number. To make use of this function, write first @code{load("distrib")}.
7162 The standard deviation is
7163 m4_displaymath(
7164 <<<D[X] = {\sqrt{n(1-p)}\over p}>>>,
7166 @example
7167                             sqrt(n (1 - p))
7168                      D[X] = ---------------
7169                                    p
7170 @end example
7171 >>>)
7173 @opencatbox{Categories:}
7174 @category{Package distrib}
7175 @closecatbox
7177 @end deffn
7180 @anchor{skewness_negative_binomial}
7181 @deffn {Function} skewness_negative_binomial (@var{n},@var{p})
7182 Returns the skewness coefficient of a 
7183 m4_NegativeBinomial_RV(n,p) 
7184 random variable, with @math{0 < p \leq 1} and @math{n} a positive number. To make use of this function, write first @code{load("distrib")}.
7186 The skewness coefficient is
7187 m4_displaymath(
7188 <<<SK[X] = {2-p \over \sqrt{n(1-p)}}>>>,
7190 @example
7191                                   2 - p
7192                      SK[X] = ---------------
7193                              sqrt(n (1 - p))
7194 @end example
7195 >>>)
7197 @opencatbox{Categories:}
7198 @category{Package distrib}
7199 @closecatbox
7201 @end deffn
7204 @anchor{kurtosis_negative_binomial}
7205 @deffn {Function} kurtosis_negative_binomial (@var{n},@var{p})
7206 Returns the kurtosis coefficient of a 
7207 m4_NegativeBinomial_RV(n,p) 
7208 random variable, with @math{0 < p \leq 1} and @math{n} a positive number. To make use of this function, write first @code{load("distrib")}.
7210 The kurtosis coefficient is
7211 m4_displaymath(
7212 <<<KU[X] = {p^2-6p+6 \over n(1-p)}>>>,
7214 @example
7215                                2
7216                               p  - 6 p + 6
7217                       KU[X] = ------------
7218                                n (1 - p)
7219 @end example
7221 >>>)
7223 @opencatbox{Categories:}
7224 @category{Package distrib}
7225 @closecatbox
7227 @end deffn
7230 @anchor{random_negative_binomial}
7231 @deffn {Function} random_negative_binomial (@var{n},@var{p}) @
7232 @fname{random_negative_binomial} (@var{n},@var{p},@var{m})
7234 Returns a 
7235 m4_NegativeBinomial_RV(n,p) 
7236 random variate, with @math{0 < p \leq 1} and @math{n} a positive number. Calling @code{random_negative_binomial} with a third argument @var{m}, a random sample of size @var{m} will be simulated.
7238 Algorithm described in Devroye, L. (1986) @var{Non-Uniform Random Variate Generation}. Springer Verlag, p. 480.
7240 To make use of this function, write first @code{load("distrib")}.
7242 @opencatbox{Categories:}
7243 @category{Package distrib}
7244 @category{Random numbers}
7245 @closecatbox
7247 @end deffn
7248 @c Undefine all the m4 macros we defined in this file.
7249 m4_undefine(<<<m4_Normal_RV>>>)