Siguiente: , Anterior:   [Índice general][Índice]

74 stats


74.1 Introducción a stats

El paquete stats contiene procedimientos clásicos sobre inferencia estadística y contraste de hipótesis.

Todas estas funciones devuelven un objeto Maxima de tipo inference_result, el cual contiene los resultados necesarios para hacer inferencias sobre la población y toma de decisiones.

La variable global stats_numer controla si los resultados deben darse en formato decimal o simbólico y racional; su valor por defecto es true, por lo que el formato de salida es decimal.

El paquete descriptive contiene algunas utilidades para manipular estructuras de datos (listas y matrices); por ejemplo para extraer submuestras. También contiene algunos ejemplos sobre cómo utilizar el paquete numericalio para leer datos de ficheros en texto plano. Véanse descriptive y numericalio para más detalles.

El paquete stats carga en memoria los paquetes descriptive, distrib y inference_result.

Para comentarios, errores o sugerencias, contáctese con el autor en

’mario ARROBA edu PUNTO xunta PUNTO es’.


74.2 Funciones y variables para inference_result

Función: inference_result (title, values, numbers)

Construye un objeto inference_result del tipo devuelto por las funciones estadísticas. El argumento title es una cadena con el nombre del procedimiento; values es una lista con elementos de la forma symbol = value y numbers es una lista con enteros positivos desde uno hasta length(values), que indican qué valores serán mostrados por defecto.

Ejemplo:

Este es un ejemplo que muestra los resultados asociados a un rectángulo. El título de este objeto es la cadena "Rectangle", el cual almacena cinco resultados, a saber, 'base, 'height, 'diagonal, 'area y 'perimeter, pero sólo muestra el primero, segundo, quinto y cuarto. El resultado 'diagonal también se almacena en este objeto, pero no se muestra por defecto; para tener acceso a este valor, hágase uso de la función take_inference.

(%i1) load("inference_result")$
(%i2) b: 3$ h: 2$
(%i3) inference_result("Rectangle",
                        ['base=b,
                         'height=h,
                         'diagonal=sqrt(b^2+h^2),
                         'area=b*h,
                         'perimeter=2*(b+h)],
                        [1,2,5,4] );
                        |   Rectangle
                        |
                        |    base = 3
                        |
(%o3)                   |   height = 2
                        |
                        | perimeter = 10
                        |
                        |    area = 6
(%i4) take_inference('diagonal,%);
(%o4)                        sqrt(13)

Véase también take_inference.

Función: inferencep (obj)

Devuelve true o false, dependiendo de que obj sea un objeto de tipo inference_result o no.

Función: items_inference (obj)

Devuelve una lista con los nombres de los elementos almacenados en obj, el cual debe ser un objeto de tipo inference_result.

Ejemplo:

El objeto inference_result almacena dos valores, cuyos nombres son 'pi y 'e, pero sólo se muestra el segundo. La función items_inference devuelve los nombres de todos los elementos almacenados, independientemente de que sean mostrados o no.

(%i1) load("inference_result")$
(%i2) inference_result("Hi", ['pi=%pi,'e=%e],[2]);
                            |   Hi
(%o2)                       |
                            | e = %e
(%i3) items_inference(%);
(%o3)                        [pi, e]
Función: take_inference (n, obj)
Función: take_inference (name, obj)
Función: take_inference (list, obj)

Si n es un entero positivo, devuelve el n-ésimo valor almacenado en obj; si el símbolo name es el nombre de uno de los elementos almacenados, también devuelve su valor. Si el primer elemento es una lista de números y/o símbolos, la función take_inference devuelve una lista con los resultados correspondientes.

Ejemplo:

Dado un objeto inference_result, la función take_inference es invocada para extraer cierta información almacenada en él.

(%i1) load("inference_result")$
(%i2) b: 3$ h: 2$
(%i3) sol: inference_result("Rectangle",
                            ['base=b,
                             'height=h,
                             'diagonal=sqrt(b^2+h^2),
                             'area=b*h,
                             'perimeter=2*(b+h)],
                            [1,2,5,4] );
                        |   Rectangle
                        |
                        |    base = 3
                        |
(%o3)                   |   height = 2
                        |
                        | perimeter = 10
                        |
                        |    area = 6
(%i4) take_inference('base,sol);
(%o4)                           3
(%i5) take_inference(5,sol);
(%o5)                          10
(%i6) take_inference([1,'diagonal],sol);
(%o6)                     [3, sqrt(13)]
(%i7) take_inference(items_inference(sol),sol);
(%o7)                [3, 2, sqrt(13), 6, 10]

Véanse también inference_result y take_inference.


74.3 Funciones y variables para stats

Variable opcional: stats_numer

Valor por defecto: true

Cuando stats_numer vale true, las funciones de inferencia estadística devuelven sus resultados en formato decimal de coma flotante. Cuando vale false, los resultados se devuelven en formato simbólico y racional.

Función: test_mean (x)
Función: test_mean (x, options ...)

Es el test t de la media. El argumento x es una lista o matriz columna con los datos de una muestra unidimensional. También realiza el test asintótico basado en el Teorema Central del límite si se le asigna a la opción 'asymptotic el valor true.

Opciones:

  • 'mean, valor por defecto 0, es el valor de la media a contrastar.
  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.
  • 'dev, valor por defecto 'unknown, este es el valor de la desviación típica cuando se conoce; valores válidos son: 'unknown o una expresión con valor positivo.
  • 'conflevel, valor por defecto 95/100, nivel de confianza para el intervalo de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).
  • 'asymptotic, valor por defecto false, indica si debe realizar el test exacto basado en la t de Student, o el asintótico basado en el Teorema Central del límite; valores válidos son true y false.

El resultado devuelto por la función test_mean es un objeto inference_result con los siguientes apartados:

  1. 'mean_estimate: la media muestral.
  2. 'conf_level: nivel de confianza seleccionado por el usuario.
  3. 'conf_interval: intervalo de confianza para la media poblacional.
  4. 'method: procedimiento de inferencia.
  5. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  6. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  7. 'distribution: distribución del estadístico de contraste, junto con su(s) parámetro(s).
  8. 'p_value: p-valor del test.

Ejemplos:

Realiza el contraste exacto t con varianza desconocida. La hipótesis nula es H_0: mean=50, frente a la alternativa unilátera H_1: mean<50; de acuerdo con los resultados, no hay evidencia para rechazar H_0, pues el p-valor es muy grande.

(%i1) load("stats")$
(%i2) data: [78,64,35,45,45,75,43,74,42,42]$
(%i3) test_mean(data,'conflevel=0.9,'alternative='less,'mean=50);
          |                 MEAN TEST
          |
          |            mean_estimate = 54.3
          |
          |              conf_level = 0.9
          |
          | conf_interval = [minf, 61.51314273502712]
          |
(%o3)     |  method = Exact t-test. Unknown variance.
          |
          | hypotheses = H0: mean = 50 , H1: mean < 50
          |
          |       statistic = .8244705235071678
          |
          |       distribution = [student_t, 9]
          |
          |        p_value = .7845100411786889

En esta ocasión Maxima realiza un test asintótico. La hipótesis nula es H_0: equal(mean, 50) frente a la alternativa bilátera H_1: not equal(mean, 50); de acuerdo con los resultados, H_0 debe rechazarse en favor de la alternativa H_1, pues el p-valor es muy pequeño. Nótese que, tal como indica la componente Method, este procedimiento sólo puede aplicarse en muestras grandes.

(%i1) load("stats")$
(%i2) test_mean([36,118,52,87,35,256,56,178,57,57,89,34,25,98,35,
              98,41,45,198,54,79,63,35,45,44,75,42,75,45,45,
              45,51,123,54,151],
              'asymptotic=true,'mean=50);
          |                       MEAN TEST
          |
          |           mean_estimate = 74.88571428571429
          |
          |                   conf_level = 0.95
          |
          | conf_interval = [57.72848600856194, 92.04294256286663]
          |
(%o2)     |    method = Large sample z-test. Unknown variance.
          |
          |       hypotheses = H0: mean = 50 , H1: mean # 50
          |
          |             statistic = 2.842831192874313
          |
          |             distribution = [normal, 0, 1]
          |
          |             p_value = .004471474652002261
Función: test_means_difference (x1, x2)
Función: test_means_difference (x1, x2, options ...)

Este es el test t para la diferencia de medias con muestras. Los argumentos x1 y x2 son listas o matrices columna que contienen dos muestras independientes. En caso de varianzas diferentes y desconocidas (véanse las opciones 'dev1, 'dev2 y 'varequal más abajo) los grados de libertad se calculan mediante la aproximación de Welch. También realiza el test asintótico basado en el Teorema Central del límite si se le asigna a la opción 'asymptotic el valor true.

Opciones:

  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.
  • 'dev1, valor por defecto 'unknown, es el valor de la desviación típica de la muestra x1 cuando se conoce; valores válidos son: 'unknown o una expresión positiva.
  • 'dev2, valor por defecto 'unknown, es el valor de la desviación típica de la muestra x2 cuando se conoce; valores válidos son: 'unknown o una expresión positiva.
  • 'varequal, valor por defecto false, indica si las varianzas deben considerarse iguales o no; esta opción sólo toma efecto cuando 'dev1 y/o 'dev2 tienen el valor 'unknown.
  • 'conflevel, valor por defecto 95/100, nivel de confianza para el intervalo de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).
  • 'asymptotic, valor por defecto false, indica si debe realizar el test exacto basado en la t de Student, o el asintótico basado en el Teorema Central del límite; valores válidos son true y false.

El resultado devuelto por la función test_means_difference es un objeto inference_result con los siguientes apartados:

  1. 'diff_estimate: el estimador de la diferencia de medias.
  2. 'conf_level: nivel de confianza seleccionado por el usuario.
  3. 'conf_interval: intervalo de confianza para la diferencia de medias.
  4. 'method: procedimiento de inferencia.
  5. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  6. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  7. 'distribution: distribución del estadístico de contraste, junto con su(s) parámetro(s).
  8. 'p_value: p-valor del test.

Ejemplos:

La igualdad de medias se contrasta con dos pequeñas muestras x y y, contra la alternativa H_1: m_1>m_2, siendo m_1 y m_2 las medias poblacionales; las varianzas son desconocidas y se supone que diferentes.

(%i1) load("stats")$
(%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
(%i3) y: [1.2,6.9,38.7,20.4,17.2]$
(%i4) test_means_difference(x,y,'alternative='greater);
            |              DIFFERENCE OF MEANS TEST
            |
            |         diff_estimate = 20.31999999999999
            |
            |                 conf_level = 0.95
            |
            |    conf_interval = [- .04597417812882298, inf]
            |
(%o4)       |        method = Exact t-test. Welch approx.
            |
            | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
            |
            |           statistic = 1.838004300728477
            |
            |    distribution = [student_t, 8.62758740184604]
            |
            |            p_value = .05032746527991905

El mismo test que antes, pero ahora se suponen las varianzas iguales.

(%i1) load("stats")$
(%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
(%i3) y: matrix([1.2],[6.9],[38.7],[20.4],[17.2])$
(%i4) test_means_difference(x,y,
                            'alternative='greater,
                            'varequal=true);
            |              DIFFERENCE OF MEANS TEST
            |
            |         diff_estimate = 20.31999999999999
            |
            |                 conf_level = 0.95
            |
            |     conf_interval = [- .7722627696897568, inf]
            |
(%o4)       |   method = Exact t-test. Unknown equal variances
            |
            | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
            |
            |           statistic = 1.765996124515009
            |
            |           distribution = [student_t, 9]
            |
            |            p_value = .05560320992529344
Función: test_variance (x)
Función: test_variance (x, options ...)

Este es el test chi^2 de la varianza. El argumento x es una lista o matriz columna con los datos de una muestra unidimensional extraída de una población normal.

Opciones:

  • 'mean, valor por defecto 'unknown, es la media de la población, si se conoce.
  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.
  • 'variance, valor por defecto 1, este es el valor (positivo) de la varianza a contrastar.
  • 'conflevel, valor por defecto 95/100, nivel de confianza para el intervalo de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).

El resultado devuelto por la función test_variance es un objeto inference_result con los siguientes apartados:

  1. 'var_estimate: la varianza muestral.
  2. 'conf_level: nivel de confianza seleccionado por el usuario.
  3. 'conf_interval: intervalo de confianza para la varianza poblacional.
  4. 'method: procedimiento de inferencia.
  5. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  6. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  7. 'distribution: distribución del estadístico de contraste, junto con su parámetro.
  8. 'p_value: p-valor del test.

Ejemplos:

Se contrasta si la varianza de una población de media desconocida es igual o mayor que 200.

(%i1) load("stats")$
(%i2) x: [203,229,215,220,223,233,208,228,209]$
(%i3) test_variance(x,'alternative='greater,'variance=200);
             |                  VARIANCE TEST
             |
             |              var_estimate = 110.75
             |
             |                conf_level = 0.95
             |
             |     conf_interval = [57.13433376937479, inf]
             |
(%o3)        | method = Variance Chi-square test. Unknown mean.
             |
             |    hypotheses = H0: var = 200 , H1: var > 200
             |
             |                 statistic = 4.43
             |
             |             distribution = [chi2, 8]
             |
             |           p_value = .8163948512777689
Función: test_variance_ratio (x1, x2)
Función: test_variance_ratio (x1, x2, options ...)

Este es el test F del cociente de las varianzas para dos poblaciones normales. Los argumentos x1 y x2 son listas o matrices columna que contienen los datos de dos muestras independientes.

Opciones:

  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.
  • 'mean1, valor por defecto 'unknown, es la media de la población de la que procede x1 cuando se conoce.
  • 'mean2, valor por defecto 'unknown, es la media de la población de la que procede x2 cuando se conoce.
  • 'conflevel, valor por defecto 95/100, nivel de confianza para el intervalo de confianza del cociente; debe ser una expresión que tome un valor en el intervalo (0,1).

El resultado devuelto por la función test_variance_ratio es un objeto inference_result con los siguientes resultados

  1. 'ratio_estimate: el cociente de varianzas muestral.
  2. 'conf_level: nivel de confianza seleccionado por el usuario.
  3. 'conf_interval: intervalo de confianza para el cociente de varianzas.
  4. 'method: procedimiento de inferencia.
  5. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  6. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  7. 'distribution: distribución del estadístico de contraste, junto con sus parámetros.
  8. 'p_value: p-valor del test.

Ejemplos:

Se contrasta la igualdad de varianzas de dos poblaciones normales frente a la alternativa de que la primera es mayor que la segunda.

(%i1) load("stats")$
(%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
(%i3) y: [1.2,6.9,38.7,20.4,17.2]$
(%i4) test_variance_ratio(x,y,'alternative='greater);
              |              VARIANCE RATIO TEST
              |
              |       ratio_estimate = 2.316933391522034
              |
              |               conf_level = 0.95
              |
              |    conf_interval = [.3703504689507268, inf]
              |
(%o4)         | method = Variance ratio F-test. Unknown means.
              |
              | hypotheses = H0: var1 = var2 , H1: var1 > var2
              |
              |         statistic = 2.316933391522034
              |
              |            distribution = [f, 5, 4]
              |
              |          p_value = .2179269692254457
Función: test_proportion (x, n)
Función: test_proportion (x, n, options ...)

Inferencias sobre una proporción. El argumento x es el número de éxitos observados en n pruebas de Bernoulli con probabilidad desconocida.

Opciones:

  • 'proportion, valor por defecto 1/2, es el valor de la probabilidad a contrastar.
  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.
  • 'conflevel, valor por defecto 95/100, nivel de confianza para el intervalo de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).
  • 'asymptotic, valor por defecto false, indica si debe realizar el test exacto basado en la binomial, o el asintótico basado en el Teorema Central del límite; valores válidos son true y false.
  • 'correct, valor por defecto true, indica si se aplica o no la corrección de Yates.

El resultado devuelto por la función test_proportion es un objeto inference_result con los siguientes apartados:

  1. 'sample_proportion: proporción muestral.
  2. 'conf_level: nivel de confianza seleccionado.
  3. 'conf_interval: intervalo de confianza de Wilson para la proporción.
  4. 'method: procedimiento de inferencia.
  5. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  6. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  7. 'distribution: distribución del estadístico de contraste, junto con sus parámetros.
  8. 'p_value: p-valor del test.

Ejemplos:

Realiza un contraste exacto. La hipótesis nula es H_0: p=1/2 y la alternativa unilátera es H_1: p<1/2.

(%i1) load("stats")$
(%i2) test_proportion(45, 103, alternative = less);
         |            PROPORTION TEST              
         |                                         
         | sample_proportion = .4368932038834951   
         |                                         
         |           conf_level = 0.95             
         |                                         
         | conf_interval = [0, 0.522714149150231]  
         |                                         
(%o2)    |     method = Exact binomial test.       
         |                                         
         | hypotheses = H0: p = 0.5 , H1: p < 0.5  
         |                                         
         |             statistic = 45              
         |                                         
         |  distribution = [binomial, 103, 0.5]    
         |                                         
         |      p_value = .1184509388901454 

Un contraste asintótico bilátero. El nivel de confianza es 99/100.

(%i1) load("stats")$
(%i2) fpprintprec:7$
(%i3) test_proportion(45, 103, 
                  conflevel = 99/100, asymptotic=true);
      |                 PROPORTION TEST                  
      |                                                  
      |           sample_proportion = .43689             
      |                                                  
      |                conf_level = 0.99                 
      |                                                  
      |        conf_interval = [.31422, .56749]          
      |                                                  
(%o3) | method = Asympthotic test with Yates correction. 
      |                                                  
      |     hypotheses = H0: p = 0.5 , H1: p # 0.5       
      |                                                  
      |               statistic = .43689                 
      |                                                  
      |      distribution = [normal, 0.5, .048872]       
      |                                                  
      |                p_value = .19662
Función: test_proportions_difference (x1, n1, x2, n2)
Función: test_proportions_difference (x1, n1, x2, n2, options ...)

Inferencias sobre la diferencia de dos proporciones. El argumento x1 es el número de éxitos en n1 experimentos de Bernoulli en la primera población y x2 y n2 son los valores correspondientes para la segunda población. Las muestras son independientes y el contraste es asintótico.

Opciones:

  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son:: 'twosided (p1 # p2), 'greater (p1 > p2) and 'less (p1 < p2).
  • 'conflevel, valor por defecto 95/100, nivel de confianza para el intervalo de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).
  • 'correct, valor por defecto true, indica si se aplica o no la corrección de Yates.

El resultado devuelto por la función test_proportions_difference es un objeto inference_result con los siguientes apartados:

  1. 'proportions: lista con las dos proporciones muestrales.
  2. 'conf_level: nivel de confianza seleccionado.
  3. 'conf_interval: intervalo de confianza para la diferencia de proporciones p1 - p2.
  4. 'method: procedimiento de inferencia y mensaje de aviso en caso de que alguno de los tamaños muestrales sea menor de 10.
  5. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  6. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  7. 'distribution: distribución del estadístico de contraste, junto con sus parámetros.
  8. 'p_value: p-valor del test.

Ejemplos:

Una máquina produce 10 piezas defectuosas en un lote de 250. Después de ciertas tareas de mantenimiento, produce 4 piezas defectuosas de un lote de 150. A fin de saber si la tarea de mantenimiento produjo alguna mejora, se contrasta la hipótesis nula H0:p1=p2 contra la alternativa H0:p1>p2, donde p1 y p2 son las probabilidades de que un artículo producido por la máquina sea defectuoso, antes y después de la reparación. De acuerdo con el p valor, no hay evidencia suficiente para aceptar la alternativa.

(%i1) load("stats")$
(%i2) fpprintprec:7$
(%i3) test_proportions_difference(10, 250, 4, 150,
                                alternative = greater);
      |       DIFFERENCE OF PROPORTIONS TEST         
      |                                              
      |       proportions = [0.04, .02666667]        
      |                                              
      |              conf_level = 0.95               
      |                                              
      |      conf_interval = [- .02172761, 1]        
      |                                              
(%o3) | method = Asymptotic test. Yates correction.  
      |                                              
      |   hypotheses = H0: p1 = p2 , H1: p1 > p2     
      |                                              
      |            statistic = .01333333             
      |                                              
      |    distribution = [normal, 0, .01898069]     
      |                                              
      |             p_value = .2411936 

Desviación típica exacta de la distribución normal asintótica con datos desconocidos.

(%i1) load("stats")$
(%i2) stats_numer: false$
(%i3) sol: test_proportions_difference(x1,n1,x2,n2)$
(%i4) last(take_inference('distribution,sol));
               1    1                  x2 + x1
              (-- + --) (x2 + x1) (1 - -------)
               n2   n1                 n2 + n1
(%o4)    sqrt(---------------------------------)
                           n2 + n1
Función: test_sign (x)
Función: test_sign (x, options ...)

Este es el test no paramétrico de los signos para contrastes sobre la mediana de una población continua. El argumento x es una lista o matriz columna que contiene los datos de una muestra unidimensional.

Opciones:

  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.
  • 'median, valor por defecto 0, es el valor de la mediana a contrastar.

El resultado devuelto por la función test_sign es un objeto inference_result con los siguientes apartados:

  1. 'med_estimate: la mediana muestral.
  2. 'method: procedimiento de inferencia.
  3. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  4. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  5. 'distribution: distribución del estadístico de contraste, junto con sus parámetros.
  6. 'p_value: p-valor del test.

Ejemplos:

Contrasta si la mediana de la población de la que se ha extraido la muestra es 6, frente a la alternativa H_1: median > 6.

(%i1) load("stats")$
(%i2) x: [2,0.1,7,1.8,4,2.3,5.6,7.4,5.1,6.1,6]$
(%i3) test_sign(x,'median=6,'alternative='greater);
               |                  SIGN TEST
               |
               |              med_estimate = 5.1
               |
               |      method = Non parametric sign test.
               |
(%o3)          | hypotheses = H0: median = 6 , H1: median > 6
               |
               |                statistic = 7
               |
               |      distribution = [binomial, 10, 0.5]
               |
               |         p_value = .05468749999999989
Función: test_signed_rank (x)
Función: test_signed_rank (x, options ...)

Este el test de los rangos signados de Wilcoxon para hacer inferencias sobre la mediana de una población continua. El argumento x es una lista o matriz columna que contiene los datos de una muestra unidimensional. Realiza la aproximación normal si el tamaño muestral es mayor que 20, o si en la muestra aparece algún cero o hay empates.

Véanse también pdf_rank_test y cdf_rank_test.

Opciones:

  • 'median, valor por defecto 0, es el valor de la mediana a ser contrastado.
  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.

El resultado devuelto por la función test_signed_rank es un objeto inference_result con los siguientes apartados:

  1. 'med_estimate: la mediana muestral.
  2. 'method: procedimiento de inferencia.
  3. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  4. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  5. 'distribution: distribución del estadístico de contraste, junto con su(s) parámetro(s).
  6. 'p_value: p-valor del test.

Ejemplos:

Contrasta la hipótesis nula H_0: median = 15 frente a la alternativa H_1: median > 15. Este test es exacto, puesto que no hay empates.

(%i1) load("stats")$
(%i2) x: [17.1,15.9,13.7,13.4,15.5,17.6]$
(%i3) test_signed_rank(x,median=15,alternative=greater);
                 |             SIGNED RANK TEST
                 |
                 |           med_estimate = 15.7
                 |
                 |           method = Exact test
                 |
(%o3)            | hypotheses = H0: med = 15 , H1: med > 15
                 |
                 |              statistic = 14
                 |
                 |     distribution = [signed_rank, 6]
                 |
                 |            p_value = 0.28125

Contrasta la hipótesis nula H_0: equal(median, 2.5) frente a la alternativa H_1: not equal(median, 2.5). Este es un test asintótico, debido a la presencia de empates.

(%i1) load("stats")$
(%i2) y:[1.9,2.3,2.6,1.9,1.6,3.3,4.2,4,2.4,2.9,1.5,3,2.9,4.2,3.1]$
(%i3) test_signed_rank(y,median=2.5);
             |                 SIGNED RANK TEST
             |
             |                med_estimate = 2.9
             |
             |          method = Asymptotic test. Ties
             |
(%o3)        |    hypotheses = H0: med = 2.5 , H1: med # 2.5
             |
             |                 statistic = 76.5
             |
             | distribution = [normal, 60.5, 17.58195097251724]
             |
             |           p_value = .3628097734643669
Función: test_rank_sum (x1, x2)
Función: test_rank_sum (x1, x2, option)

Este es el test de Wilcoxon-Mann-Whitney para comparar las medianas de dos poblaciones continuas. Los dos primeros argumentos x1 y x2 son listas o matrices columna con los datos de dos muestras independientes. Realiza la aproximación normal si alguna de las muestras tiene tamaño mayor que 10, o si hay empates.

Opción:

  • 'alternative, valor por defecto 'twosided, es la hipótesis alternativa; valores válidos son: 'twosided, 'greater y 'less.

El resultado devuelto por la función test_rank_sum es un objeto inference_result con los siguientes apartados:

  1. 'method: procedimiento de inferencia.
  2. 'hypotheses: hipótesis nula y alternativa a ser contrastada.
  3. 'statistic: valor del estadístico de contraste utilizado para probar la hipótesis.
  4. 'distribution: distribución del estadístico de contraste, junto con sus parámetros.
  5. 'p_value: p-valor del test.

Ejemplos:

Contrasta si dos poblaciones tiene medianas similares. Al ser los tamaños muestrales pequeños, se realiza el test exacto.

(%i1) load("stats")$
(%i2) x:[12,15,17,38,42,10,23,35,28]$
(%i3) y:[21,18,25,14,52,65,40,43]$
(%i4) test_rank_sum(x,y);
              |                 RANK SUM TEST
              |
              |              method = Exact test
              |
              | hypotheses = H0: med1 = med2 , H1: med1 # med2
(%o4)         |
              |                 statistic = 22
              |
              |        distribution = [rank_sum, 9, 8]
              |
              |          p_value = .1995886466474702

Ahora, con muestras mayores y empates, el procedimiento realiza la aproximación normal. La hipótesis alternativa es H_1: median1 < median2.

(%i1) load("stats")$
(%i2) x: [39,42,35,13,10,23,15,20,17,27]$
(%i3) y: [20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15]$
(%i4) test_rank_sum(x,y,'alternative='less);
             |                  RANK SUM TEST
             |
             |          method = Asymptotic test. Ties
             |
             |  hypotheses = H0: med1 = med2 , H1: med1 < med2
(%o4)        |
             |                 statistic = 48.5
             |
             | distribution = [normal, 79.5, 18.95419580097078]
             |
             |           p_value = .05096985666598441
Función: test_normality (x)

Test de Shapiro-Wilk para el contraste de normalidad. El argumento x es una lista de números, con tamaño muestral mayor que 2 y menor o igual que 5000; bajo cualesquiera otras condiciones, la función test_normality emite un mensaje de error.

Referencia:

[1] Algorithm AS R94, Applied Statistics (1995), vol.44, no.4, 547-551

El resultado devuelto por la función test_normality es un objeto inference_result con los siguientes apartados:

  1. 'statistic: valor del estadístico W.
  2. 'p_value: p-valor bajo la hipótesis de normalidad.

Ejemplos:

Contrasta la normalidad de una población a partir de una muestra de tamaño 9.

(%i1) load("stats")$
(%i2) x:[12,15,17,38,42,10,23,35,28]$
(%i3) test_normality(x);
                       |      SHAPIRO - WILK TEST
                       |
(%o3)                  | statistic = .9251055695162436
                       |
                       |  p_value = .4361763918860381
Función: linear_regression (x)
Función: linear_regression (x option)

Regresión lineal múltiple, y_i = b0 + b1*x_1i + b2*x_2i + ... + bk*x_ki + u_i, donde u_i son variables aleatorias independientes N(0,sigma). El argumento x debe ser una matriz con más de una columna. La última columna se considera que son las respuestas (y_i).

Opción:

  • 'conflevel, valor por defecto 95/100, nivel de confianza para los intervalos de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).

El resultado devuelto por la función linear_regression es un objeto inference_result de Maxima con los siguientes campos:

  1. 'b_estimation: estimadores de los coeficientes de regresión.
  2. 'b_covariances: matriz de covarianzas de los estimadores de los coeficientes de regresión.
  3. b_conf_int: intervalos de confianza para los coeficientes de regresión.
  4. b_statistics: estadísticos para los contrastes de los coeficientes.
  5. b_p_values: p-valores para los contrastes de los coeficientes.
  6. b_distribution: distribución de probabilidad para los contrastes de los coeficientes.
  7. v_estimation: estimador insesgado de la varianza.
  8. v_conf_int: intervalo de confianza de la varianza.
  9. v_distribution: distribución de probabilidad para el contraste de la varianza.
  10. residuals: residuos.
  11. adc: coeficiente de determinación ajustado.
  12. aic: Criterio de información de Akaike.
  13. bic: Criterio de información de Bayes.

Solamente los apartados 1, 4, 5, 6, 7, 8, 9 y 11, en este orden, se muestran por defecto. El resto permanecen ocultos hasta que el usuario haga uso de las funciones items_inference y take_inference.

Ejemplo:

Ajustando un modelo lineal a una muestra tridimensional. La última columna se considera que son las respuestas (y_i).

(%i2) load("stats")$
(%i3) X:matrix(
    [58,111,64],[84,131,78],[78,158,83],
    [81,147,88],[82,121,89],[102,165,99],
    [85,174,101],[102,169,102])$
(%i4) fpprintprec: 4$
(%i5) res: linear_regression(X);
             |       LINEAR REGRESSION MODEL         
             |                                       
             | b_estimation = [9.054, .5203, .2397]  
             |                                       
             | b_statistics = [.6051, 2.246, 1.74]   
             |                                       
             | b_p_values = [.5715, .07466, .1423]   
             |                                       
(%o5)        |   b_distribution = [student_t, 5]     
             |                                       
             |         v_estimation = 35.27          
             |                                       
             |     v_conf_int = [13.74, 212.2]       
             |                                       
             |      v_distribution = [chi2, 5]       
             |                                       
             |             adc = .7922               
(%i6) items_inference(res);
(%o6) [b_estimation, b_covariances, b_conf_int, b_statistics, 
b_p_values, b_distribution, v_estimation, v_conf_int, 
v_distribution, residuals, adc, aic, bic]
(%i7) take_inference('b_covariances, res);
                  [  223.9    - 1.12   - .8532  ]
                  [                             ]
(%o7)             [ - 1.12    .05367   - .02305 ]
                  [                             ]
                  [ - .8532  - .02305   .01898  ]
(%i8) take_inference('bic, res);
(%o8)                          30.98
(%i9) load("draw")$
(%i10) draw2d(
    points_joined = true,
    grid = true,
    points(take_inference('residuals, res)) )$

74.4 Funciones y variables para distribuciones especiales

Función: pdf_signed_rank (x, n)

Función de densidad de probabilidad de la distribución exacta del estadístico de contraste del test de los rangos signados. El argumento x es un número real y n un entero positivo.

Véase también test_signed_rank.

Función: cdf_signed_rank (x, n)

Función de probabilidad acumulada de la distribución exacta del estadístico de contraste del test de los rangos signados. El argumento x es un número real y n un entero positivo.

Véase también test_signed_rank.

Función: pdf_rank_sum (x, n, m)

Función de densidad de probabilidad de la distribución exacta del estadístico de contraste de Wilcoxon-Mann-Whitney. El argumento x es un número real y n y m son ambos enteros positivos.

Véase también test_rank_sum.

Función: cdf_rank_sum (x, n, m)

Función de probabilidad acumulada de la distribución exacta del estadístico de contraste de Wilcoxon-Mann-Whitney. El argumento x es un número real y n y m son ambos enteros positivos.

Véase también test_rank_sum.


Siguiente: , Anterior:   [Índice general][Índice]