Introducción a distrib
======================

El paquete distrib contiene un conjunto de funciones para la realización de cálculos probabilísticos con modelos univariantes, tanto discretos como continuos.

A continuación un breve recordatorio de las deficiones básicas sobre distribuciones de probabilidad.

Sea f(x) la FUNCIÓN DE DENSIDAD de una variable aleatoria X absolutamente continua. La FUNCIÓN DE DISTRIBUCIÓN se define como

                            x
                           /
                           [
                    F(x) = I     f(u) du
                           ]
                           /
                            minf

que es igual a la probabilidad PR(X <= X).

La MEDIA es un parámetro de localización y se define como

                          inf
                         /
                         [
                E[X]  =  I   x f(x) dx
                         ]
                         /
                          minf

La  VARIANZA es una medida de dispersión,

                      inf
                     /
                     [                    2
              V[X] = I     f(x) (x - E[X])  dx
                     ]
                     /
                      minf

que es un número real positivo. La raíz cuadrada de la varianza es la DESVIACIÓN TÍPICA, D[X]=sqrt(V[X]), siendo otra medida de dispersión.

El COEFICIENTE DE ASIMETRÍA es una medida de forma,

                      inf
                     /
                 1   [                    3
       SK[X] = ----- I     f(x) (x - E[X])  dx
                   3 ]
               D[X]  /
                      minf

Y el COEFICIENTE DE CURTOSIS mide el apuntamiento de la densidad,

                      inf
                     /
                 1   [                    4
       KU[X] = ----- I     f(x) (x - E[X])  dx - 3
                   4 ]
               D[X]  /
                      minf

Si X es normal, KU[X]=0. De hecho, tanto la asimetría como la curtosis son parámetros de forma para medir la no normalidad de una distribución.

Si la variable aleatoria X es discreta, su función de densidad, o de PROBABILIAD,  f(x) toma valores positivos dentro de un conjunto numerable de valores x_i, y cero en cualquier otro lugar. En este caso, la función de distribución es

                            ====
                            \
                     F(x) =  >    f(x )
                            /        i
                            ====
                           x <= x
                            i

La media, varianza, desviación típica y los coeficientes de asimetría y curtosis adquieren las formas

                            ====
                            \
                     E[X] =  >  x  f(x ) ,
                            /    i    i
                            ====
                             x
                              i

                     ====
                     \                     2
             V[X] =   >    f(x ) (x - E[X])  ,
                     /        i    i
                     ====
                      x
                       i

                    D[X] = sqrt(V[X]),

                          ====
                   1      \                     3
       SK[X] =  -------    >    f(x ) (x - E[X])
                D[X]^3    /        i    i
                          ====
                           x
                            i

y

                          ====
                   1      \                     4
       KU[X] =  -------    >    f(x ) (x - E[X])   - 3 ,
                D[X]^4    /        i    i
                          ====
                           x
                            i

respectivamente.

El paquete distrib incluye funciones para la simulación de variables aleatorias. Algunas de estas funciones hacen uso de variables opcionales que indican el algoritmo a ejecutar. El método general de inversión (basado en el hecho de que si U es un número aleatorio generado uniformemente en (0,1), entonces F^(-1)(U) es una variable aleatoria con distribución F) está implementado en la mayoría de los casos, aunque se trate de una técnica subóptima en términos de tiempo, pero útil para compararla con otros algoritmos. En el siguiente ejemplo se compara mediante histogramas el comportamiento de los algoritmos ahrens_cheng y inverse para la simulación de variables chi-cuadrada:

     (%i1) load(distrib)$
     (%i2) load(descriptive)$
     (%i3) showtime: true$
     Evaluation took 0.00 seconds (0.00 elapsed) using 32 bytes.
     (%i4) random_chi2_algorithm: 'ahrens_cheng$
           histogram(random_chi2(10,500))$
     Evaluation took 0.00 seconds (0.00 elapsed) using 40 bytes.
     Evaluation took 0.69 seconds (0.71 elapsed) using 5.694 MB.
     (%i6) random_chi2_algorithm: 'inverse$ histogram(random_chi2(10,500))$
     Evaluation took 0.00 seconds (0.00 elapsed) using 32 bytes.
     Evaluation took 10.15 seconds (10.17 elapsed) using 322.098 MB.

A fin de hacer comparaciones visuales entre algoritmos para variables discretas, se debería utilizar la función barsplot del paquete descriptive.

Nótese que aún queda trabajo por hacer, puesto que estas funciones de simulación todavía no se han puesto a prueba con tests de bondad de ajuste más rigurosos.

Por favor, consúltese cualquier manual introductorio de probabilidad y estadística para más información sobre toda esta parafernalia matemática.

Se sigue cierta convención a la hora de nombrar las funciones del paquete distrib. Cada nombre tiene dos partes, el primero hace referencia a la función o parámetro que se quiere calcular,

     Funciones:
        Función de densidad        (pdf_*)
        Función de distribución    (cdf_*)
        Cuantil                    (quantile_*)
        Media                      (mean_*)
        Varianza                   (var_*)
        Desviación típica          (std_*)
        Coeficiente de asimetría   (skewness_*)
        Coeficiente de curtosis    (kurtosis_*)
        Valor aleatorio            (random_*)

La segunda parte hace referencia explícita al modelo probabilístico,

     Distribuciones continuas:
        Normal              (*normal)
        Student             (*student_t)
        Chi^2               (*chi2)
        F                   (*f)
        Exponencial         (*exp)
        Lognormal           (*lognormal)
        Gamma               (*gamma)
        Beta                (*beta)
        Continua uniforme   (*continuous_uniform)
        Logística           (*logistic)
        Pareto              (*pareto)
        Weibull             (*weibull)
        Rayleigh            (*rayleigh)
        Laplace             (*laplace)
        Cauchy              (*cauchy)
        Gumbel              (*gumbel)

     Distribuciones discretas:
        Binomial             (*binomial)
        Poisson              (*poisson)
        Bernoulli            (*bernoulli)
        Geométrica           (*geometric)
        Uniforme discreta    (*discrete_uniform)
        Hipergeométrica      (*hypergeometric)
        Binomial negativa    (*negative_binomial)

Por ejemplo, pdf_student_t(x,n) es la función de densidad de la distribución de Student con N grados de libertad, std_pareto(a,b) es la desviación típica de la distribución de Pareto de parámetros A y B, y kurtosis_poisson(m) es el coeficiente de curtosis de la distribución de Poisson de media M.

Para poder hacer uso del paquete distrib es necesario cargarlo primero tecleando

     (%i1) load(distrib)$

Para comentarios, errores o sugerencias, por favor contáctese conmigo en 'MARIO ARROBA EDU PUNTO XUNTA PUNTO ES'.

Funciones y variables para distribuciones continuas
===================================================

 -- Función: pdf_normal (X,M,S)
     Devuelve el valor correspondiente a X de la función de densidad de la variable aleatoria Normal(m,s), con s>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_normal (X,M,S)
     Devuelve el valor correspondiente a X de la función de distribución de la variable aleatoria Normal(m,s), con s>0. Esta función se define en términos de la función de error,  erf, de Maxima.

          (%i1) load (distrib)$
          (%i2) assume(s>0)$ cdf_normal(x,m,s);
                                       x - m
                                 erf(---------)
                                     sqrt(2) s    1
          (%o3)                  -------------- + -
                                       2          2

     Véase también erf.

 -- Función: quantile_normal (Q,M,S)
     Devuelve el Q-cuantil de una variable aleatoria Normal(m,s), con s>0; en otras palabras, es la inversa de  cdf_normal. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_normal (M,S)
     Devuelve la media de  una variable aleatoria Normal(m,s), con s>0, es decir M. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_normal (M,S)
     Devuelve la varianza de  una variable aleatoria Normal(m,s), con s>0, es decir S^2.

 -- Función: std_normal (M,S)
     Devuelve la desviación típica de  una variable aleatoria Normal(m,s), con s>0, es decir S. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_normal (M,S)
     Devuelve el coeficiente de asimetría de una variable aleatoria Normal(m,s), con s>0, que es siempre igual a 0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_normal (M,S)
     Devuelve el coeficiente de curtosis de una variable aleatoria Normal(m,s), con s>0, que es siempre igual a 0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_normal_algorithm
     Valor por defecto: box_mueller

     Este es el algoritmo seleccionado para simular variables aleatorias normales. Los algoritmos implementados son box_mueller y inverse:

       * box_mueller, basado en el algoritmo descrito en Knuth, D.E. (1981) SEMINUMERICAL ALGORITHMS. THE ART OF COMPUTER PROGRAMMING. Addison-Wesley.

       * inverse, basado en el método inverso.

     Véase también random_normal.

 -- Función: random_normal (M,S)
 -- Función: random_normal (M,S,N)
     Devuelve un valor aleatorio  Normal(m,s), con s>0. Llamando a random_normal con un tercer argumento N, se simula una muestra aleatoria de tamaño N.

     Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_normal_algorithm, cuyo valor por defecto es box_mueller.

     Véanse también random_normal_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_student_t (X,N)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria de Student t(n), con n>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_student_t_t (X,N)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Student t(n), con n>0. Esta función no tiene expresión compacta y se calcula numéricamente si la variable global numer vale true, en otro caso devuelve una expresión nominal.

          (%i1) load (distrib)$
          (%i2) cdf_student_t(1/2, 7/3);
                                               1  7
          (%o2)                  cdf_student_t(-, -)
                                               2  3
          (%i3) %,numer;
          (%o3)                   .6698450596140417

 -- Función: quantile_student_t (Q,N)
     Devuelve el Q-cuantil de una variable aleatoria de Student t(n), con n>0; en otras palabras, se trata de la inversa de  cdf_student_t. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_student_t (N)
     Devuelve la media de una variable aleatoria de Student t(n), con n>0, que vale siempre 0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_student_t (N)
     Devuelve la varianza de una variable aleatoria de Student t(n), con n>2.

          (%i1) load (distrib)$
          (%i2) assume(n>2)$  var_student_t(n);
                                          n
          (%o3)                         -----
                                        n - 2

 -- Función: std_student_t (N)
     Devuelve la desviación típica de una variable aleatoria de Student t(n), con n>2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_student_t (N)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Student t(n), con n>3, que vale siempre 0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_student_t (N)
     Devuelve el coeficiente de curtosis una variable aleatoria de Student t(n), con n>4. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_student_t_algorithm
     Valor por defecto: ratio

     Es el algoritmo seleccionado para simular variables aleatorias de Student. Los métodos implementados son inverse y ratio:

       * inverse, basado en el método inverso.

       * ratio, basado en el hecho de que si Z es una variable aleatoria normal N(0,1) y S^2 es una variable aleatoria chi cuadrada con N grados de libertad, Chi^2(n), entonces

                                          Z
                                X = -------------
                                    /   2  \ 1/2
                                    |  S   |
                                    | ---  |
                                    \  n   /

          es una variable aleatoria de Student con N grados de libertad, t(n).

     Véase también random_student_t.

 -- Función: random_student_t (N)
 -- Función: random_student_t (N,M)
     Devuelve un valor aleatorio t(n), con n>0. Llamando a random_student_t con un segundo argumento M, se obtiene una muestra aleatoria simulada de tamaño M.

     Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_student_t_algorithm, cuyo valor por defecto es ratio.

     Véase también random_student_t_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_chi2 (X,N)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria chi-cuadrado Chi^2(n), con n>0.

     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2), por lo que cuando Maxima no tiene suficiente información para obtener el resultado, devuelve una forma nominal basada en la función de densidad de la gamma.

          (%i1) load (distrib)$
          (%i2) pdf_chi2(x,n);
                                              n
          (%o2)                  pdf_gamma(x, -, 2)
                                              2
          (%i3) assume(x>0, n>0)$  pdf_chi2(x,n);
                                   n/2 - 1   - x/2
                                  x        %e
          (%o4)                   ----------------
                                    n/2       n
                                   2    gamma(-)
                                              2

 -- Función: cdf_chi2 (X,N)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria chi-cuadrado Chi^2(n), con n>0.

     Esta función no tiene expresión compacta y se calcula numéricamente si la variable global numer vale true, en otro caso devuelve una expresión nominal basada en la distribución gamma, puesto que la variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).

          (%i1) load (distrib)$
          (%i2) cdf_chi2(3,4);
          (%o2)                  cdf_gamma(3, 2, 2)
          (%i3) cdf_chi2(3,4),numer;
          (%o3)                   .4421745996289249

 -- Función: quantile_chi2 (Q,N)
     Devuelve el Q-cuantil de una variable aleatoria Chi^2(n), con n>0; en otras palabras, se trata de la inversa de  cdf_chi2. El argumento Q debe ser un número de [0,1].

     Esta función no tiene expresión compacta y se calcula numéricamente si la variable global numer vale true, en otro caso devuelve una expresión nominal basada en la función cuantil de la gamma, puesto que la variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2).

          (%i1) load (distrib)$
          (%i2) quantile_chi2(0.99,9);
          (%o2)                   21.66599433346194
          (%i3) quantile_chi2(0.99,n);
                                                  n
          (%o3)              quantile_gamma(0.99, -, 2)
                                                  2

 -- Función: mean_chi2 (N)
     Devuelve la media de  una variable aleatoria  Chi^2(n), con n>0.

     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2), por lo que cuando Maxima no tiene suficiente información para obtener el resultado, devuelve una forma nominal basada en la media de la gamma.

          (%i1) load (distrib)$
          (%i2) mean_chi2(n);
                                             n
          (%o2)                   mean_gamma(-, 2)
                                             2
          (%i3) assume(n>0)$ mean_chi2(n);
          (%o4)                           n

 -- Función: var_chi2 (N)
     Devuelve la varianza de  una variable aleatoria  Chi^2(n), con n>0.

     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2), por lo que cuando Maxima no tiene suficiente información para obtener el resultado, devuelve una forma nominal basada en la varianza de la gamma.

          (%i1) load (distrib)$
          (%i2) var_chi2(n);
                                             n
          (%o2)                    var_gamma(-, 2)
                                             2
          (%i3) assume(n>0)$ var_chi2(n);
          (%o4)                          2 n

 -- Función: std_chi2 (N)
     Devuelve la desviación típica de  una variable aleatoria  Chi^2(n), con n>0.

     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2), por lo que cuando Maxima no tiene suficiente información para obtener el resultado, devuelve una forma nominal basada en la desviación típica de la gamma.

          (%i1) load (distrib)$
          (%i2) std_chi2(n);
                                             n
          (%o2)                    std_gamma(-, 2)
                                             2
          (%i3) assume(n>0)$ std_chi2(n);
          (%o4)                    sqrt(2) sqrt(n)

 -- Función: skewness_chi2 (N)
     Devuelve el coeficiente de asimetría de una variable aleatoria  Chi^2(n), con n>0.

     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2), por lo que cuando Maxima no tiene suficiente información para obtener el resultado, devuelve una forma nominal basada en el coeficiente de asimetría de la gamma.

          (%i1) load (distrib)$
          (%i2) skewness_chi2(n);
                                               n
          (%o2)                 skewness_gamma(-, 2)
                                               2
          (%i3) assume(n>0)$ skewness_chi2(n);
                                      2 sqrt(2)
          (%o4)                       ---------
                                       sqrt(n)

 -- Función: kurtosis_chi2 (N)
     Devuelve el coeficiente de curtosis una variable aleatoria  Chi^2(n), con n>0.

     La variable aleatoria Chi^2(n) equivale a una Gamma(n/2,2), por lo que cuando Maxima no tiene suficiente información para obtener el resultado, devuelve una forma nominal basada en el coeficiente de curtosis de la gamma.

          (%i1) load (distrib)$
          (%i2) kurtosis_chi2(n);
                                               n
          (%o2)                 kurtosis_gamma(-, 2)
                                               2
          (%i3) assume(n>0)$ kurtosis_chi2(n);
                                         12
          (%o4)                          --
                                         n

 -- Variable opcional: random_chi2_algorithm
     Valor por defecto: ahrens_cheng

     Es el algoritmo seleccionado para simular variables aleatorias chi-cuadrado. Los métodos implementados son ahrens_cheng y inverse:

       * ahrens_cheng, basado en la simulación aleatoria de variables gamma. Véase random_gamma_algorithm para más detalles.

       * inverse, basado en el método inverso.

     Véase también random_chi2.

 -- Función: random_chi2 (N)
 -- Función: random_chi2 (N,M)
     Devuelve un valor aleatorio  Chi^2(n), con n>0. Llamando a random_chi2 con un segundo argumento M, se simulará una muestra aleatoria de tamaño M.

     Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_chi2_algorithm, cuyo valor por defecto es ahrens_cheng.

     Véase también random_chi2_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_f (X,M,N)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria  F(m,n), con m,n>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_f (X,M,N)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria  F(m,n), con m,n>0.

     Esta función no tiene expresión compacta, por lo que es evaluada numéricamente si la variable global numer vale true, en caso contrario devuelve una forma nominal.

          (%i1) load (distrib)$
          (%i2) cdf_f(2,3,9/4);
                                               9
          (%o2)                    cdf_f(2, 3, -)
                                               4
          (%i3) %,numer;
          (%o3)                   0.66756728179008

 -- Función: quantile_f (Q,M,N)
     Devuelve el Q-cuantil de una variable aleatoria  F(m,n), con m,n>0; en otras palabras, se trata de la inversa de  cdf_f. El argumento Q debe ser un número de [0,1].

     Esta función no tiene expresión compacta, por lo que es evaluada numéricamente si la variable global numer vale true, en caso contrario devuelve una forma nominal.

          (%i1) load (distrib)$
          (%i2) quantile_f(2/5,sqrt(3),5);
                                         2
          (%o2)               quantile_f(-, sqrt(3), 5)
                                         5
          (%i3) %,numer;
          (%o3)                   0.518947838573693

 -- Función: mean_f (M,N)
     Devuelve la media de  una variable aleatoria  F(m,n), con m>0, n>2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_f (M,N)
     Devuelve la varianza de  una variable aleatoria  F(m,n), con m>0, n>4. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_f (M,N)
     Devuelve la desviación típica de  una variable aleatoria  F(m,n), con m>0, n>4. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_f (M,N)
     Devuelve el coeficiente de asimetría de una variable aleatoria  F(m,n), con m>0, n>6. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_f (M,N)
     Devuelve el coeficiente de curtosis una variable aleatoria  F(m,n), con m>0, n>8. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_f_algorithm
     Valor por defecto: inverse

     Es el algoritmo seleccionado para simular variables aleatorias F. Los algoritmos programados son ratio y inverse:

       * ratio, basado en el hecho de que si X es una variable aleatoria Chi^2(m) y Y es una Chi^2(n), entonces

                                       n X
                                   F = ---
                                       m Y

          es una variable aleatoria F con M y N grados de libertad, F(m,n).

       * inverse, basado en el método inverso.

     Véase también random_f.

 -- Función: random_f (M,N)
 -- Función: random_f (M,N,K)
     Devuelve un valor aleatorio  F(m,n), con m,n>0. Llamando a  random_f con un tercer argumento K, se simulará una muestra aleatoria de tamaño K.

     Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_f_algorithm, cuyo valor por defecto es inverse.

     Véase también random_f_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_exp (X,M)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria Exponencial(m), con m>0.

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la densidad de Weibull.

          (%i1) load (distrib)$
          (%i2) pdf_exp(x,m);
                                                  1
          (%o2)                 pdf_weibull(x, 1, -)
                                                  m
          (%i3) assume(x>0,m>0)$  pdf_exp(x,m);
                                          - m x
          (%o4)                       m %e

 -- Función: cdf_exp (X,M)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Exponencial(m), con m>0.

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la distribución de Weibull.

          (%i1) load (distrib)$
          (%i2) cdf_exp(x,m);
                                                  1
          (%o2)                 cdf_weibull(x, 1, -)
                                                  m
          (%i3) assume(x>0,m>0)$  cdf_exp(x,m);
                                           - m x
          (%o4)                      1 - %e

 -- Función: quantile_exp (Q,M)
     Devuelve el Q-cuantil de una variable aleatoria Exponencial(m), con m>0; en otras palabras, se trata de la inversa de  cdf_exp. El argumento Q debe ser un número de [0,1].

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en el cuantil de la Weibull.

          (%i1) load (distrib)$
          (%i2) quantile_exp(0.56,5);
          (%o2)                   .1641961104139661
          (%i3) quantile_exp(0.56,m);
                                                      1
          (%o3)             quantile_weibull(0.56, 1, -)
                                                      m

 -- Función: mean_exp (M)
     Devuelve la media de  una variable aleatoria Exponencial(m), con m>0.

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la media de la Weibull.

          (%i1) load (distrib)$
          (%i2) mean_exp(m);
                                                 1
          (%o2)                  mean_weibull(1, -)
                                                 m
          (%i3) assume(m>0)$  mean_exp(m);
                                          1
          (%o4)                           -
                                          m

 -- Función: var_exp (M)
     Devuelve la varianza de  una variable aleatoria Exponencial(m), con m>0.

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la varianza de la Weibull.

          (%i1) load (distrib)$
          (%i2) var_exp(m);
                                                 1
          (%o2)                   var_weibull(1, -)
                                                 m
          (%i3) assume(m>0)$  var_exp(m);
                                         1
          (%o4)                          --
                                          2
                                         m

 -- Función: std_exp (M)
     Devuelve la desviación típica de  una variable aleatoria Exponencial(m), con m>0.

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la desviación típica de la Weibull.

          (%i1) load (distrib)$
          (%i2) std_exp(m);
                                                 1
          (%o2)                   std_weibull(1, -)
                                                 m
          (%i3) assume(m>0)$  std_exp(m);
                                          1
          (%o4)                           -
                                          m

 -- Función: skewness_exp (M)
     Devuelve el coeficiente de asimetría de una variable aleatoria Exponencial(m), con m>0.

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en el coeficiente de asimetría de la Weibull.

          (%i1) load (distrib)$
          (%i2) skewness_exp(m);
                                                   1
          (%o2)                skewness_weibull(1, -)
                                                   m
          (%i3) assume(m>0)$  skewness_exp(m);
          (%o4)                           2

 -- Función: kurtosis_exp (M)
     Devuelve el coeficiente de curtosis una variable aleatoria Exponencial(m), con m>0.

     La variable aleatoria Exponencial(m) equivale a una Weibull(1,1/m), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en el coeficiente de curtosis de la Weibull.

          (%i1) load (distrib)$
          (%i2) kurtosis_exp(m);
                                                   1
          (%o2)                kurtosis_weibull(1, -)
                                                   m
          (%i3) assume(m>0)$  kurtosis_exp(m);
          (%o4)                           6

 -- Variable opcional: random_exp_algorithm
     Valor por defecto: inverse

     Es el algoritmo seleccionado para simular variables aleatoria exponenciales. Los algoritmos programados son inverse, ahrens_cheng y ahrens_dieter

       * inverse, basado en el método inverso.

       * ahrens_cheng, basado en el hecho de que la variable aleatoria Exponencial(m) equivale a una Gamma(1,1/m). Véase random_gamma_algorithm para más detalles.

       * ahrens_dieter, basada en el algoritmo descrito en Ahrens, J.H. y Dieter, U. (1972) COMPUTER METHODS FOR SAMPLING FROM THE EXPONENTIAL AND NORMAL DISTRIBUTIONS. Comm, ACM, 15, Oct.,  873-882.

     Véase también random_exp.

 -- Función: random_exp (M)
 -- Función: random_exp (M,K)
     Devuelve un valor aleatorio  Exponencial(m), con m>0. Llamando a random_exp2 con un segundo argumento K, se simulará una muestra aleatoria de tamaño K.

     Hay tres algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_exp_algorithm, cuyo valor por defecto es inverse.

     Véase también random_exp_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_lognormal (X,M,S)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria Lognormal(m,s), con s>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_lognormal (X,M,S)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Lognormal(m,s), con s>0.   Esta función se define en términos de la función de error, erf, de Maxima.

          (%i1) load (distrib)$
          (%i2) assume(x>0, s>0)$  cdf_lognormal(x,m,s);
                                     log(x) - m
                                 erf(----------)
                                     sqrt(2) s     1
          (%o3)                  --------------- + -
                                        2          2

     Véase también erf.

 -- Función: quantile_lognormal (Q,M,S)
     Devuelve el Q-cuantil de una variable aleatoria Lognormal(m,s), con s>0; en otras palabras, se trata de la inversa de  cdf_lognormal. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_lognormal (M,S)
     Devuelve la media de  una variable aleatoria Lognormal(m,s), con s>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_lognormal (M,S)
     Devuelve la varianza de  una variable aleatoria Lognormal(m,s), con s>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_lognormal (M,S)
     Devuelve la desviación típica de  una variable aleatoria Lognormal(m,s), con s>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_lognormal (M,S)
     Devuelve el coeficiente de asimetría de una variable aleatoria Lognormal(m,s), con s>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_lognormal (M,S)
     Devuelve el coeficiente de curtosis una variable aleatoria Lognormal(m,s), con s>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_lognormal (M,S)
 -- Función: random_lognormal (M,S,N)
     Devuelve un valor aleatorio  Lognormal(m,s), con s>0. Llamando a random_lognormal con un tercer argumento N, se simulará una muestra aleatoria de tamaño N.

     Las variables lognormales se simulan mediante variables normales. Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_normal_algorithm, cuyo valor por defecto es box_mueller.

     Véase también random_normal_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_gamma (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria Gamma(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_gamma (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Gamma(a,b), con a,b>0.

     Esta función no tiene expresión compacta, por lo que es evaluada numéricamente si la variable global numer vale true, en caso contrario devuelve una forma nominal.

          (%i1) load (distrib)$
          (%i2) cdf_gamma(3,5,21);
          (%o2)                  cdf_gamma(3, 5, 21)
          (%i3) %,numer;
          (%o3)                 4.402663157135039E-7

 -- Función: quantile_gamma (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria Gamma(a,b), con a,b>0; en otras palabras, se trata de la inversa de  cdf_gamma. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_gamma (A,B)
     Devuelve la media de  una variable aleatoria Gamma(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_gamma (A,B)
     Devuelve la varianza de  una variable aleatoria Gamma(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_gamma (A,B)
     Devuelve la desviación típica de  una variable aleatoria Gamma(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_gamma (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria Gamma(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_gamma (A,B)
     Devuelve el coeficiente de curtosis una variable aleatoria Gamma(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_gamma_algorithm
     Valor por defecto: ahrens_cheng

     Es el algoritmo seleccionado para simular variables aleatorias gamma. Algoritmos programados son ahrens_cheng y inverse

       * ahrens_cheng, se trata de una combinación de dos procedimientos, según sea el valor del parámetro A:

          Para a>=1, Cheng, R.C.H. y Feast, G.M. (1979). SOME SIMPLE GAMMA VARIATE GENERATORS. Appl. Stat., 28, 3, 290-295.

          Para 0<a<1, Ahrens, J.H. y Dieter, U. (1974). COMPUTER METHODS FOR SAMPLING FROM GAMMA, BETA, POISSON AND BINOMIAL DISTRIBUTIONS. Computing, 12, 223-246.

       * inverse, basado en el método inverso.

     Véase también random_gamma.

 -- Función: random_gamma (A,B)
 -- Función: random_gamma (A,B,N)
     Devuelve un valor aleatorio  Gamma(a,b), con a,b>0. Llamando a random_gamma con un tercer argumento N, se simulará una muestra aleatoria de tamaño N.

     Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_gamma_algorithm, cuyo valor por defecto es ahrens_cheng.

     Véase también random_gamma_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_beta (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria Beta(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_beta (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Beta(a,b), con a,b>0.

     Esta función no tiene expresión compacta, por lo que es evaluada numéricamente si la variable global numer vale true, en caso contrario devuelve una forma nominal.

          (%i1) load (distrib)$
          (%i2) cdf_beta(1/3,15,2);
                                           1
          (%o2)                   cdf_beta(-, 15, 2)
                                           3
          (%i3) %,numer;
          (%o3)                 7.666089131388224E-7

 -- Función: quantile_beta (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria Beta(a,b), con a,b>0; en otras palabras, se trata de la inversa de  cdf_beta. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_beta (A,B)
     Devuelve la media de  una variable aleatoria Beta(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_beta (A,B)
     Devuelve la varianza de  una variable aleatoria Beta(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_beta (A,B)
     Devuelve la desviación típica de  una variable aleatoria Beta(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_beta (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria Beta(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_beta (A,B)
     Devuelve el coeficiente de curtosis de una variable aleatoria Beta(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_beta_algorithm
     Valor por defecto: cheng

     Es el algoritmo seleccionado para simular variables aleatorias beta. Algoritmos programados son cheng, inverse y ratio

       * cheng, es el algoritmo definido en Cheng, R.C.H.  (1978). GENERATING BETA VARIATES WITH NONINTEGRAL SHAPE PARAMETERS. Communications of the ACM, 21:317-322

       * inverse, basado en el método inverso.

       * ratio, basado en el hecho de que si X es una variable aleatoria Gamma(a,1) y Y es una Gamma(b,1), entonces el cociente X/(X+Y) se distribuye como una Beta(a,b).

     Véase también random_beta.

 -- Función: random_beta (A,B)
 -- Función: random_beta (A,B,N)
     Devuelve un valor aleatorio Beta(a,b), con a,b>0. Llamando a random_beta con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Hay tres algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_beta_algorithm, cuyo valor por defecto es cheng.

     Véase también random_beta_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_continuous_uniform (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria  Uniforme Continua(a,b), con a<b. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_continuous_uniform (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria  Uniforme Continua(a,b), con a<b. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_continuous_uniform (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria  Uniforme Continua(a,b), con a<b; en otras palabras, se trata de la inversa de  cdf_continuous_uniform. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_continuous_uniform (A,B)
     Devuelve la media de  una variable aleatoria  Uniforme Continua(a,b), con a<b. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_continuous_uniform (A,B)
     Devuelve la varianza de  una variable aleatoria  Uniforme Continua(a,b), con a<b. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_continuous_uniform (A,B)
     Devuelve la desviación típica de  una variable aleatoria  Uniforme Continua(a,b), con a<b. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_continuous_uniform (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria  Uniforme Continua(a,b), con a<b. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_continuous_uniform (A,B)
     Devuelve el coeficiente de curtosis una variable aleatoria  Uniforme Continua(a,b), con a<b. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_continuous_uniform (A,B)
 -- Función: random_continuous_uniform (A,B,N)
     Devuelve un valor aleatorio  Uniforme Continuo(a,b), con a<b. Llamando a random_continuous_uniform con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Esta función es una aplicación directa de la función  random de Maxima.

     Véase también random. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_logistic (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria Logística(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_logistic (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Logística(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_logistic (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria Logística(a,b), con b>0; en otras palabras, se trata de la inversa de  cdf_logistic. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_logistic (A,B)
     Devuelve la media de  una variable aleatoria Logística(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_logistic (A,B)
     Devuelve la varianza de  una variable aleatoria Logística(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_logistic (A,B)
     Devuelve la desviación típica de  una variable aleatoria Logística(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_logistic (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria Logística(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_logistic (A,B)
     Devuelve el coeficiente de curtosis una variable aleatoria Logística(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_logistic (A,B)
 -- Función: random_logistic (A,B,N)
     Devuelve un valor aleatorio  Logístico(a,b), con b>0. Llamando a  random_logistic con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Sólo se ha programado el método inverso. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_pareto (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria de Pareto(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_pareto (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Pareto(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_pareto (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria de Pareto(a,b), con a,b>0; en otras palabras, se trata de la inversa de  cdf_pareto. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_pareto (A,B)
     Devuelve la media de  una variable aleatoria de Pareto(a,b), con a>1,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_pareto (A,B)
     Devuelve la varianza de  una variable aleatoria de Pareto(a,b), con a>2,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_pareto (A,B)
     Devuelve la desviación típica de  una variable aleatoria de Pareto(a,b), con a>2,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_pareto (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Pareto(a,b), con a>3,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_pareto (A,B)
     Devuelve el coeficiente de curtosis de una variable aleatoria de Pareto(a,b), con a>4,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_pareto (A,B)
 -- Función: random_pareto (A,B,N)
     Devuelve un valor aleatorio  Pareto(a,b), con a>0,b>0. Llamando a  random_pareto con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Sólo se ha programado el método inverso. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_weibull (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria de Weibull(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_weibull (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Weibull(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_weibull (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria de Weibull(a,b), con a,b>0; en otras palabras, se trata de la inversa de  cdf_weibull. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_weibull (A,B)
     Devuelve la media de  una variable aleatoria de Weibull(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_weibull (A,B)
     Devuelve la varianza de  una variable aleatoria de Weibull(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_weibull (A,B)
     Devuelve la desviación típica de  una variable aleatoria de Weibull(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_weibull (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Weibull(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_weibull (A,B)
     Devuelve el coeficiente de curtosis una variable aleatoria de Weibull(a,b), con a,b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_weibull (A,B)
 -- Función: random_weibull (A,B,N)
     Devuelve un valor aleatorio  Weibull(a,b), con a,b>0. Llamando a  random_weibull con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Sólo se ha programado el método inverso. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_rayleigh (X,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria de Rayleigh(b), con b>0.

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la densidad de la Weibull.

          (%i1) load (distrib)$
          (%i2) pdf_rayleigh(x,b);
                                                  1
          (%o2)                 pdf_weibull(x, 2, -)
                                                  b
          (%i3) assume(x>0,b>0)$ pdf_rayleigh(x,b);
                                              2  2
                                     2     - b  x
          (%o4)                   2 b  x %e

 -- Función: cdf_rayleigh (X,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Rayleigh(b), con b>0.

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la distribución de la Weibull.

          (%i1) load (distrib)$
          (%i2) cdf_rayleigh(x,b);
                                                  1
          (%o2)                 cdf_weibull(x, 2, -)
                                                  b
          (%i3) assume(x>0,b>0)$ cdf_rayleigh(x,b);
                                             2  2
                                          - b  x
          (%o4)                     1 - %e

 -- Función: quantile_rayleigh (Q,B)
     Devuelve el Q-cuantil de una variable aleatoria de Rayleigh(b), con b>0; en otras palabras, se trata de la inversa de  cdf_rayleigh. El argumento Q debe ser un número de [0,1].

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en los cuantiles de la Weibull.

          (%i1) load (distrib)$
          (%i2) quantile_rayleigh(0.99,b);
                                                      1
          (%o2)             quantile_weibull(0.99, 2, -)
                                                      b
          (%i3) assume(x>0,b>0)$ quantile_rayleigh(0.99,b);
                                  2.145966026289347
          (%o4)                   -----------------
                                          b

 -- Función: mean_rayleigh (B)
     Devuelve la media de  una variable aleatoria de Rayleigh(b), con b>0.

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la media de la Weibull.

          (%i1) load (distrib)$
          (%i2) mean_rayleigh(b);
                                                 1
          (%o2)                  mean_weibull(2, -)
                                                 b
          (%i3) assume(b>0)$ mean_rayleigh(b);
                                      sqrt(%pi)
          (%o4)                       ---------
                                         2 b

 -- Función: var_rayleigh (B)
     Devuelve la varianza de  una variable aleatoria de Rayleigh(b), con b>0.

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la varianza de la Weibull.

          (%i1) load (distrib)$
          (%i2) var_rayleigh(b);
                                                 1
          (%o2)                   var_weibull(2, -)
                                                 b
          (%i3) assume(b>0)$ var_rayleigh(b);
                                           %pi
                                       1 - ---
                                            4
          (%o4)                        -------
                                          2
                                         b

 -- Función: std_rayleigh (B)
     Devuelve la desviación típica de  una variable aleatoria de Rayleigh(b), con b>0.

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la desviación típica de la Weibull.

          (%i1) load (distrib)$
          (%i2) std_rayleigh(b);
                                                 1
          (%o2)                   std_weibull(2, -)
                                                 b
          (%i3) assume(b>0)$ std_rayleigh(b);
                                             %pi
                                    sqrt(1 - ---)
                                              4
          (%o4)                     -------------
                                          b

 -- Función: skewness_rayleigh (B)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Rayleigh(b), con b>0.

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en el coeficiente de asimetría de la Weibull.

          (%i1) load (distrib)$
          (%i2) skewness_rayleigh(b);
                                                   1
          (%o2)                skewness_weibull(2, -)
                                                   b
          (%i3) assume(b>0)$ skewness_rayleigh(b);
                                   3/2
                                %pi      3 sqrt(%pi)
                                ------ - -----------
                                  4           4
          (%o4)                 --------------------
                                         %pi 3/2
                                    (1 - ---)
                                          4

 -- Función: kurtosis_rayleigh (B)
     Devuelve el coeficiente de curtosis una variable aleatoria de Rayleigh(b), con b>0.

     La variable aleatoria Rayleigh(b) equivale a una Weibull(2,1/b), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en el coeficiente de curtosis de la Weibull.

          (%i1) load (distrib)$
          (%i2) kurtosis_rayleigh(b);
                                                   1
          (%o2)                kurtosis_weibull(2, -)
                                                   b
          (%i3) assume(b>0)$ kurtosis_rayleigh(b);
                                            2
                                       3 %pi
                                   2 - ------
                                         16
          (%o4)                    ---------- - 3
                                        %pi 2
                                   (1 - ---)
                                         4

 -- Función: random_rayleigh (B)
 -- Función: random_rayleigh (B,N)
     Devuelve un valor aleatorio  Rayleigh(b), con b>0. Llamando a  random_rayleigh con un segundo argumento N, se simulará una muestra aleatoria de tamaño  N.

     Sólo se ha programado el método inverso. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_laplace (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria de Laplace(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_laplace (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Laplace(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_laplace (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria de Laplace(a,b), con b>0; en otras palabras, se trata de la inversa de  cdf_laplace. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_laplace (A,B)
     Devuelve la media de  una variable aleatoria de Laplace(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_laplace (A,B)
     Devuelve la varianza de  una variable aleatoria de Laplace(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_laplace (A,B)
     Devuelve la desviación típica de  una variable aleatoria de Laplace(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_laplace (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Laplace(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_laplace (A,B)
     Devuelve el coeficiente de curtosis una variable aleatoria de Laplace(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_laplace (A,B)
 -- Función: random_laplace (A,B,N)
     Devuelve un valor aleatorio  Laplace(a,b), con b>0. Llamando a  random_laplace con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Sólo se ha programado el método inverso. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_cauchy (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria de Cauchy(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_cauchy (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Cauchy(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_cauchy (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria de Cauchy(a,b), con b>0; en otras palabras, se trata de la inversa de  cdf_cauchy. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_cauchy (A,B)
 -- Función: random_cauchy (A,B,N)
     Devuelve un valor aleatorio  Cauchy(a,b), con b>0. Llamando a  random_cauchy con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Sólo se ha programado el método inverso. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_gumbel (X,A,B)
     Devuelve el valor correspondiente a X de la función de densidad de una variable aleatoria de Gumbel(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_gumbel (X,A,B)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Gumbel(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_gumbel (Q,A,B)
     Devuelve el Q-cuantil de una variable aleatoria de Gumbel(a,b), con b>0; en otras palabras, se trata de la inversa de  cdf_gumbel. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_gumbel (A,B)
     Devuelve la media de  una variable aleatoria de Gumbel(a,b), con b>0.

          (%i1) load (distrib)$
          (%i2) assume(b>0)$  mean_gumbel(a,b);
          (%o3)                     %gamma b + a

     donde el símbolo %gamma representa la constante de Euler-Mascheroni. Véase también %gamma.

 -- Función: var_gumbel (A,B)
     Devuelve la varianza de  una variable aleatoria de Gumbel(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_gumbel (A,B)
     Devuelve la desviación típica de  una variable aleatoria de Gumbel(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_gumbel (A,B)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Gumbel(a,b), con b>0.

          (%i1) load (distrib)$
          (%i2) assume(b>0)$ skewness_gumbel(a,b);
                                 12 sqrt(6) zeta(3)
          (%o3)                  ------------------
                                           3
                                        %pi
          (%i4) numer:true$ skewness_gumbel(a,b);
          (%o5)                   1.139547099404649

     donde zeta representa la función zeta de Riemann.

 -- Función: kurtosis_gumbel (A,B)
     Devuelve el coeficiente de curtosis de una variable aleatoria de Gumbel(a,b), con b>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_gumbel (A,B)
 -- Función: random_gumbel (A,B,N)
     Devuelve un valor aleatorio  Gumbel(a,b), con b>0. Llamando a  random_gumbel con un tercer argumento N, se simulará una muestra aleatoria de tamaño  N.

     Sólo se ha programado el método inverso. Para hacer uso de esta función, ejecútese primero load(distrib).

Funciones y variables para distribuciones discretas
===================================================

 -- Función: pdf_binomial (X,N,P)
     Devuelve el valor correspondiente a X de la función de probabilidad de una variable aleatoria Binomial(n,p), con 0<p<1 y n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_binomial (X,N,P)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Binomial(n,p), con 0<p<1 y n entero positivo.

     Esta función no tiene expresión compacta y se calcula numéricamente si la variable global numer vale true, en otro caso devuelve una expresión nominal.

          (%i1) load (distrib)$
          (%i2) cdf_binomial(5,7,1/6);
                                                   1
          (%o2)                 cdf_binomial(5, 7, -)
                                                   6
          (%i3) cdf_binomial(5,7,1/6), numer;
          (%o3)                   .9998713991769548

 -- Función: quantile_binomial (Q,N,P)
     Devuelve el Q-cuantil de una variable aleatoria Binomial(n,p), con 0<p<1 y n entero positivo; en otras palabras, se trata de la inversa de  cdf_binomial. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_binomial (N,P)
     Devuelve la media de  una variable aleatoria Binomial(n,p), con 0<p<1 y n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_binomial (N,P)
     Devuelve la varianza de  una variable aleatoria Binomial(n,p), con 0<p<1 y n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_binomial (N,P)
     Devuelve la desviación típica de  una variable aleatoria Binomial(n,p), con 0<p<1 y n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_binomial (N,P)
     Devuelve el coeficiente de asimetría de una variable aleatoria Binomial(n,p), con 0<p<1 y n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_binomial (N,P)
     Devuelve el coeficiente de curtosis de una variable aleatoria binomial  Binomial(n,p), con 0<p<1 y n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_binomial_algorithm
     Valor por defecto: kachit

     Es el algoritmo seleccionado para simular variables binomiales. Los algoritmos programados son kachit, bernoulli y inverse:

       * kachit, basado en el algoritmo descrito en Kachitvichyanukul, V. y Schmeiser, B.W. (1988) BINOMIAL RANDOM VARIATE GENERATION. Communications of the ACM, 31, Feb., 216.

       * bernoulli, basado en la simulación de ensayos de Bernoulli.

       * inverse, basado en el método inverso.

     Véase también random_binomial.

 -- Función: random_binomial (N,P)
 -- Función: random_binomial (N,P,M)
     Devuelve un valor aleatorio  Binomial(n,p), con 0<p<1 y n entero positivo. Llamando a  random_binomial con un tercer argumento M, se simulará una muestra aleatoria de tamaño  M.

     Hay tres algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_binomial_algorithm, cuyo valor por defecto es kachit.

     Véase también random_binomial_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_poisson (X,M)
     Devuelve el valor correspondiente a X de la función de probabilidad de una variable aleatoria de Poisson(m), con m>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_poisson (X,M)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Poisson(m), con m>0.

     Esta función no tiene expresión compacta y se calcula numéricamente si la variable global numer vale true, en otro caso devuelve una expresión nominal.

          (%i1) load (distrib)$
          (%i2) cdf_poisson(3,5);
          (%o2)                   cdf_poisson(3, 5)
          (%i3) cdf_poisson(3,5), numer;
          (%o3)                   .2650259152973617

 -- Función: quantile_poisson (Q,M)
     Devuelve el Q-cuantil de una variable aleatoria de Poisson(m), con m>0; en otras palabras, se trata de la inversa de  cdf_poisson. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_poisson (M)
     Devuelve la media de una variable aleatoria de Poisson(m), con  m>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_poisson (M)
     Devuelve la varianza de  una variable aleatoria de Poisson(m), con  m>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_poisson (M)
     Devuelve la desviación típica de  una variable aleatoria de Poisson(m), con m>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_poisson (M)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Poisson(m), con m>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_poisson (M)
     Devuelve el coeficiente de curtosis de una variable aleatoria de Poisson(m), con m>0. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_poisson_algorithm
     Valor por defecto: ahrens_dieter

     Es el algoritmo seleccionado para simular variables de Poisson. Los algoritmos programados son ahrens_dieter y inverse:

       * ahrens_dieter, basado en el algoritmo descrito en Ahrens, J.H. and Dieter, U. (1982) COMPUTER GENERATION OF POISSON DEVIATES FROM MODIFIED NORMAL DISTRIBUTIONS. ACM Trans. Math. Software, 8, 2, June,163-179.

       * inverse, basado en el método inverso.

     Véase también random_poisson.

 -- Función: random_poisson (M)
 -- Función: random_poisson (M,N)
     Devuelve un valor aleatorio  Poisson(m), con m>0. Llamando a  random_poisson con un segundo argumento N, se simulará una muestra aleatoria de tamaño  N.

     Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_poisson_algorithm, cuyo valor por defecto es ahrens_dieter.

     Véase también random_poisson_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_bernoulli (X,P)
     Devuelve el valor correspondiente a X de la función de probabilidad de una variable aleatoria de Bernoulli(p), con 0<p<1.

     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la función de probabilidad de la binomial.

          (%i1) load (distrib)$
          (%i2) pdf_bernoulli(1,p);
          (%o2)                 pdf_binomial(1, 1, p)
          (%i3) assume(0<p,p<1)$ pdf_bernoulli(1,p);
          (%o4)                           p

 -- Función: cdf_bernoulli (X,P)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria de Bernoulli(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_bernoulli (Q,P)
     Devuelve el Q-cuantil de una variable aleatoria de Bernoulli(p), con 0<p<1; en otras palabras, se trata de la inversa de  cdf_bernoulli. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_bernoulli (P)
     Devuelve la media de  una variable aleatoria de Bernoulli(p), con 0<p<1.

     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la media de la binomial.

          (%i1) load (distrib)$
          (%i2) mean_bernoulli(p);
          (%o2)                  mean_binomial(1, p)
          (%i3) assume(0<p,p<1)$ mean_bernoulli(p);
          (%o4)                           p

 -- Función: var_bernoulli (P)
     Devuelve la varianza de  una variable aleatoria de Bernoulli(p), con 0<p<1.

     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la varianza de la binomial.

          (%i1) load (distrib)$
          (%i2) var_bernoulli(p);
          (%o2)                  var_binomial(1, p)
          (%i3) assume(0<p,p<1)$ var_bernoulli(p);
          (%o4)                       (1 - p) p

 -- Función: std_bernoulli (P)
     Devuelve la desviación típica de  una variable aleatoria de Bernoulli(p), con 0<p<1.

     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en la desviación típica de la binomial.

          (%i1) load (distrib)$
          (%i2) std_bernoulli(p);
          (%o2)                  std_binomial(1, p)
          (%i3) assume(0<p,p<1)$ std_bernoulli(p);
          (%o4)                  sqrt(1 - p) sqrt(p)

 -- Función: skewness_bernoulli (P)
     Devuelve el coeficiente de asimetría de una variable aleatoria de Bernoulli(p), con 0<p<1.

     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en el coeficiente de asimetría de la binomial.

          (%i1) load (distrib)$
          (%i2) skewness_bernoulli(p);
          (%o2)                skewness_binomial(1, p)
          (%i3) assume(0<p,p<1)$ skewness_bernoulli(p);
                                       1 - 2 p
          (%o4)                  -------------------
                                 sqrt(1 - p) sqrt(p)

 -- Función: kurtosis_bernoulli (P)
     Devuelve el coeficiente de curtosis una variable aleatoria de Bernoulli(p), con 0<p<1.

     La variable aleatoria Bernoulli(p) equivale a una Binomial(1,p), por lo que si Maxima no tiene suficiente información para calcular el resultado, devolverá una forma nominal basada en el coeficiente de curtosis de la binomial.

          (%i1) load (distrib)$
          (%i2) kurtosis_bernoulli(p);
          (%o2)                kurtosis_binomial(1, p)
          (%i3) assume(0<p,p<1)$ kurtosis_bernoulli(p);
                                   1 - 6 (1 - p) p
          (%o4)                    ---------------
                                      (1 - p) p

 -- Función: random_bernoulli (P)
 -- Función: random_bernoulli (P,N)
     Devuelve un valor aleatorio  Bernoulli(p), con 0<p<1. Llamando a  random_bernoulli con un segundo argumento N, se simulará una muestra aleatoria de tamaño  N.

     Es aplicación directa de la función random de Maxima.

     Véase también random. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_geometric (X,P)
     Devuelve el valor correspondiente a X de la función de probabilidad de una variable aleatoria Geométrica(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_geometric (X,P)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Geométrica(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_geometric (Q,P)
     Devuelve el Q-cuantil de una variable aleatoria Geométrica(p), con 0<p<1; en otras palabras, se trata de la inversa de  cdf_geometric. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_geometric (P)
     Devuelve la media de  una variable aleatoria Geométrica(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_geometric (P)
     Devuelve la varianza de  una variable aleatoria Geométrica(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_geometric (P)
     Devuelve la desviación típica de  una variable aleatoria Geométrica(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_geometric (P)
     Devuelve el coeficiente de asimetría de una variable aleatoria Geométrica(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_geometric (P)
     Devuelve el coeficiente de curtosis de una variable aleatoria Geométrica(p), con 0<p<1. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_geometric_algorithm
     Valor por defecto: bernoulli

     Es el algoritmo seleccionado para simular variables geométricas. Los algoritmos programados son bernoulli, devroye y inverse:

       * bernoulli, basado en la simulación de ensayos de Bernoulli.

       * devroye, basado en el algoritmo descrito en Devroye, L. (1986) NON-UNIFORM RANDOM VARIATE GENERATION. Springer Verlag, p. 480.

       * inverse, basado en el método inverso.

     Véase también random_geometric.

 -- Función: random_geometric (P)
 -- Función: random_geometric (P,N)
     Devuelve un valor aleatorio Geométrico(p), con 0<p<1. Llamando a  random_geometric con un segundo argumento N, se simulará una muestra aleatoria de tamaño  N.

     Hay tres algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_geometric_algorithm, cuyo valor por defecto es bernoulli.

     Véase también random_geometric_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_discrete_uniform (X,N)
     Devuelve el valor correspondiente a X de la función de probabilidad de una variable aleatoria Uniforme Discreta(n), con n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_discrete_uniform (X,N)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Uniforme Discreta(n), con n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_discrete_uniform (Q,N)
     Devuelve el Q-cuantil de una variable aleatoria Uniforme Discreta(n), con n entero positivo; en otras palabras, se trata de la inversa de  cdf_discrete_uniform. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_discrete_uniform (N)
     Devuelve la media de  una variable aleatoria Uniforme Discreta(n), con n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_discrete_uniform (N)
     Devuelve la varianza de  una variable aleatoria Uniforme Discreta(n), con n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_discrete_uniform (N)
     Devuelve la desviación típica de  una variable aleatoria Uniforme Discreta(n), con n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_discrete_uniform (N)
     Devuelve el coeficiente de asimetría de una variable aleatoria Uniforme Discreta(n), con n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_discrete_uniform (N)
     Devuelve el coeficiente de curtosis de una variable aleatoria Uniforme Discreta(n), con n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: random_discrete_uniform (N)
 -- Función: random_discrete_uniform (N,M)
     Devuelve un valor aleatorio  Uniforme Discreto(n), con n entero positivo. Llamando a  random_discrete_uniform con un segundo argumento M, se simulará una muestra aleatoria de tamaño  M.

     Se trata de una aplicación directa de la función random de Maxima.

     Véase también random. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_hypergeometric (X,N1,N2,N)
     Devuelve el valor correspondiente a X de la función de probabilidad de una variable aleatoria Hipergeométrica(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_hypergeometric (X,N1,N2,N)
     Devuelve el valor correspondiente a X de la función de distribución of una variable aleatoria Hipergeométrica(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: quantile_hypergeometric (Q,N1,N2,N)
     Devuelve el Q-cuantil de una variable aleatoria Hipergeométrica(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2; en otras palabras, se trata de la inversa de  cdf_hypergeometric. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_hypergeometric (N1,N2,N)
     Devuelve la media de  una variable aleatoria uniforme discreta Hyp(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_hypergeometric (N1,N2,N)
     Devuelve la varianza de  una variable aleatoria Hipergeométrica(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_hypergeometric (N1,N2,N)
     Devuelve la desviación típica de  una variable aleatoria Hipergeométrica(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_hypergeometric (N1,N2,N)
     Devuelve el coeficiente de asimetría de una variable aleatoria Hipergeométrica(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_hypergeometric (N1,N2,N)
     Devuelve el coeficiente de curtosis de una variable aleatoria Hipergeométrica(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_hypergeometric_algorithm
     Valor por defecto: kachit

     Es el algoritmo seleccionado para simular variables hipergeométricas. Los algoritmos programados son kachit and inverse:

       * kachit, basado en el algoritmo descrito en Kachitvichyanukul, V., Schmeiser, B.W. (1985) COMPUTER GENERATION OF HYPERGEOMETRIC RANDOM VARIATES. Journal of Statistical Computation and Simulation 22, 127-145.

       * inverse, basado en el método inverso.

     Véase también random_hypergeometric.

 -- Función: random_hypergeometric (N1,N2,N)
 -- Función: random_hypergeometric (N1,N2,N,M)
     Devuelve un valor aleatorio Hipergeométrico(n1,n2,n), con N1, N2 y N enteros positivos y n<=n1+n2. Llamando a  random_hypergeometric con un cuarto argumento M, se simulará una muestra aleatoria de tamaño  M.

     Hay dos algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_hypergeometric_algorithm, cuyo valor por defecto es kachit.

     Véase también random_hypergeometric_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: pdf_negative_binomial (X,N,P)
     Devuelve el valor correspondiente a X de la función de probabilidad de una variable aleatoria Binomial Negativa(n,p), con 0<p<1 y n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: cdf_negative_binomial (X,N,P)
     Devuelve el valor correspondiente a X de la función de distribución de una variable aleatoria Binomial Negativa(n,p), con 0<p<1 y n entero positivo.

     Esta función no tiene expresión compacta y se calcula numéricamente si la variable global numer vale true, en otro caso devuelve una expresión nominal.

          (%i1) load (distrib)$
          (%i2) cdf_negative_binomial(3,4,1/8);
                                                       1
          (%o2)            cdf_negative_binomial(3, 4, -)
                                                       8
          (%i3) cdf_negative_binomial(3,4,1/8), numer;
          (%o3)                  .006238937377929698

 -- Función: quantile_negative_binomial (Q,N,P)
     Devuelve el Q-cuantil de una variable aleatoria Binomial Negativa(n,p), con 0<p<1 y n entero positivo; en otras palabras, se trata de la inversa de  cdf_negative_binomial. El argumento Q debe ser un número de [0,1]. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: mean_negative_binomial (N,P)
     Devuelve la media de  una variable aleatoria Binomial Negativa(n,p), con 0<p<1 and n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: var_negative_binomial (N,P)
     Devuelve la varianza de  una variable aleatoria Binomial Negativa(n,p), con 0<p<1 and n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: std_negative_binomial (N,P)
     Devuelve la desviación típica de  una variable aleatoria Binomial Negativa(n,p), con 0<p<1 and n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: skewness_negative_binomial (N,P)
     Devuelve el coeficiente de asimetría de una variable aleatoria Binomial Negativa(n,p), con 0<p<1 and n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Función: kurtosis_negative_binomial (N,P)
     Devuelve el coeficiente de curtosis una variable aleatoria binomial negativa  NB(n,p), con 0<p<1 and n entero positivo. Para hacer uso de esta función, ejecútese primero load(distrib).

 -- Variable opcional: random_negative_binomial_algorithm
     Valor por defecto: bernoulli

     Es el algoritmo seleccionado para simular variables aleatorias binomiales negativas. Los algoritmos programados son devroye, bernoulli y inverse:

       * devroye, basado en el algoritmo descrito en Devroye, L. (1986) NON-UNIFORM RANDOM VARIATE GENERATION. Springer Verlag, p. 480.

       * bernoulli, basado en la simulación de ensayos de Bernoulli.

       * inverse, basado en el método inverso.

     Véase también random_negative_binomial.

 -- Función: random_negative_binomial (N,P)
 -- Función: random_negative_binomial (N,P,M)
     Devuelve un valor aleatorio Binomial Negativo(n,p), con 0<p<1 y n entero positivo. Llamando a  random_negative_binomial con un tercer argumento M, se simulará una muestra aleatoria de tamaño  M.

     Hay tres algoritmos programados para esta función, el que se vaya a utilizar tendrá que ser seleccionado dándole un valor a la variable global random_negative_binomial_algorithm, cuyo valor por defecto es bernoulli.

     Véase también random_negative_binomial_algorithm. Para hacer uso de esta función, ejecútese primero load(distrib).