Merge branch 'master' into bug-4403-remove-polyfill
[maxima.git] / doc / info / pt / stats.texi
blobeb8fbd4945254f797e2499cbdc4c5f8a6aa002c8
1 @c /stats.texi/1.4/Sat Jan 13 04:30:36 2007//
2 @menu
3 * Introdução a stats::
4 * Definições para inference_result::
5 * Definições para stats::
6 * Definições para distribuições especiais::
7 @end menu
9 @node Introdução a stats, Definições para inference_result, Top, Top
10 @section Introdução a stats
13 O pacote @code{stats} contém um conjunto de procedimentos de inferência clássica 
14 estatística e procedimentos de teste.
16 Todas essas funções retornam um objecto do Maxima chamado @code{inference_result} que contém
17 os resultados necessários para inferências de manipulação e tomada de decisões.
19 A variável global @code{stats_numer} controla se resultados são mostrados em 
20 ponto flutuante ou simbólico e no formato racional; seu valor padrão é @code{true}
21 e os resultados são retornados no formato de ponto flutuante.
23 O pacote @code{descriptive} contém alguns utilitários para manipular estruturas de dados
24 (listas e matrizes); por exemplo, para extrair subamostras. O pacote @code{descriptive} também contém alguns
25 exemplos sobre como usar o pacote @code{numericalio} para ler dados a partir de ficheiro no formato texto 
26 plano. Veja @code{descriptive} e @code{numericalio} para maiores detalhes.
28 O pacote @code{stats} precisa dos pacotes @code{descriptive}, @code{distrib} e
29 @code{inference_result}.
31 Para comentários, erros ou sugestões, por favor contate o autor em
33 @var{'mario AT edu DOT xunta DOT es'}.
36 @node Definições para inference_result, Definições para stats, Introdução a stats, Top
37 @section Definições para inference_result
39 @deffn {Função} inference_result (@var{título}, @var{valores}, @var{números})
41 Constrói um objecto @code{inference_result} do tipo retornado pelas
42 funções stats. O argumento @var{título} é uma
43 sequência de caracteres do Maxima co o nome do procedimento; @var{valores} é uma lissta com
44 elementos da forma @code{símbolo = valor} e @var{números} é uma lista
45 com números inteiros positivos no intervalo de um para @code{length(@var{valores})},
46 indicando que valores serão mostrados por padrão.
48 Exemplo:
50 Este é um exemplo que mostras os resultados associados a um retángulo. O
51 título deste bojeto é a sequência de caraceteres @code{"Retângulo"}, o qual
52 armazena cinco resultados, a saber, @code{'base}, @code{'altura}, 
53 @code{'diagonal}, @code{'área} y @code{'perímetro}, porém só mostra
54 o primeiro, segundo, quinto e quarto resultado. O resultado @code{'diagonal} também
55 é armazenado neste objecto, no entanto não é mostrado por padrão; para se ter acesso
56 a este valor, faz-se uso da função @code{take_inference}.
58 @c ===beg===
59 @c load ("inference_result")$
60 @c b: 3$ h: 2$
61 @c inference_result("Retângulo",
62 @c                  ['base=b,
63 @c                   'altura=h,
64 @c                   'diagonal=sqrt(b^2+h^2),
65 @c                   'area=b*h,
66 @c                   'perímetro=2*(b+h)],
67 @c                  [1,2,5,4] );
68 @c take_inference('diagonal,%);
69 @c ===end===
70 @example
71 (%i1) load("inference_result")$
72 (%i2) b: 3$ h: 2$
73 (%i3) inference_result("Retângulo",
74                         ['base=b,
75                          'altura=h,
76                          'diagonal=sqrt(b^2+h^2),
77                          'área=b*h,
78                          'perímetro=2*(b+h)],
79                         [1,2,5,4] );
80                         |   Retângulo
81                         |
82                         |    base = 3
83                         |
84 (%o3)                   |   altura = 2
85                         |
86                         | perímetro = 10
87                         |
88                         |    area = 6
89 (%i4) take_inference('diagonal,%);
90 (%o4)                        sqrt(13)
91 @end example
93 Veja também @code{take_inference}.
94 @end deffn
101 @deffn {Função} inferencep (@var{obj})
103 Retorna @code{true} ou @code{false}, dependendo se @var{obj} é
104 um objecto @code{inference_result} ou não.
106 @end deffn
113 @deffn {Função} items_inference (@var{obj})
115 Retorna uma lista com os nomes dos itens em @var{obj}, que devem
116 ser um objecto @code{inference_result}.
118 Exemplo:
120 O objecto @code{inference_result} armazena dois valores, a saber @code{'pi} e @code{'e},
121 mas somente o segundo é mostrado. A função @code{items_inference} retorna os nomes
122 de todos os itens, não importa se eles são ou não mostrados.
124 @c ===beg===
125 @c load ("inference_result")$
126 @c inference_result("Hi", ['pi=%pi,'e=%e],[2]);
127 @c items_inference(%);
128 @c ===end===
129 @example
130 (%i1) load("inference_result")$
131 (%i2) inference_result("Hi", ['pi=%pi,'e=%e],[2]);
132                             |   Hi
133 (%o2)                       |
134                             | e = %e
135 (%i3) items_inference(%);
136 (%o3)                        [pi, e]
137 @end example
138 @end deffn
146 @deffn {Função} take_inference (@var{n}, @var{obj})
147 @deffnx {Função} take_inference (@var{nome}, @var{obj})
148 @deffnx {Função} take_inference (@var{lista}, @var{obj})
150 Retorna o @var{n}-ésimo valor armazenado em @var{obj} se @var{n} for um inteiro positivo,
151 ou o item chamado @var{nome} se esse for o nome de um item. Se o primeiro
152 argumento for uma lista de números e/ou símbolos, a função @code{take_inference} retorna
153 uma lista com os resultados correspondentes.
155 Exemplo:
157 Fornece um objecto @code{inference_result}, a função @code{take_inference} é
158 chamada com o objectivo de extrair alguma informação armazenada nesse objecto.
160 @c ===beg===
161 @c load ("inference_result")$
162 @c b: 3$ h: 2$
163 @c sol:inference_result("Retângulo",
164 @c                      ['base=b,
165 @c                       'altura=h,
166 @c                       'diagonal=sqrt(b^2+h^2),
167 @c                       'area=b*h,
168 @c                       'perímetro=2*(b+h)],
169 @c                      [1,2,5,4] );
170 @c take_inference('base,sol);
171 @c take_inference(5,sol);
172 @c take_inference([1,'diagonal],sol);
173 @c take_inference(items_inference(sol),sol);
174 @c ===end===
175 @example
176 (%i1) load("inference_result")$
177 (%i2) b: 3$ h: 2$
178 (%i3) sol: inference_result("Retângulo",
179                             ['base=b,
180                              'altura=h,
181                              'diagonal=sqrt(b^2+h^2),
182                              'area=b*h,
183                              'perímetro=2*(b+h)],
184                             [1,2,5,4] );
185                         |   Retângulo
186                         |
187                         |    base = 3
188                         |
189 (%o3)                   |   altura = 2
190                         |
191                         | perímetro = 10
192                         |
193                         |    area = 6
194 (%i4) take_inference('base,sol);
195 (%o4)                           3
196 (%i5) take_inference(5,sol);
197 (%o5)                          10
198 (%i6) take_inference([1,'diagonal],sol);
199 (%o6)                     [3, sqrt(13)]
200 (%i7) take_inference(items_inference(sol),sol);
201 (%o7)                [3, 2, sqrt(13), 6, 10]
202 @end example
204 Veja também @code{inference_result} e @code{take_inference}.
205 @end deffn
215 @node Definições para stats, Definições para distribuições especiais, Definições para inference_result, Top
216 @section Definições para stats
219 @defvr {Variável de opção} stats_numer
220 Valor por omissão: @code{true}
222 Se @code{stats_numer} for @code{true}, funções de inferência estatística 
223 retornam seus resultados em números com ponto flutuante. Se @code{stats_numer} for @code{false},
224 resultados são fornecidos em formato simbólico e racional.
226 @end defvr
229 @deffn {Função} test_mean (@var{x})
230 @deffnx {Função} test_mean (@var{x}, @var{opção_1}, @var{opção_2}, ...)
232 Esse é o teste-@var{t} de média. O argumento @var{x} é uma lista ou uma matriz coluna
233 contendo uma amostra unidimensional. @code{test_mean} tamb;em executa um teste assintótico
234 baseado no @i{Teorema do Limite Central} se a opção @code{'asymptotic} for
235 @code{true}.
237 Opções:
239 @itemize @bullet
241 @item
242 @code{'mean}, o valor padrão é @code{0}, é o valor da média a ser verificado.
244 @item
245 @code{'alternative}, o valor padrão é @code{'twosided}, é a hipótese alternativa;
246 valores válidos são: @code{'twosided}, @code{'greater} e @code{'less}.
248 @item
249 @code{'dev}, o valor padrão é @code{'unknown}, corresponde ao valor do desvio padrão quando esse valor de desvio padrão for
250 conhecido; valores válidos são: @code{'unknown} ou uma expressão positiva.
252 @item
253 @code{'conflevel}, o valor padrão é @code{95/100}, nível de confidência para o intervalo de confidência; deve
254 ser uma expressão que toma um valor em (0,1).
256 @item
257 @code{'asymptotic}, o valor padrão é @code{false}, indica se @code{test_mean} exeecuta um teste-@var{t} exato ou
258 um teste assintótico baseando-se no @i{Teorema do Limite Central};
259 valores válidos são @code{true} e @code{false}.
261 @end itemize
263 A saída da função @code{test_mean} é um objecto @code{inference_result} do Maxima
264 mostrando os seguintes resultados:
266 @enumerate
268 @item
269 @code{'mean_estimate}: a média da amostra.
271 @item
272 @code{'conf_level}: nível de confidência seleccionado pelo utilizador.
274 @item
275 @code{'conf_interval}: intervalo de confidência para a média da população.
277 @item
278 @code{'method}: procedimento de inferência.
280 @item
281 @code{'hypotheses}: hipótese do nulo e hipótese alternativa a ser testada.
283 @item
284 @code{'statistic}: valor da amostra estatística a ser usado para testar a hipótese do nulo.
286 @item
287 @code{'distribution}: distribuição da amostra estatística, juntamente com seus parâmetro(s).
289 @item
290 @code{'p_value}: valores de @math{p} do teste.
292 @end enumerate
294 Exemplos:
296 Executa um teste-@var{t} exato com variância desconhecida. A hipótese do nulo
297 é @math{H_0: mean=50} contra a alternativa unilatera @math{H_1: mean<50};
298 conforme os resultados, o valor de @math{p} é muito grande, não existem
299 evidências paa rejeitar @math{H_0}.
301 @c ===beg===
302 @c load ("stats")$
303 @c data: [78,64,35,45,45,75,43,74,42,42]$
304 @c test_mean(data,'conflevel=0.9,'alternative='less,'mean=50);
305 @c ===end===
306 @example
307 (%i1) load("stats")$
308 (%i2) data: [78,64,35,45,45,75,43,74,42,42]$
309 (%i3) test_mean(data,'conflevel=0.9,'alternative='less,'mean=50);
310           |                 MEAN TEST
311           |
312           |            mean_estimate = 54.3
313           |
314           |              conf_level = 0.9
315           |
316           | conf_interval = [minf, 61.51314273502712]
317           |
318 (%o3)     |  method = Exact t-test. Unknown variance.
319           |
320           | hypotheses = H0: mean = 50 , H1: mean < 50
321           |
322           |       statistic = .8244705235071678
323           |
324           |       distribution = [student_t, 9]
325           |
326           |        p_value = .7845100411786889
327 @end example
329 Nesta ocasião Maxima executa um testte assintótico, baseado no @i{Teorema do Limite Central}.
330 A hipótese do nulo é @math{H_0: equal(mean, 50)} contra a alternativa de duas vias @math{H_1: not equal(mean, 50)};
331 conforme os resultados, o valor de @math{p} é muito pequeno, @math{H_0} pode ser rejeitado em
332 favor da alternativa @math{H_1}. Note que, como indicado pela componente @code{Method},
333 esse procedimento pode ser aplicado a grandes amostras.
335 @c ===beg===
336 @c load ("stats")$
337 @c test_mean([36,118,52,87,35,256,56,178,57,57,89,34,25,98,35,
338 @c         98,41,45,198,54,79,63,35,45,44,75,42,75,45,45,
339 @c         45,51,123,54,151],
340 @c         'asymptotic=true,'mean=50);
341 @c ===end===
342 @example
343 (%i1) load("stats")$
344 (%i2) test_mean([36,118,52,87,35,256,56,178,57,57,89,34,25,98,35,
345               98,41,45,198,54,79,63,35,45,44,75,42,75,45,45,
346               45,51,123,54,151],
347               'asymptotic=true,'mean=50);
348           |                       MEAN TEST
349           |
350           |           mean_estimate = 74.88571428571429
351           |
352           |                   conf_level = 0.95
353           |
354           | conf_interval = [57.72848600856194, 92.04294256286663]
355           |
356 (%o2)     |    method = Large sample z-test. Unknown variance.
357           |
358           |       hypotheses = H0: mean = 50 , H1: mean # 50
359           |
360           |             statistic = 2.842831192874313
361           |
362           |             distribution = [normal, 0, 1]
363           |
364           |             p_value = .004471474652002261
365 @end example
367 @end deffn
375 @deffn {Função} test_means_difference (@var{x1}, @var{x2})
376 @deffnx {Função} test_means_difference (@var{x1}, @var{x2}, @var{opção_1}, @var{opção_2}, ...)
378 Esse é o teste-@var{t} de diferença de médias entre duas amostras.
379 Os argumentos @var{x1} e @var{x2} são listas ou matrizes colunas
380 contendo duas amostras independentes. No caso de diferentes variâncias desconhecidas
381 (veja opções @code{'dev1}, @code{'dev2} e @code{'varequal} abaixo),
382 os graus de liberdade são calculados por meio da aproximação de Welch.
383 @code{test_means_difference} também executa um teste assintótico
384 baseado no @i{Teorema do Limite Central} se a opção @code{'asymptotic} for
385 escolhida para @code{true}.
387 Opções:
389 @itemize @bullet
391 @item
393 @item
394 @code{'alternative}, o valor padrão é @code{'twosided}, é a hipótese alternativa;
395 valores válidos são: @code{'twosided}, @code{'greater} e @code{'less}.
397 @item
398 @code{'dev1}, o valor padrão é @code{'unknown}, é o valor do desvio padrão
399 da amostra @var{x1} quando esse desvio for conhecido; valores válidos são: @code{'unknown} ou uma expressão positiva.
401 @item
402 @code{'dev2}, o valor padrão é @code{'unknown}, é o valor do desvio padrão
403 da amostra @var{x2} quando esse desvio for conhecido; valores válidos são: @code{'unknown} ou uma expressão positiva.
405 @item
406 @code{'varequal}, o valor padrão é @code{false}, se variâncias podem serem consideradas como iguais ou não;
407 essa opção tem efeito somente quando @code{'dev1} e/ou @code{'dev2} forem  @code{'unknown}.
409 @item
410 @code{'conflevel}, o valor padrão é @code{95/100}, nível de confidência para o intervalo de confidência; deve
411 ser uma expressão que toma valores em (0,1). 
413 Nota de Tradução: (0,1) representa intervalo aberto.
415 @item
416 @code{'asymptotic}, o valor padrão é @code{false}, indica se @code{test_means_difference} executa um teste-@var{t} exato ou
417 um teste assíntótico baseando-se no @i{Teorema do Limite Central};
418 valores válidos são @code{true} e @code{false}.
420 @end itemize
422 A saída da função @code{test_means_difference} é um objecto @code{inference_result} do Maxima
423 mostrando os seguintes resultados:
425 @enumerate
427 @item
428 @code{'diff_estimate}: a diferença de médias estimadas.
430 @item
431 @code{'conf_level}: nível de confidência seleccionado pelo utilizador.
433 @item
434 @code{'conf_interval}: intervalo de confidência para a diferença de médias.
436 @item
437 @code{'method}: procedimento de inferência.
439 @item
440 @code{'hypotheses}: a hipótese do nulo e a hipótese alternativa a serem testadas.
442 @item
443 @code{'statistic}: valor da amostra estatística usado para testar a hipótese do nulo.
445 @item
446 @code{'distribution}: distribuição da amostra estatística, juntamente com seu(s) parâmetro(s).
448 @item
449 @code{'p_value}: valor de @math{p} do teste.
451 @end enumerate
453 Exemplos:
455 A igualdade de médias é testada com duas pequenas amostras @var{x} e @var{y},
456 contra a alternativa @math{H_1: m_1>m_2}, sendo @math{m_1} e @math{m_2}
457 as médias das populações; variâncias são desconhecidas e supostamente admitidas para serem diferentes.
459 @c equivalent code for R:
460 @c x <- c(20.4,62.5,61.3,44.2,11.1,23.7)
461 @c y <- c(1.2,6.9,38.7,20.4,17.2)
462 @c t.test(x,y,alternative="greater")
464 @c ===beg===
465 @c load ("stats")$
466 @c x: [20.4,62.5,61.3,44.2,11.1,23.7]$
467 @c y: [1.2,6.9,38.7,20.4,17.2]$
468 @c test_means_difference(x,y,'alternative='greater);
469 @c ===end===
470 @example
471 (%i1) load("stats")$
472 (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
473 (%i3) y: [1.2,6.9,38.7,20.4,17.2]$
474 (%i4) test_means_difference(x,y,'alternative='greater);
475             |              DIFFERENCE OF MEANS TEST
476             |
477             |         diff_estimate = 20.31999999999999
478             |
479             |                 conf_level = 0.95
480             |
481             |    conf_interval = [- .04597417812882298, inf]
482             |
483 (%o4)       |        method = Exact t-test. Welch approx.
484             |
485             | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
486             |
487             |           statistic = 1.838004300728477
488             |
489             |    distribution = [student_t, 8.62758740184604]
490             |
491             |            p_value = .05032746527991905
492 @end example
494 O mesmo teste que antes, mas agora as variâncias são admitidas serem supostamente
495 iguais.
497 @c equivalent code for R:
498 @c x <- c(20.4,62.5,61.3,44.2,11.1,23.7)
499 @c y <- c(1.2,6.9,38.7,20.4,17.2)
500 @c t.test(x,y,var.equal=T,alternative="greater")
502 @c ===beg===
503 @c load ("stats")$
504 @c x: [20.4,62.5,61.3,44.2,11.1,23.7]$
505 @c y: [1.2,6.9,38.7,20.4,17.2]$
506 @c test_means_difference(x,y,'alternative='greater,'varequal=true);
507 @c ===end===
508 @example
509 (%i1) load("stats")$
510 (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
511 (%i3) y: matrix([1.2],[6.9],[38.7],[20.4],[17.2])$
512 (%i4) test_means_difference(x,y,'alternative='greater,'varequal=true);
513             |              DIFFERENCE OF MEANS TEST
514             |
515             |         diff_estimate = 20.31999999999999
516             |
517             |                 conf_level = 0.95
518             |
519             |     conf_interval = [- .7722627696897568, inf]
520             |
521 (%o4)       |   method = Exact t-test. Unknown equal variances
522             |
523             | hypotheses = H0: mean1 = mean2 , H1: mean1 > mean2
524             |
525             |           statistic = 1.765996124515009
526             |
527             |           distribution = [student_t, 9]
528             |
529             |            p_value = .05560320992529344
530 @end example
532 @end deffn
540 @deffn {Função} test_variance (@var{x})
541 @deffnx {Função} test_variance (@var{x}, @var{opção_1}, @var{opção_2}, ...)
543 Esse é o teste da variância @var{chi^2}. O argumento @var{x} é uma lista ou uma matriz coluna
544 contendo uma amostra unidimensional tomada entre a população normal.
546 Opções:
548 @itemize @bullet
550 @item
551 @code{'mean}, o valor padrão é @code{'unknown}, é a média da população, quando for conhecida.
553 @item
554 @code{'alternative}, o valor padrão é @code{'twosided}, é a hipótese alternativa;
555 valores válidos são: @code{'twosided}, @code{'greater} e @code{'less}.
557 @item
558 @code{'variance}, o valor padrão é @code{1}, isso é o valor (positivo) da variância a ser testado.
560 @item
561 @code{'conflevel}, o valor padrão é @code{95/100}, nível de confidência para o intervalo de confidência; deve
562 ser uma expressão que toma valores em (0,1).
564 @end itemize
566 A saída da função @code{test_variance} está no objecto @code{inference_result} do Maxima
567 mostrando os seguintes resultados:
569 @enumerate
571 @item
572 @code{'var_estimate}: a variância da amostra.
574 @item
575 @code{'conf_level}: nível de confidência seleccionado pelo utilizador.
577 @item
578 @code{'conf_interval}: intervalo de confidência para a variância da população.
580 @item
581 @code{'method}: procedimento de inferência.
583 @item
584 @code{'hypotheses}: a hipótese do nulo e a hipótese alternativa a serem testadas.
586 @item
587 @code{'statistic}: valor da amostra estatística usado para testar a hipótese do nulo.
589 @item
590 @code{'distribution}: distribuição da amostra estatística, juntamente com seu parâmetro.
592 @item
593 @code{'p_value}: o valor de @math{p} do teste.
595 @end enumerate
597 Exemplos:
599 Isso é testado se a variância de uma população com média desconhhecida
600 for igual ou maior que 200.
602 @c ===beg===
603 @c load ("stats")$
604 @c x: [203,229,215,220,223,233,208,228,20]$
605 @c test_variance(x,'alternative='greater,'variance=200);
606 @c ===end===
607 @example
608 (%i1) load("stats")$
609 (%i2) x: [203,229,215,220,223,233,208,228,209]$
610 (%i3) test_variance(x,'alternative='greater,'variance=200);
611              |                  VARIANCE TEST
612              |
613              |              var_estimate = 110.75
614              |
615              |                conf_level = 0.95
616              |
617              |     conf_interval = [57.13433376937479, inf]
618              |
619 (%o3)        | method = Variance Chi-square test. Unknown mean.
620              |
621              |    hypotheses = H0: var = 200 , H1: var > 200
622              |
623              |                 statistic = 4.43
624              |
625              |             distribution = [chi2, 8]
626              |
627              |           p_value = .8163948512777689
628 @end example
630 @end deffn
638 @deffn {Função} test_variance_ratio (@var{x1}, @var{x2})
639 @deffnx {Função} test_variance_ratio (@var{x1}, @var{x2}, @var{opção_1}, @var{opção_2}, ...)
641 Isso é o teste @var{F} da razão de variância para duas populações normais.
642 Os argumentos @var{x1} e @var{x2} são listas ou matrizes colunas
643 contendo duas amostras independentes.
645 Opções:
647 @itemize @bullet
649 @item
650 @code{'alternative}, o valor padrão é @code{'twosided}, é a hipótese alternativa;
651 valores válidos são: @code{'twosided}, @code{'greater} e @code{'less}.
653 @item
654 @code{'mean1}, o valor padrão é @code{'unknown}, quando for conhecida, isso é a média da
655 população da qual @var{x1} foi tomada.
657 @item
658 @code{'mean2}, o valor padrão é @code{'unknown}, quando for conhecida, isso é a média da
659 população da qual @var{x2} foi tomada.
661 @item
662 @code{'conflevel}, o valor padrão é @code{95/100}, nível de confidência para o intervalo de confidência da
663 razão; deve ser uma expressão que tome valores em (0,1).
665 @end itemize
667 A saída da função @code{test_variance_ratio} é um objecto @code{inference_result} do Maxima
668 mostrando os seguintes resultados:
670 @enumerate
672 @item
673 @code{'ratio_estimate}: a razão de variância da amostra.
675 @item
676 @code{'conf_level}: nível de confidência seleccionado pelo utilizador.
678 @item
679 @code{'conf_interval}: intervalo de confidência para a razão de variância.
681 @item
682 @code{'method}: procedimento de inferência.
684 @item
685 @code{'hypotheses}: a hipótese do nulo e a hipótese alternativa a serem testadas.
687 @item
688 @code{'statistic}: valor da amostra estatística usado para testar a hipótese do nulo.
690 @item
691 @code{'distribution}: distribuição da amostra estatística, juntamente com seus parâmetros.
693 @item
694 @code{'p_value}: o valor de @math{p} do teste.
696 @end enumerate
699 Exemplos:
701 a igualdade das variâncias de duas populações normais é verificado
702 contra a alternativa que a primeira é maior que a segunda.
704 @c equivalent code for R:
705 @c x <- c(20.4,62.5,61.3,44.2,11.1,23.7)
706 @c y <- c(1.2,6.9,38.7,20.4,17.2)
707 @c var.test(x,y,alternative="greater")
709 @c ===beg===
710 @c load ("stats")$
711 @c x: [20.4,62.5,61.3,44.2,11.1,23.7]$
712 @c y: [1.2,6.9,38.7,20.4,17.2]$
713 @c test_variance_ratio(x,y,'alternative='greater);
714 @c ===end===
715 @example
716 (%i1) load("stats")$
717 (%i2) x: [20.4,62.5,61.3,44.2,11.1,23.7]$
718 (%i3) y: [1.2,6.9,38.7,20.4,17.2]$
719 (%i4) test_variance_ratio(x,y,'alternative='greater);
720               |              VARIANCE RATIO TEST
721               |
722               |       ratio_estimate = 2.316933391522034
723               |
724               |               conf_level = 0.95
725               |
726               |    conf_interval = [.3703504689507268, inf]
727               |
728 (%o4)         | method = Variance ratio F-test. Unknown means.
729               |
730               | hypotheses = H0: var1 = var2 , H1: var1 > var2
731               |
732               |         statistic = 2.316933391522034
733               |
734               |            distribution = [f, 5, 4]
735               |
736               |          p_value = .2179269692254457
737 @end example
739 @end deffn
746 @deffn {Função} test_sign (@var{x})
747 @deffnx {Função} test_sign (@var{x}, @var{opção_1}, @var{opção_2}, ...)
749 Esse é o teste de sinal não paramétrico para a mediana de uma população contínua.
750 O argumento @var{x} é uma lista ou uma matriz coluna contendo uma amostra unidimensional.
752 Opções:
754 @itemize @bullet
756 @item
757 @code{'alternative}, o valor padrão é @code{'twosided}, é a hipótese alternativa;
758 valores válidos são: @code{'twosided}, @code{'greater} e @code{'less}.
760 @item
761 @code{'median}, o valor padrão é @code{0}, é o valor da mediana a ser verificado.
763 @end itemize
765 A saída da função @code{test_sign} é um objecto @code{inference_result} do Maxima
766 mostrando os seguintes resultados:
768 @enumerate
770 @item
771 @code{'med_estimate}: a mediana da amostra.
773 @item
774 @code{'method}: procedimento de inferência.
776 @item
777 @code{'hypotheses}: a hipótese do nulo e a hipótese alternativa a serem testadas.
779 @item
780 @code{'statistic}: valor da amostra estatística usada para testar a hipótese do nulo.
782 @item
783 @code{'distribution}: distribuição da amostra estatística, juntamente com seu(s) parâmetro(s).
785 @item
786 @code{'p_value}: o valor de @math{p} do teste.
788 @end enumerate
790 Exemplos:
792 Verifica se a população da qual a amostra foi tomada tem mediana 6, 
793 contra a alternativa @math{H_1: median > 6}.
795 @c ===beg===
796 @c load ("stats")$
797 @c x: [2,0.1,7,1.8,4,2.3,5.6,7.4,5.1,6.1,6]$
798 @c test_sign(x,'median=6,'alternative='greater);
799 @c ===end===
800 @example
801 (%i1) load("stats")$
802 (%i2) x: [2,0.1,7,1.8,4,2.3,5.6,7.4,5.1,6.1,6]$
803 (%i3) test_sign(x,'median=6,'alternative='greater);
804                |                  SIGN TEST
805                |
806                |              med_estimate = 5.1
807                |
808                |      method = Non parametric sign test.
809                |
810 (%o3)          | hypotheses = H0: median = 6 , H1: median > 6
811                |
812                |                statistic = 7
813                |
814                |      distribution = [binomial, 10, 0.5]
815                |
816                |         p_value = .05468749999999989
817 @end example
819 @end deffn
829 @deffn {Função} test_signed_rank (@var{x})
830 @deffnx {Função} test_signed_rank (@var{x}, @var{opção_1}, @var{opção_2}, ...)
832 Esse é o teste de ranque sinalizado de Wilcoxon para fazer inferências sobre a mediana de uma
833 população contínua. O argumento @var{x} é uma lista ou uma matriz coluna
834 contendo uma amostra unidimensional. Executa uma aproximação normal se o
835 tamanho da amostra for maior que 20, ou se existirem zeros ou houverem empates.
837 Veja também @code{pdf_rank_test} e @code{cdf_rank_test}.
839 Opções:
841 @itemize @bullet
843 @item
844 @code{'median}, o valor padrão é @code{0}, é o valor da mediana a ser verificado.
846 @item
847 @code{'alternative}, o valor padrão é @code{'twosided}, é a hipótese alternativa;
848 valores válidos são: @code{'twosided}, @code{'greater} e @code{'less}.
850 @end itemize
852 A saída da função @code{test_signed_rank} é um objecto @code{inference_result} do Maxima
853 com os seguintes resultados:
855 @enumerate
857 @item
858 @code{'med_estimate}: a mediana da amostra.
860 @item
861 @code{'method}: procedimento de inferência.
863 @item
864 @code{'hypotheses}: a hipótese do nulo e a hipótese alternativa a serem testadas.
866 @item
867 @code{'statistic}: valor da amostra estatística usado para testar a hipótese do nulo.
869 @item
870 @code{'distribution}: distribuição da amostra estatística, juntamente com seu(s) parâmetro(s).
872 @item
873 @code{'p_value}: o valor de @math{p} do teste.
875 @end enumerate
877 Exemplos:
879 Verifica a hipótese do nulo @math{H_0: median = 15} contra a 
880 alternativa @math{H_1: median > 15}. Esse é um teste exato, ua vez que
881 não exite empates.
883 @c equivalent code for R:
884 @c x <- c(17.1,15.9,13.7,13.4,15.5,17.6)
885 @c wilcox.test(x,mu=15,alternative="greater")
887 @c ===beg===
888 @c load ("stats")$
889 @c x: [17.1,15.9,13.7,13.4,15.5,17.6]$
890 @c test_signed_rank(x,median=15,alternative=greater);
891 @c ===end===
892 @example
893 (%i1) load("stats")$
894 (%i2) x: [17.1,15.9,13.7,13.4,15.5,17.6]$
895 (%i3) test_signed_rank(x,median=15,alternative=greater);
896                  |             SIGNED RANK TEST
897                  |
898                  |           med_estimate = 15.7
899                  |
900                  |           method = Exact test
901                  |
902 (%o3)            | hypotheses = H0: med = 15 , H1: med > 15
903                  |
904                  |              statistic = 14
905                  |
906                  |     distribution = [signed_rank, 6]
907                  |
908                  |            p_value = 0.28125
909 @end example
911 Verifica a hipótese do nulo @math{H_0: equal(median, 2.5)} contra a
912 alternativa @math{H_1: not equal(median, 2.5)}. Esse é um teste aproximado,
913 uma vez que ocorrem empates.
915 @c equivalent code for R:
916 @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)
917 @c wilcox.test(y,mu=2.5)
919 @c ===beg===
920 @c load ("stats")$
921 @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]$
922 @c test_signed_rank(y,median=2.5);
923 @c ===end===
924 @example
925 (%i1) load("stats")$
926 (%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]$
927 (%i3) test_signed_rank(y,median=2.5);
928              |                 SIGNED RANK TEST
929              |
930              |                med_estimate = 2.9
931              |
932              |          method = Asymptotic test. Ties
933              |
934 (%o3)        |    hypotheses = H0: med = 2.5 , H1: med # 2.5
935              |
936              |                 statistic = 76.5
937              |
938              | distribution = [normal, 60.5, 17.58195097251724]
939              |
940              |           p_value = .3628097734643669
941 @end example
943 @end deffn
951 @deffn {Função} test_rank_sum (@var{x1}, @var{x2})
952 @deffnx {Função} test_rank_sum (@var{x1}, @var{x2}, @var{opção_1})
954 Esse é o teste de Wilcoxon-Mann-Whitney para comparação das medianas de duas
955 populações contínuas. Os primeiros dois argumentos @var{x1} e @var{x2} são listas
956 ou matrizes colunas com os dados de duas amostras independentes. Executa aproximação
957 normal se quaisquer dos tamanhos de amostra for maior que 10, ou se houverem empates.
959 Opção:
961 @itemize @bullet
963 @item
964 @code{'alternative}, o valor padrão é @code{'twosided}, é a hipótese alternativa;
965 valores válidos são: @code{'twosided}, @code{'greater} e @code{'less}.
967 @end itemize
969 A saída da função @code{test_rank_sum} é um objecto @code{inference_result} do Maxima
970 com os seguintes resultados:
972 @enumerate
974 @item
975 @code{'method}: procedimento de inferência.
977 @item
978 @code{'hypotheses}: a hipótese do nulo e a hipótese alternativa a serem testadas.
980 @item
981 @code{'statistic}: valor da amostra estatística usada para testar a hipótese do nulo.
983 @item
984 @code{'distribution}: distribuição da amostra estatística, juntamente com seus parâmetros.
986 @item
987 @code{'p_value}: o valor de @math{p} do teste.
989 @end enumerate
991 Exemplos:
993 Verifica se populações possuem medianas similares. Tamanhos de amotra
994 são pequenos e é feito um teste exato.
996 @c equivalent code for R:
997 @c x <- c(12,15,17,38,42,10,23,35,28)
998 @c y <- c(21,18,25,14,52,65,40,43)
999 @c wilcox.test(x,y)
1001 @c ===beg===
1002 @c load ("stats")$
1003 @c x:[12,15,17,38,42,10,23,35,28]$
1004 @c y:[21,18,25,14,52,65,40,43]$
1005 @c test_rank_sum(x,y);
1006 @c ===end===
1007 @example
1008 (%i1) load("stats")$
1009 (%i2) x:[12,15,17,38,42,10,23,35,28]$
1010 (%i3) y:[21,18,25,14,52,65,40,43]$
1011 (%i4) test_rank_sum(x,y);
1012               |                 RANK SUM TEST
1013               |
1014               |              method = Exact test
1015               |
1016               | hypotheses = H0: med1 = med2 , H1: med1 # med2
1017 (%o4)         |
1018               |                 statistic = 22
1019               |
1020               |        distribution = [rank_sum, 9, 8]
1021               |
1022               |          p_value = .1995886466474702
1023 @end example
1025 Agora, com grandes amostras e empates, o procedimento faz 
1026 aproximação norma. A hipótese alternativa é
1027 @math{H_1: median1 < median2}.
1029 @c equivalent code for R:
1030 @c x <- c(39,42,35,13,10,23,15,20,17,27)
1031 @c y <- c(20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15)
1032 @c wilcox.test(x,y,alternative="less")
1034 @c ===beg===
1035 @c load ("stats")$
1036 @c x: [39,42,35,13,10,23,15,20,17,27]$
1037 @c y: [20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15]$
1038 @c test_rank_sum(x,y,'alternative='less);
1039 @c ===end===
1040 @example
1041 (%i1) load("stats")$
1042 (%i2) x: [39,42,35,13,10,23,15,20,17,27]$
1043 (%i3) y: [20,52,66,19,41,32,44,25,14,39,43,35,19,56,27,15]$
1044 (%i4) test_rank_sum(x,y,'alternative='less);
1045              |                  RANK SUM TEST
1046              |
1047              |          method = Asymptotic test. Ties
1048              |
1049              |  hypotheses = H0: med1 = med2 , H1: med1 < med2
1050 (%o4)        |
1051              |                 statistic = 48.5
1052              |
1053              | distribution = [normal, 79.5, 18.95419580097078]
1054              |
1055              |           p_value = .05096985666598441
1056 @end example
1058 @end deffn
1066 @deffn {Função} test_normality (@var{x})
1068 Teste de Shapiro-Wilk para normalidade. O argumento @var{x} é uma lista de números, e o tamanho
1069 da amostra deve ser maior que 2 e menor ou igua a 5000, de outra forma, a função
1070 @code{test_normality} sinaliza com um erro.
1072 Referência:
1074   [1] Algorithm AS R94, Applied Statistics (1995), vol.44, no.4, 547-551
1076 A saída da função @code{test_normality} é um objecto @code{inference_result} do Maxima
1077 com os seguintes resultados:
1079 @enumerate
1081 @item
1082 @code{'statistic}: valor do @var{W} estatístico.
1084 @item
1085 @code{'p_value}: valor de @math{p} sob a hipótese de normalidade.
1087 @end enumerate
1089 Exemplos:
1091 Verifica a normalidade de uma população, baseada em uma amostra de tamanho 9.
1093 @c equivalent code for R:
1094 @c x <- c(12,15,17,38,42,10,23,35,28)
1095 @c shapiro.test(x)
1097 @c ===beg===
1098 @c load ("stats")$
1099 @c x:[12,15,17,38,42,10,23,35,28]$
1100 @c test_normality(x);
1101 @c ===end===
1102 @example
1103 (%i1) load("stats")$
1104 (%i2) x:[12,15,17,38,42,10,23,35,28]$
1105 (%i3) test_normality(x);
1106                        |      SHAPIRO - WILK TEST
1107                        |
1108 (%o3)                  | statistic = .9251055695162436
1109                        |
1110                        |  p_value = .4361763918860381
1111 @end example
1113 @end deffn
1123 @deffn {Função} simple_linear_regression (@var{x})
1124 @deffnx {Função} simple_linear_regression (@var{x} @var{opção_1})
1126 Regressão linear simples, @math{y_i=a+b x_i+e_i}, onde os @math{e_i} são @math{N(0,sigma)}
1127 variáveis aleatórias independentes. O argumento @var{x} deve ser uma matriz de duas colunas ou uma lista de
1128 pares.
1130 Opções:
1132 @itemize @bullet
1134 @item
1135 @code{'conflevel}, o valor padrão é @code{95/100}, nível de confidência para o intervalo de confidência; isso deve
1136 ser uma expressão que tome valores em (0,1).
1138 @item
1139 @code{'regressor}, o valor padrão é @code{'x}, nome da variável independente.
1141 @end itemize
1143 A saída da função @code{simple_linear_regression} é um objecto @code{inference_result} do Maxima
1144 com os seguintes resultados:
1146 @enumerate
1148 @item
1149 @code{'model}: a equação ajustada. Útil para fazer novas previsões. Veja exemplos abaixo.
1151 @item
1152 @code{'means}: média de duas variáveis pseudo-aleatórias.
1154 @item
1155 @code{'variances}: variâncias de ambas as variáveis.
1157 @item
1158 @code{'correlation}: coeficiente de correlação.
1160 @item
1161 @code{'adc}: coeficiente de determinação ajustado.
1163 @item
1164 @code{'a_estimation}: estimador do parâmetro @var{a}.
1166 @item
1167 @code{'a_conf_int}: intervalo de confidência do parâmetro @var{a}.
1169 @item
1170 @code{'b_estimation}: estimador do parâmetro @var{b}.
1172 @item
1173 @code{'b_conf_int}: intervalo de confidência do parâmetro @var{b}.
1175 @item
1176 @code{'hypotheses}: a hipótese do nulo e a hipótese alternativa sobre o parâmetro @var{b}.
1178 @item
1179 @code{'statistic}: valor da amostra estatística usado para testar a hipótese do nulo.
1181 @item
1182 @code{'distribution}: distribuição da amostra estatística, juntamente com seu parâmetro.
1184 @item
1185 @code{'p_value}: o valor de @math{p} do teste sobre @var{b}.
1187 @item
1188 @code{'v_estimation}: estimador de variância imparcial, ou variância residual.
1190 @item
1191 @code{'v_conf_int}: intervalo de confidência da variância.
1193 @item
1194 @code{'cond_mean_conf_int}: intervalo de confidência paa a média condicionada. Veja exemplos abaixo.
1196 @item
1197 @code{'new_pred_conf_int}: intervalo de confidência para uma nova previsão. Veja exemplos abaixo.
1199 @item
1200 @code{'residuals}: lista de pares (previsão, resíduo), ordenados em relação às previsões.
1201 Útil para achar o melhor da análise de ajuste. Veja exemplos abaixo.
1203 @end enumerate
1205 Somente os itens 1, 4, 14, 9, 10, 11, 12, e 13 acima, nessa ordem, são mostrados por padrão. Os restantes
1206 escondem-se até que o utilizador faça uso de funções @code{items_inference} e @code{take_inference}.
1208 Exemplo:
1210 Ajustando um modelo linear para uma amostras de duas variáveis. A entrada @code{%i4} monta p gráfico
1211 da amostra junto com a linha de regressão; a entrada @code{%i5}
1212 calcula @code{y} dado @code{x=113}; a média e o 
1213 intervalo de confidência para uma nova previsão quando @code{x=113} são também calculados.
1215 @c ===beg===
1216 @c load ("stats")$
1217 @c s:[[125,140.7],[130,155.1],[135,160.3],[140,167.2],[145,169.8]]$
1218 @c z:simple_linear_regression(s,conflevel=0.99);
1219 @c plot2d([[discrete, s], take_inference(model,z)],
1220 @c           [x,120,150],
1221 @c           [gnuplot_curve_styles, ["with points","with lines"]] )$
1222 @c take_inference(model,z), x=133;
1223 @c take_inference(means,z);
1224 @c take_inference(new_pred_conf_int,z), x=133;
1225 @c ===end===
1226 @example
1227 (%i1) load("stats")$
1228 (%i2) s:[[125,140.7],[130,155.1],[135,160.3],[140,167.2],[145,169.8]]$
1229 (%i3) z:simple_linear_regression(s,conflevel=0.99);
1230            |               SIMPLE LINEAR REGRESSION
1231            |
1232            |   model = 1.405999999999985 x - 31.18999999999804
1233            |
1234            |           correlation = .9611685255255155
1235            |
1236            |           v_estimation = 13.57966666666665
1237            |
1238 (%o3)      | b_conf_int = [.04469633662525263, 2.767303663374718]
1239            |
1240            |          hypotheses = H0: b = 0 ,H1: b # 0
1241            |
1242            |            statistic = 6.032686683658114
1243            |
1244            |            distribution = [student_t, 3]
1245            |
1246            |             p_value = 0.0038059549413203
1247 (%i4) plot2d([[discrete, s], take_inference(model,z)],
1248               [x,120,150],
1249               [gnuplot_curve_styles, ["with points","with lines"]] )$
1250 (%i5) take_inference(model,z), x=133;
1251 (%o5)                         155.808
1252 (%i6) take_inference(means,z);
1253 (%o6)                     [135.0, 158.62]
1254 (%i7) take_inference(new_pred_conf_int,z), x=133;
1255 (%o7)              [132.0728595995113, 179.5431404004887]
1256 @end example
1258 @end deffn
1291 @node Definições para distribuições especiais, , Definições para stats, Top
1292 @section Definições para distribuições especiais
1295 @deffn {Função} pdf_signed_rank (@var{x}, @var{n})
1296 Função densidade de probabilidade da distribuição exacta da
1297 estatística do rank sinalizado. O argumento @var{x} é um número
1298 real e @var{n} um inteiro positivo.
1300 Veja também @code{test_signed_rank}.
1301 @end deffn
1303 @deffn {Função} cdf_signed_rank (@var{x}, @var{n})
1304 Função de densidade cumulativa da distribuição exacta da
1305 estatística do rank sinalizado. O argumento @var{x} é um número
1306 real e @var{n} um inteiro positivo. 
1308 Veja também @code{test_signed_rank}.
1309 @end deffn
1311 @deffn {Função} pdf_rank_sum (@var{x}, @var{n}, @var{m})
1312 Função densidade de probabilidade da distribuição exacta da
1313 estatística do somatório do rank. O argumento @var{x} é um número
1314 real e @var{n} e @var{m} são ambos inteiros positivos. 
1316 Veja também @code{test_rank_sum}.
1317 @end deffn
1319 @deffn {Função} cdf_rank_sum (@var{x}, @var{n}, @var{m})
1320 Função de densidade cumulativa da distribuição exacta da
1321 estatística do somatório do rank. O argumento @var{x} é um número
1322 real e @var{n} e @var{m} são ambos inteiro positivos. 
1324 Veja também @code{test_rank_sum}.
1325 @end deffn