1 @c English version: 2012-08-06
3 * Introducción a stats::
4 * Funciones y variables para inference_result::
5 * Funciones y variables para stats::
6 * Funciones y variables para distribuciones especiales::
9 @node Introducción a stats, Funciones y variables para inference_result, Top, Top
10 @section Introducción a stats
13 El paquete @code{stats} contiene procedimientos clásicos sobre inferencia
14 estadística y contraste de hipótesis.
16 Todas estas funciones devuelven un objeto Maxima de tipo @code{inference_result},
17 el cual contiene los resultados necesarios para hacer inferencias sobre la
18 población y toma de decisiones.
20 La variable global @code{stats_numer} controla si los resultados deben darse
21 en formato decimal o simbólico y racional; su valor por defecto es @code{true},
22 por lo que el formato de salida es decimal.
24 El paquete @code{descriptive} contiene algunas utilidades para manipular
25 estructuras de datos (listas y matrices); por ejemplo para extraer submuestras.
26 También contiene algunos ejemplos sobre cómo utilizar el paquete
27 @code{numericalio} para leer datos de ficheros en texto plano. Véanse
28 @code{descriptive} y @code{numericalio} para más detalles.
30 El paquete @code{stats} carga en memoria los paquetes @code{descriptive},
31 @code{distrib} y @code{inference_result}.
33 Para comentarios, errores o sugerencias, contáctese con el autor en
35 @var{'mario ARROBA edu PUNTO xunta PUNTO es'}.
38 @node Funciones y variables para inference_result, Funciones y variables para stats, Introducción a stats, Top
39 @section Funciones y variables para inference_result
42 @deffn {Función} inference_result (@var{title}, @var{values}, @var{numbers})
44 Construye un objeto @code{inference_result} del tipo devuelto por las funciones
45 estadísticas. El argumento @var{title} es una cadena con
46 el nombre del procedimiento; @var{values} es una lista con elementos de la
47 forma @code{symbol = value} y @var{numbers} es una lista con enteros positivos
48 desde uno hasta @code{length(@var{values})}, que indican qué valores serán
49 mostrados por defecto.
53 Este es un ejemplo que muestra los resultados asociados a un rectángulo. El
54 título de este objeto es la cadena @code{"Rectangle"}, el cual
55 almacena cinco resultados, a saber, @code{'base}, @code{'height},
56 @code{'diagonal}, @code{'area} y @code{'perimeter}, pero sólo muestra
57 el primero, segundo, quinto y cuarto. El resultado @code{'diagonal} también
58 se almacena en este objeto, pero no se muestra por defecto; para tener acceso
59 a este valor, hágase uso de la función @code{take_inference}.
62 @c load (inference_result)$
64 @c inference_result("Rectangle",
67 @c 'diagonal=sqrt(b^2+h^2),
69 @c 'perimeter=2*(b+h)],
71 @c take_inference('diagonal,%);
74 (%i1) load(inference_result)$
76 (%i3) inference_result("Rectangle",
79 'diagonal=sqrt(b^2+h^2),
92 (%i4) take_inference('diagonal,%);
96 Véase también @code{take_inference}.
104 @deffn {Función} inferencep (@var{obj})
106 Devuelve @code{true} o @code{false}, dependiendo de que @var{obj} sea un
107 objeto de tipo @code{inference_result} o no.
116 @deffn {Función} items_inference (@var{obj})
118 Devuelve una lista con los nombres de los elementos almacenados en
119 @var{obj}, el cual debe ser un objeto de tipo @code{inference_result}.
123 El objeto @code{inference_result} almacena dos valores, cuyos nombres son @code{'pi} y @code{'e},
124 pero sólo se muestra el segundo. La función @code{items_inference} devuelve los nombres de
125 todos los elementos almacenados, independientemente de que sean mostrados o no.
128 @c load (inference_result)$
129 @c inference_result("Hi", ['pi=%pi,'e=%e],[2]);
130 @c items_inference(%);
133 (%i1) load(inference_result)$
134 (%i2) inference_result("Hi", ['pi=%pi,'e=%e],[2]);
138 (%i3) items_inference(%);
149 @deffn {Función} take_inference (@var{n}, @var{obj})
150 @deffnx {Función} take_inference (@var{name}, @var{obj})
151 @deffnx {Función} take_inference (@var{list}, @var{obj})
153 Si @var{n} es un entero positivo, devuelve el @var{n}-ésimo
154 valor almacenado en @var{obj}; si el símbolo @var{name}
155 es el nombre de uno de los elementos almacenados, también
156 devuelve su valor. Si el primer elemento es una lista de números y/o
157 símbolos, la función @code{take_inference}
158 devuelve una lista con los resultados correspondientes.
162 Dado un objeto @code{inference_result}, la función @code{take_inference}
163 es invocada para extraer cierta información almacenada en él.
166 @c load (inference_result)$
168 @c sol:inference_result("Rectangle",
171 @c 'diagonal=sqrt(b^2+h^2),
173 @c 'perimeter=2*(b+h)],
175 @c take_inference('base,sol);
176 @c take_inference(5,sol);
177 @c take_inference([1,'diagonal],sol);
178 @c take_inference(items_inference(sol),sol);
181 (%i1) load(inference_result)$
183 (%i3) sol: inference_result("Rectangle",
186 'diagonal=sqrt(b^2+h^2),
199 (%i4) take_inference('base,sol);
201 (%i5) take_inference(5,sol);
203 (%i6) take_inference([1,'diagonal],sol);
205 (%i7) take_inference(items_inference(sol),sol);
206 (%o7) [3, 2, sqrt(13), 6, 10]
209 Véanse también @code{inference_result} y @code{take_inference}.
218 @node Funciones y variables para stats, Funciones y variables para distribuciones especiales, Funciones y variables para inference_result, Top
219 @section Funciones y variables para stats
222 @defvr {Variable opcional} stats_numer
223 Valor por defecto: @code{true}
225 Cuando @code{stats_numer} vale @code{true}, las funciones de inferencia
226 estadística devuelven sus resultados en formato decimal de
227 coma flotante. Cuando vale @code{false}, los resultados se devuelven en
228 formato simbólico y racional.
232 @deffn {Función} test_mean (@var{x})
233 @deffnx {Función} test_mean (@var{x}, @var{options} ...)
235 Es el test @var{t} de la media. El argumento @var{x} es una lista o matriz
236 columna con los datos de una muestra unidimensional. También realiza el
237 test asintótico basado en el @i{Teorema Central del límite}
238 si se le asigna a la opción @code{'asymptotic} el valor @code{true}.
245 @code{'mean}, valor por defecto @code{0}, es el valor de la media a contrastar.
248 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
249 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
252 @code{'dev}, valor por defecto @code{'unknown}, este es el valor de la desviación
253 típica cuando se conoce; valores válidos son: @code{'unknown} o una
254 expresión con valor positivo.
257 @code{'conflevel}, valor por defecto @code{95/100}, nivel de confianza para el intervalo de confianza;
258 debe ser una expresión que tome un valor en el intervalo (0,1).
261 @code{'asymptotic}, valor por defecto @code{false}, indica si debe realizar el test
262 exacto basado en la @var{t} de Student, o el asintótico basado en el
263 @i{Teorema Central del límite}; valores válidos son @code{true} y @code{false}.
267 El resultado devuelto por la función @code{test_mean} es un objeto
268 @code{inference_result} con los siguientes apartados:
273 @code{'mean_estimate}: la media muestral.
276 @code{'conf_level}: nivel de confianza seleccionado por el usuario.
279 @code{'conf_interval}: intervalo de confianza para la media poblacional.
282 @code{'method}: procedimiento de inferencia.
285 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
288 @code{'statistic}: valor del estadístico de contraste utilizado para probar la hipótesis.
291 @code{'distribution}: distribución del estadístico de contraste, junto con su(s) parámetro(s).
294 @code{'p_value}: @math{p}-valor del test.
300 Realiza el contraste exacto @var{t} con varianza desconocida. La
301 hipótesis nula es @math{H_0: mean=50}, frente a la alternativa
302 unilátera @math{H_1: mean<50}; de acuerdo con los resultados,
303 no hay evidencia para rechazar @math{H_0}, pues el @math{p}-valor
308 @c data: [78,64,35,45,45,75,43,74,42,42]$
309 @c test_mean(data,'conflevel=0.9,'alternative='less,'mean=50);
313 (%i2) data: [78,64,35,45,45,75,43,74,42,42]$
314 (%i3) test_mean(data,'conflevel=0.9,'alternative='less,'mean=50);
317 | mean_estimate = 54.3
321 | conf_interval = [minf, 61.51314273502712]
323 (%o3) | method = Exact t-test. Unknown variance.
325 | hypotheses = H0: mean = 50 , H1: mean < 50
327 | statistic = .8244705235071678
329 | distribution = [student_t, 9]
331 | p_value = .7845100411786889
334 En esta ocasión Maxima realiza un test asintótico. La hipótesis
335 nula es @math{H_0: equal(mean, 50)} frente a la alternativa bilátera @math{H_1: not equal(mean, 50)};
336 de acuerdo con los resultados, @math{H_0} debe rechazarse en favor de
337 la alternativa @math{H_1}, pues el @math{p}-valor es muy pequeño.
338 Nótese que, tal como indica la componente @code{Method}, este
339 procedimiento sólo puede aplicarse en muestras grandes.
343 @c test_mean([36,118,52,87,35,256,56,178,57,57,89,34,25,98,35,
344 @c 98,41,45,198,54,79,63,35,45,44,75,42,75,45,45,
345 @c 45,51,123,54,151],
346 @c 'asymptotic=true,'mean=50);
350 (%i2) test_mean([36,118,52,87,35,256,56,178,57,57,89,34,25,98,35,
351 98,41,45,198,54,79,63,35,45,44,75,42,75,45,45,
353 'asymptotic=true,'mean=50);
356 | mean_estimate = 74.88571428571429
360 | conf_interval = [57.72848600856194, 92.04294256286663]
362 (%o2) | method = Large sample z-test. Unknown variance.
364 | hypotheses = H0: mean = 50 , H1: mean # 50
366 | statistic = 2.842831192874313
368 | distribution = [normal, 0, 1]
370 | p_value = .004471474652002261
381 @deffn {Función} test_means_difference (@var{x1}, @var{x2})
382 @deffnx {Función} test_means_difference (@var{x1}, @var{x2}, @var{options} ...)
384 Este es el test @var{t} para la diferencia de medias con muestras.
385 Los argumentos @var{x1} y @var{x2} son listas o matrices columna
386 que contienen dos muestras independientes. En caso de varianzas
387 diferentes y desconocidas (véanse las opciones @code{'dev1},
388 @code{'dev2} y @code{'varequal} más abajo) los grados de libertad
389 se calculan mediante la aproximación de Welch.
390 También realiza el test asintótico basado en el
391 @i{Teorema Central del límite} si se le asigna a
392 la opción @code{'asymptotic} el valor @code{true}.
401 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
402 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
405 @code{'dev1}, valor por defecto @code{'unknown}, es el valor de la desviación
406 típica de la muestra @var{x1} cuando se conoce; valores válidos
407 son: @code{'unknown} o una expresión positiva.
410 @code{'dev2}, valor por defecto @code{'unknown}, es el valor de la desviación
411 típica de la muestra @var{x2} cuando se conoce; valores válidos
412 son: @code{'unknown} o una expresión positiva.
415 @code{'varequal}, valor por defecto @code{false}, indica si las varianzas deben considerarse iguales o no; esta opción sólo toma efecto cuando @code{'dev1} y/o @code{'dev2} tienen el valor @code{'unknown}.
418 @code{'conflevel}, valor por defecto @code{95/100}, nivel de confianza para el
419 intervalo de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).
422 @code{'asymptotic}, valor por defecto @code{false}, indica si debe realizar el test
423 exacto basado en la @var{t} de Student, o el asintótico basado en el
424 @i{Teorema Central del límite}; valores válidos son @code{true} y @code{false}.
428 El resultado devuelto por la función @code{test_means_difference} es un objeto
429 @code{inference_result} con los siguientes apartados:
434 @code{'diff_estimate}: el estimador de la diferencia de medias.
437 @code{'conf_level}: nivel de confianza seleccionado por el usuario.
440 @code{'conf_interval}: intervalo de confianza para la diferencia de medias.
443 @code{'method}: procedimiento de inferencia.
446 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
449 @code{'statistic}: valor del estadístico de contraste utilizado para probar la hipótesis.
452 @code{'distribution}: distribución del estadístico de contraste, junto con su(s) parámetro(s).
455 @code{'p_value}: @math{p}-valor del test.
461 La igualdad de medias se contrasta con dos pequeñas muestras
462 @var{x} y @var{y}, contra la alternativa @math{H_1: m_1>m_2},
463 siendo @math{m_1} y @math{m_2} las medias poblacionales; las
464 varianzas son desconocidas y se supone que diferentes.
466 @c equivalent code for R:
467 @c x <- c(20.4,62.5,61.3,44.2,11.1,23.7)
468 @c y <- c(1.2,6.9,38.7,20.4,17.2)
469 @c t.test(x,y,alternative="greater")
473 @c x: [20.4,62.5,61.3,44.2,11.1,23.7]$
474 @c y: [1.2,6.9,38.7,20.4,17.2]$
475 @c test_means_difference(x,y,'alternative='greater);
479 (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
480 (%i3) y: [1.2,6.9,38.7,20.4,17.2]$
481 (%i4) test_means_difference(x,y,'alternative='greater);
482 | DIFFERENCE OF MEANS TEST
484 | diff_estimate = 20.31999999999999
488 | conf_interval = [- .04597417812882298, inf]
490 (%o4) | method = Exact t-test. Welch approx.
492 | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
494 | statistic = 1.838004300728477
496 | distribution = [student_t, 8.62758740184604]
498 | p_value = .05032746527991905
501 El mismo test que antes, pero ahora se suponen las varianzas
504 @c equivalent code for R:
505 @c x <- c(20.4,62.5,61.3,44.2,11.1,23.7)
506 @c y <- c(1.2,6.9,38.7,20.4,17.2)
507 @c t.test(x,y,var.equal=T,alternative="greater")
511 @c x: [20.4,62.5,61.3,44.2,11.1,23.7]$
512 @c y: [1.2,6.9,38.7,20.4,17.2]$
513 @c test_means_difference(x,y,
514 @c 'alternative='greater,
519 (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
520 (%i3) y: matrix([1.2],[6.9],[38.7],[20.4],[17.2])$
521 (%i4) test_means_difference(x,y,
522 'alternative='greater,
524 | DIFFERENCE OF MEANS TEST
526 | diff_estimate = 20.31999999999999
530 | conf_interval = [- .7722627696897568, inf]
532 (%o4) | method = Exact t-test. Unknown equal variances
534 | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
536 | statistic = 1.765996124515009
538 | distribution = [student_t, 9]
540 | p_value = .05560320992529344
551 @deffn {Función} test_variance (@var{x})
552 @deffnx {Función} test_variance (@var{x}, @var{options} ...)
554 Este es el test @var{chi^2} de la varianza. El argumento @var{x}
555 es una lista o matriz columna con los datos de una muestra unidimensional
556 extraída de una población normal.
563 @code{'mean}, valor por defecto @code{'unknown}, es la media de la población, si se conoce.
566 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
567 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
570 @code{'variance}, valor por defecto @code{1}, este es el valor (positivo) de la varianza a contrastar.
573 @code{'conflevel}, valor por defecto @code{95/100}, nivel de confianza para el intervalo de confianza;
574 debe ser una expresión que tome un valor en el intervalo (0,1).
578 El resultado devuelto por la función @code{test_variance} es un objeto
579 @code{inference_result} con los siguientes apartados:
584 @code{'var_estimate}: la varianza muestral.
587 @code{'conf_level}: nivel de confianza seleccionado por el usuario.
590 @code{'conf_interval}: intervalo de confianza para la varianza poblacional.
593 @code{'method}: procedimiento de inferencia.
596 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
599 @code{'statistic}: valor del estadístico de contraste utilizado para probar la hipótesis.
602 @code{'distribution}: distribución del estadístico de contraste, junto con su parámetro.
605 @code{'p_value}: @math{p}-valor del test.
611 Se contrasta si la varianza de una población de media desconocida
612 es igual o mayor que 200.
616 @c x: [203,229,215,220,223,233,208,228,20]$
617 @c test_variance(x,'alternative='greater,'variance=200);
621 (%i2) x: [203,229,215,220,223,233,208,228,209]$
622 (%i3) test_variance(x,'alternative='greater,'variance=200);
625 | var_estimate = 110.75
629 | conf_interval = [57.13433376937479, inf]
631 (%o3) | method = Variance Chi-square test. Unknown mean.
633 | hypotheses = H0: var = 200 , H1: var > 200
637 | distribution = [chi2, 8]
639 | p_value = .8163948512777689
650 @deffn {Función} test_variance_ratio (@var{x1}, @var{x2})
651 @deffnx {Función} test_variance_ratio (@var{x1}, @var{x2}, @var{options} ...)
653 Este es el test @var{F} del cociente de las varianzas para dos
654 poblaciones normales. Los argumentos @var{x1} y @var{x2} son listas
655 o matrices columna que contienen los datos de dos muestras
663 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
664 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
667 @code{'mean1}, valor por defecto @code{'unknown}, es la media de la población de la
668 que procede @var{x1} cuando se conoce.
671 @code{'mean2}, valor por defecto @code{'unknown}, es la media de la población de la
672 que procede @var{x2} cuando se conoce.
675 @code{'conflevel}, valor por defecto @code{95/100}, nivel de confianza para el intervalo
676 de confianza del cociente; debe ser una expresión que tome un valor en el intervalo (0,1).
680 El resultado devuelto por la función @code{test_variance_ratio} es un objeto
681 @code{inference_result} con los siguientes resultados
686 @code{'ratio_estimate}: el cociente de varianzas muestral.
689 @code{'conf_level}: nivel de confianza seleccionado por el usuario.
692 @code{'conf_interval}: intervalo de confianza para el cociente de varianzas.
695 @code{'method}: procedimiento de inferencia.
698 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
701 @code{'statistic}: valor del estadístico de contraste utilizado para probar la hipótesis.
704 @code{'distribution}: distribución del estadístico de contraste, junto con sus parámetros.
707 @code{'p_value}: @math{p}-valor del test.
714 Se contrasta la igualdad de varianzas de dos poblaciones normales frente
715 a la alternativa de que la primera es mayor que la segunda.
717 @c equivalent code for R:
718 @c x <- c(20.4,62.5,61.3,44.2,11.1,23.7)
719 @c y <- c(1.2,6.9,38.7,20.4,17.2)
720 @c var.test(x,y,alternative="greater")
724 @c x: [20.4,62.5,61.3,44.2,11.1,23.7]$
725 @c y: [1.2,6.9,38.7,20.4,17.2]$
726 @c test_variance_ratio(x,y,'alternative='greater);
730 (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
731 (%i3) y: [1.2,6.9,38.7,20.4,17.2]$
732 (%i4) test_variance_ratio(x,y,'alternative='greater);
733 | VARIANCE RATIO TEST
735 | ratio_estimate = 2.316933391522034
739 | conf_interval = [.3703504689507268, inf]
741 (%o4) | method = Variance ratio F-test. Unknown means.
743 | hypotheses = H0: var1 = var2 , H1: var1 > var2
745 | statistic = 2.316933391522034
747 | distribution = [f, 5, 4]
749 | p_value = .2179269692254457
758 @deffn {Función} test_proportion (@var{x}, @var{n})
759 @deffnx {Función} test_proportion (@var{x}, @var{n}, @var{options} ...)
761 Inferencias sobre una proporción. El argumento @var{x} es el
762 número de éxitos observados en @var{n} pruebas de Bernoulli
763 con probabilidad desconocida.
770 @code{'proportion}, valor por defecto @code{1/2}, es el valor de la
771 probabilidad a contrastar.
774 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
775 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
778 @code{'conflevel}, valor por defecto @code{95/100}, nivel de confianza para el intervalo
779 de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).
782 @code{'asymptotic}, valor por defecto @code{false}, indica si debe realizar el test
783 exacto basado en la binomial, o el asintótico basado en el
784 @i{Teorema Central del límite}; valores válidos son @code{true} y @code{false}.
787 @code{'correct}, valor por defecto @code{true}, indica si se aplica o no la
792 El resultado devuelto por la función @code{test_proportion} es un objeto
793 @code{inference_result} con los siguientes apartados:
798 @code{'sample_proportion}: proporción muestral.
801 @code{'conf_level}: nivel de confianza seleccionado.
804 @code{'conf_interval}: intervalo de confianza de Wilson para la proporción.
807 @code{'method}: procedimiento de inferencia.
810 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
813 @code{'statistic}: valor del estadístico de contraste utilizado
814 para probar la hipótesis.
817 @code{'distribution}: distribución del estadístico de contraste, junto con sus parámetros.
820 @code{'p_value}: @math{p}-valor del test.
826 Realiza un contraste exacto. La hipótesis nula es @math{H_0: p=1/2}
827 y la alternativa unilátera es @math{H_1: p<1/2}.
831 @c test_proportion(45, 103, alternative = less);
835 (%i2) test_proportion(45, 103, alternative = less);
838 | sample_proportion = .4368932038834951
842 | conf_interval = [0, 0.522714149150231]
844 (%o2) | method = Exact binomial test.
846 | hypotheses = H0: p = 0.5 , H1: p < 0.5
850 | distribution = [binomial, 103, 0.5]
852 | p_value = .1184509388901454
855 Un contraste asintótico bilátero. El nivel de confianza es 99/100.
860 @c test_proportion(45, 103,
861 @c conflevel = 99/100, asymptotic=true);
866 (%i3) test_proportion(45, 103,
867 conflevel = 99/100, asymptotic=true);
870 | sample_proportion = .43689
874 | conf_interval = [.31422, .56749]
876 (%o3) | method = Asympthotic test with Yates correction.
878 | hypotheses = H0: p = 0.5 , H1: p # 0.5
882 | distribution = [normal, 0.5, .048872]
895 @deffn {Función} test_proportions_difference (@var{x1}, @var{n1}, @var{x2}, @var{n2})
896 @deffnx {Función} test_proportions_difference (@var{x1}, @var{n1}, @var{x2}, @var{n2}, @var{options} ...)
898 Inferencias sobre la diferencia de dos proporciones. El argumento @var{x1}
899 es el número de éxitos en @var{n1} experimentos de Bernoulli en la
900 primera población y @var{x2} y @var{n2} son los valores correspondientes
901 para la segunda población. Las muestras son independientes y el contraste
909 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
910 valores válidos son:: @code{'twosided} (@code{p1 # p2}), @code{'greater} (@code{p1 > p2})
911 and @code{'less} (@code{p1 < p2}).
914 @code{'conflevel}, valor por defecto @code{95/100}, nivel de confianza para el intervalo
915 de confianza; debe ser una expresión que tome un valor en el intervalo (0,1).
918 @code{'correct}, valor por defecto @code{true}, indica si se aplica o no la
923 El resultado devuelto por la función @code{test_proportions_difference} es un objeto
924 @code{inference_result} con los siguientes apartados:
929 @code{'proportions}: lista con las dos proporciones muestrales.
932 @code{'conf_level}: nivel de confianza seleccionado.
935 @code{'conf_interval}: intervalo de confianza para la diferencia de proporciones @code{p1 - p2}.
938 @code{'method}: procedimiento de inferencia y mensaje de aviso en caso de que
939 alguno de los tamaños muestrales sea menor de 10.
942 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
945 @code{'statistic}: valor del estadístico de contraste utilizado
946 para probar la hipótesis.
949 @code{'distribution}: distribución del estadístico de contraste, junto con sus parámetros.
952 @code{'p_value}: @math{p}-valor del test.
958 Una máquina produce 10 piezas defectuosas en un lote de 250.
959 Después de ciertas tareas de mantenimiento, produce 4 piezas
960 defectuosas de un lote de 150. A fin de saber si la tarea de
961 mantenimiento produjo alguna mejora, se contrasta la hipótesis
962 nula @code{H0:p1=p2} contra la alternativa @code{H0:p1>p2},
963 donde @code{p1} y @code{p2} son las probabilidades de que un
964 artículo producido por la máquina sea defectuoso,
965 antes y después de la reparación. De acuerdo con el p valor, no hay
966 evidencia suficiente para aceptar la alternativa.
971 @c test_proportions_difference(10, 250, 4, 150,
972 @c alternative = greater);
977 (%i3) test_proportions_difference(10, 250, 4, 150,
978 alternative = greater);
979 | DIFFERENCE OF PROPORTIONS TEST
981 | proportions = [0.04, .02666667]
985 | conf_interval = [- .02172761, 1]
987 (%o3) | method = Asymptotic test. Yates correction.
989 | hypotheses = H0: p1 = p2 , H1: p1 > p2
991 | statistic = .01333333
993 | distribution = [normal, 0, .01898069]
998 Desviación típica exacta de la
999 distribución normal asintótica con datos
1004 @c stats_numer: false$
1005 @c sol: test_proportions_difference(x1,n1,x2,n2)$
1006 @c last(take_inference('distribution,sol));
1009 (%i1) load("stats")$
1010 (%i2) stats_numer: false$
1011 (%i3) sol: test_proportions_difference(x1,n1,x2,n2)$
1012 (%i4) last(take_inference('distribution,sol));
1014 (-- + --) (x2 + x1) (1 - -------)
1016 (%o4) sqrt(---------------------------------)
1028 @deffn {Función} test_sign (@var{x})
1029 @deffnx {Función} test_sign (@var{x}, @var{options} ...)
1031 Este es el test no paramétrico de los signos para contrastes
1032 sobre la mediana de una población continua. El argumento @var{x}
1033 es una lista o matriz columna que contiene los datos de una muestra
1041 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
1042 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
1045 @code{'median}, valor por defecto @code{0}, es el valor de la mediana a contrastar.
1049 El resultado devuelto por la función @code{test_sign} es un objeto
1050 @code{inference_result} con los siguientes apartados:
1055 @code{'med_estimate}: la mediana muestral.
1058 @code{'method}: procedimiento de inferencia.
1061 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
1064 @code{'statistic}: valor del estadístico de contraste utilizado para probar la hipótesis.
1067 @code{'distribution}: distribución del estadístico de contraste, junto con sus parámetros.
1070 @code{'p_value}: @math{p}-valor del test.
1076 Contrasta si la mediana de la población de la que se ha extraido
1077 la muestra es 6, frente a la alternativa @math{H_1: median > 6}.
1081 @c x: [2,0.1,7,1.8,4,2.3,5.6,7.4,5.1,6.1,6]$
1082 @c test_sign(x,'median=6,'alternative='greater);
1085 (%i1) load("stats")$
1086 (%i2) x: [2,0.1,7,1.8,4,2.3,5.6,7.4,5.1,6.1,6]$
1087 (%i3) test_sign(x,'median=6,'alternative='greater);
1090 | med_estimate = 5.1
1092 | method = Non parametric sign test.
1094 (%o3) | hypotheses = H0: median = 6 , H1: median > 6
1098 | distribution = [binomial, 10, 0.5]
1100 | p_value = .05468749999999989
1113 @deffn {Función} test_signed_rank (@var{x})
1114 @deffnx {Función} test_signed_rank (@var{x}, @var{options} ...)
1116 Este el test de los rangos signados de Wilcoxon para hacer inferencias sobre
1117 la mediana de una población continua. El argumento @var{x} es una lista
1118 o matriz columna que contiene los datos de una muestra unidimensional.
1119 Realiza la aproximación normal si el tamaño muestral es mayor que 20,
1120 o si en la muestra aparece algún cero o hay empates.
1122 Véanse también @code{pdf_rank_test} y @code{cdf_rank_test}.
1130 @code{'median}, valor por defecto @code{0}, es el valor de la mediana a ser contrastado.
1133 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
1134 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
1138 El resultado devuelto por la función @code{test_signed_rank} es
1139 un objeto @code{inference_result} con los siguientes apartados:
1144 @code{'med_estimate}: la mediana muestral.
1147 @code{'method}: procedimiento de inferencia.
1150 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
1153 @code{'statistic}: valor del estadístico de contraste utilizado para probar la hipótesis.
1156 @code{'distribution}: distribución del estadístico de contraste, junto con su(s) parámetro(s).
1159 @code{'p_value}: @math{p}-valor del test.
1165 Contrasta la hipótesis nula @math{H_0: median = 15} frente
1166 a la alternativa @math{H_1: median > 15}. Este test es exacto,
1167 puesto que no hay empates.
1170 @c equivalent code for R:
1171 @c x <- c(17.1,15.9,13.7,13.4,15.5,17.6)
1172 @c wilcox.test(x,mu=15,alternative="greater")
1176 @c x: [17.1,15.9,13.7,13.4,15.5,17.6]$
1177 @c test_signed_rank(x,median=15,alternative=greater);
1180 (%i1) load("stats")$
1181 (%i2) x: [17.1,15.9,13.7,13.4,15.5,17.6]$
1182 (%i3) test_signed_rank(x,median=15,alternative=greater);
1185 | med_estimate = 15.7
1187 | method = Exact test
1189 (%o3) | hypotheses = H0: med = 15 , H1: med > 15
1193 | distribution = [signed_rank, 6]
1198 Contrasta la hipótesis nula @math{H_0: equal(median, 2.5)} frente
1199 a la alternativa @math{H_1: not equal(median, 2.5)}. Este es un test asintótico,
1200 debido a la presencia de empates.
1202 @c equivalent code for R:
1203 @c y<-c(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)
1204 @c wilcox.test(y,mu=2.5)
1208 @c 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]$
1209 @c test_signed_rank(y,median=2.5);
1212 (%i1) load("stats")$
1213 (%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]$
1214 (%i3) test_signed_rank(y,median=2.5);
1217 | med_estimate = 2.9
1219 | method = Asymptotic test. Ties
1221 (%o3) | hypotheses = H0: med = 2.5 , H1: med # 2.5
1225 | distribution = [normal, 60.5, 17.58195097251724]
1227 | p_value = .3628097734643669
1238 @deffn {Función} test_rank_sum (@var{x1}, @var{x2})
1239 @deffnx {Función} test_rank_sum (@var{x1}, @var{x2}, @var{option})
1241 Este es el test de Wilcoxon-Mann-Whitney para comparar las medianas
1242 de dos poblaciones continuas. Los dos primeros argumentos @var{x1}
1243 y @var{x2} son listas o matrices columna con los datos de dos
1244 muestras independientes. Realiza la aproximación normal si
1245 alguna de las muestras tiene tamaño mayor que 10, o si hay
1254 @code{'alternative}, valor por defecto @code{'twosided}, es la hipótesis alternativa;
1255 valores válidos son: @code{'twosided}, @code{'greater} y @code{'less}.
1259 El resultado devuelto por la función @code{test_rank_sum}
1260 es un objeto @code{inference_result} con los siguientes apartados:
1265 @code{'method}: procedimiento de inferencia.
1268 @code{'hypotheses}: hipótesis nula y alternativa a ser contrastada.
1271 @code{'statistic}: valor del estadístico de contraste utilizado para probar la hipótesis.
1274 @code{'distribution}: distribución del estadístico de contraste, junto con sus parámetros.
1277 @code{'p_value}: @math{p}-valor del test.
1283 Contrasta si dos poblaciones tiene medianas similares. Al ser los tamaños
1284 muestrales pequeños, se realiza el test exacto.
1286 @c equivalent code for R:
1287 @c x <- c(12,15,17,38,42,10,23,35,28)
1288 @c y <- c(21,18,25,14,52,65,40,43)
1293 @c x:[12,15,17,38,42,10,23,35,28]$
1294 @c y:[21,18,25,14,52,65,40,43]$
1295 @c test_rank_sum(x,y);
1298 (%i1) load("stats")$
1299 (%i2) x:[12,15,17,38,42,10,23,35,28]$
1300 (%i3) y:[21,18,25,14,52,65,40,43]$
1301 (%i4) test_rank_sum(x,y);
1304 | method = Exact test
1306 | hypotheses = H0: med1 = med2 , H1: med1 # med2
1310 | distribution = [rank_sum, 9, 8]
1312 | p_value = .1995886466474702
1315 Ahora, con muestras mayores y empates, el procedimiento
1316 realiza la aproximación normal. La hipótesis
1317 alternativa es @math{H_1: median1 < median2}.
1319 @c equivalent code for R:
1320 @c x <- c(39,42,35,13,10,23,15,20,17,27)
1321 @c y <- c(20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15)
1322 @c wilcox.test(x,y,alternative="less")
1326 @c x: [39,42,35,13,10,23,15,20,17,27]$
1327 @c y: [20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15]$
1328 @c test_rank_sum(x,y,'alternative='less);
1331 (%i1) load("stats")$
1332 (%i2) x: [39,42,35,13,10,23,15,20,17,27]$
1333 (%i3) y: [20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15]$
1334 (%i4) test_rank_sum(x,y,'alternative='less);
1337 | method = Asymptotic test. Ties
1339 | hypotheses = H0: med1 = med2 , H1: med1 < med2
1343 | distribution = [normal, 79.5, 18.95419580097078]
1345 | p_value = .05096985666598441
1356 @deffn {Función} test_normality (@var{x})
1358 Test de Shapiro-Wilk para el contraste de normalidad. El argumento
1359 @var{x} es una lista de números, con tamaño muestral mayor que 2
1360 y menor o igual que 5000; bajo cualesquiera otras condiciones, la
1361 función @code{test_normality} emite un mensaje de error.
1365 [1] Algorithm AS R94, Applied Statistics (1995), vol.44, no.4, 547-551
1367 El resultado devuelto por la función @code{test_normality} es
1368 un objeto @code{inference_result} con los siguientes apartados:
1374 @code{'statistic}: valor del estadístico @var{W}.
1377 @code{'p_value}: @math{p}-valor bajo la hipótesis de normalidad.
1383 Contrasta la normalidad de una población a partir de una muestra
1386 @c equivalent code for R:
1387 @c x <- c(12,15,17,38,42,10,23,35,28)
1392 @c x:[12,15,17,38,42,10,23,35,28]$
1393 @c test_normality(x);
1396 (%i1) load("stats")$
1397 (%i2) x:[12,15,17,38,42,10,23,35,28]$
1398 (%i3) test_normality(x);
1399 | SHAPIRO - WILK TEST
1401 (%o3) | statistic = .9251055695162436
1403 | p_value = .4361763918860381
1416 @deffn {Función} linear_regression (@var{x})
1417 @deffnx {Función} linear_regression (@var{x} @var{option})
1419 Regresión lineal múltiple,
1420 @math{y_i = b0 + b1*x_1i + b2*x_2i + ... + bk*x_ki + u_i},
1421 donde @math{u_i} son variables aleatorias independientes
1422 @math{N(0,sigma)}. El argumento @var{x} debe ser una matriz
1423 con más de una columna. La última columna se considera
1424 que son las respuestas (@math{y_i}).
1431 @code{'conflevel}, valor por defecto @code{95/100}, nivel de
1432 confianza para los intervalos de confianza; debe ser una expresión
1433 que tome un valor en el intervalo (0,1).
1436 El resultado devuelto por la función @code{linear_regression} es
1437 un objeto @code{inference_result} de Maxima con los siguientes campos:
1442 @code{'b_estimation}: estimadores de los coeficientes de regresión.
1445 @code{'b_covariances}: matriz de covarianzas de los estimadores
1446 de los coeficientes de regresión.
1449 @code{b_conf_int}: intervalos de confianza para los coeficientes de regresión.
1452 @code{b_statistics}: estadísticos para los contrastes
1453 de los coeficientes.
1456 @code{b_p_values}: p-valores para los contrastes de los coeficientes.
1459 @code{b_distribution}: distribución de probabilidad para
1460 los contrastes de los coeficientes.
1463 @code{v_estimation}: estimador insesgado de la varianza.
1466 @code{v_conf_int}: intervalo de confianza de la varianza.
1469 @code{v_distribution}: distribución de probabilidad para
1470 el contraste de la varianza.
1473 @code{residuals}: residuos.
1476 @code{adc}: coeficiente de determinación ajustado.
1479 @code{aic}: Criterio de información de Akaike.
1482 @code{bic}: Criterio de información de Bayes.
1486 Solamente los apartados 1, 4, 5, 6, 7, 8, 9 y 11, en este orden,
1487 se muestran por defecto. El resto permanecen ocultos hasta que
1488 el usuario haga uso de las funciones @code{items_inference}
1489 y @code{take_inference}.
1493 Ajustando un modelo lineal a una muestra tridimensional. La
1494 última columna se considera que son las respuestas (@math{y_i}).
1499 @c [58,111,64],[84,131,78],[78,158,83],
1500 @c [81,147,88],[82,121,89],[102,165,99],
1501 @c [85,174,101],[102,169,102])$
1503 @c res: linear_regression(X);
1504 @c items_inference(res);
1505 @c take_inference('b_covariances, res);
1506 @c take_inference('bic, res);
1509 @c points_joined = true,
1511 @c points(take_inference('residuals, res)) )$
1514 (%i2) load("stats")$
1516 [58,111,64],[84,131,78],[78,158,83],
1517 [81,147,88],[82,121,89],[102,165,99],
1518 [85,174,101],[102,169,102])$
1519 (%i4) fpprintprec: 4$
1520 (%i5) res: linear_regression(X);
1521 | LINEAR REGRESSION MODEL
1523 | b_estimation = [9.054, .5203, .2397]
1525 | b_statistics = [.6051, 2.246, 1.74]
1527 | b_p_values = [.5715, .07466, .1423]
1529 (%o5) | b_distribution = [student_t, 5]
1531 | v_estimation = 35.27
1533 | v_conf_int = [13.74, 212.2]
1535 | v_distribution = [chi2, 5]
1538 (%i6) items_inference(res);
1539 (%o6) [b_estimation, b_covariances, b_conf_int, b_statistics,
1540 b_p_values, b_distribution, v_estimation, v_conf_int,
1541 v_distribution, residuals, adc, aic, bic]
1542 (%i7) take_inference('b_covariances, res);
1543 [ 223.9 - 1.12 - .8532 ]
1545 (%o7) [ - 1.12 .05367 - .02305 ]
1547 [ - .8532 - .02305 .01898 ]
1548 (%i8) take_inference('bic, res);
1552 points_joined = true,
1554 points(take_inference('residuals, res)) )$
1563 @node Funciones y variables para distribuciones especiales, , Funciones y variables para stats, Top
1564 @section Funciones y variables para distribuciones especiales
1567 @deffn {Función} pdf_signed_rank (@var{x}, @var{n})
1568 Función de densidad de probabilidad de la distribución exacta
1569 del estadístico de contraste del test de los
1570 rangos signados. El argumento @var{x} es un número real y
1571 @var{n} un entero positivo.
1573 Véase también @code{test_signed_rank}.
1576 @deffn {Función} cdf_signed_rank (@var{x}, @var{n})
1577 Función de probabilidad acumulada de la distribución exacta
1578 del estadístico de contraste del test de los
1579 rangos signados. El argumento @var{x} es un número real y
1580 @var{n} un entero positivo.
1582 Véase también @code{test_signed_rank}.
1585 @deffn {Función} pdf_rank_sum (@var{x}, @var{n}, @var{m})
1586 Función de densidad de probabilidad de la distribución exacta
1587 del estadístico de contraste de Wilcoxon-Mann-Whitney.
1588 El argumento @var{x} es un número real y
1589 @var{n} y @var{m} son ambos enteros positivos.
1591 Véase también @code{test_rank_sum}.
1594 @deffn {Función} cdf_rank_sum (@var{x}, @var{n}, @var{m})
1595 Función de probabilidad acumulada de la distribución exacta
1596 del estadístico de contraste de Wilcoxon-Mann-Whitney.
1597 El argumento @var{x} es un número real y
1598 @var{n} y @var{m} son ambos enteros positivos.
1600 Véase también @code{test_rank_sum}.