Introducedilhaão a stats
========================

O pacote stats contém um conjunto de procedimentos de inferência clássica estatística e procedimentos de teste.

Todas essas funcedilhaões retornam um objeto do Maxima chamado inference_result que contém os resultados necessários para inferências de manipulacedilhaão e tomada de decisões.

A variável global stats_numer controla se resultados são mostrados em ponto flutuante ou simbólico e no formato racional; seu valor padrão é true e os resultados são retornados no formato de ponto flutuante.

O pacote descriptive contém alguns utilitários para manipular estruturas de dados (listas e matrizes); por exemplo, para extrair subamostras. O pacote descriptive também contém alguns exemplos sobre como usar o pacote numericalio para ler dados a partir de arquivo no formato texto plano. Veja descriptive e numericalio para maiores detalhes.

O pacote stats precisa dos pacotes descriptive, distrib e inference_result.

Para comentários, erros ou sugestões, por favor contate o autor em

'MARIO AT EDU DOT XUNTA DOT ES'.

Funcedilhaões e Variáveis Definidas para inference_result
=========================================================

 -- Funcedilhaão: inference_result (TÍTULO, VALORES, NÚMEROS)

     Constrói um objeto inference_result do tipo retornado pelas funcedilhaões stats. O argumento TÍTULO é uma seqüência de caracteres do Maxima co o nome do procedimento; VALORES é uma lissta com elementos da forma símbolo = valor e NÚMEROS é uma lista com números inteiros positivos no intervalo de um para length(VALORES), indicando que valores serão mostrados por padrão.

     Exemplo:

     Este é um exemplo que mostras os resultados associados a um retángulo. O título deste objeto é a seqüência de caraceteres "Retângulo", o qual armazena cinco resultados, a saber 'base, 'altura, 'diagonal, 'área, e 'perímetro, porém só mostra o primeiro, segundo, quinto e quarto resultado. O resultado 'diagonal também é armazenado neste objeto, no entanto não é mostrado por padrão; para se ter acesso a este valor, faz-se uso da funcedilhaão take_inference.

          (%i1) load(inference_result)$
          (%i2) b: 3$ h: 2$
          (%i3) inference_result("Retângulo",
                                  ['base=b,
                                   'altura=h,
                                   'diagonal=sqrt(b^2+h^2),
                                   'área=b*h,
                                   'perímetro=2*(b+h)],
                                  [1,2,5,4] );
                                  |   Retângulo
                                  |
                                  |    base = 3
                                  |
          (%o3)                   |   altura = 2
                                  |
                                  | perímetro = 10
                                  |
                                  |    area = 6
          (%i4) take_inference('diagonal,%);
          (%o4)                        sqrt(13)

     Veja também take_inference.

 -- Funcedilhaão: inferencep (OBJ)

     Retorna true ou false, dependendo se OBJ é um objeto inference_result ou não.

 -- Funcedilhaão: items_inference (OBJ)

     Retorna uma lista com os nomes dos itens em OBJ, que devem ser um objeto inference_result.

     Exemplo:

     O objeto inference_result armazena dois valores, a saber 'pi e 'e, mas somente o segundo é mostrado. A funcedilhaão items_inference retorna os nomes de todos os itens, não importa se eles são ou não mostrados.

          (%i1) load(inference_result)$
          (%i2) inference_result("Hi", ['pi=%pi,'e=%e],[2]);
                                      |   Hi
          (%o2)                       |
                                      | e = %e
          (%i3) items_inference(%);
          (%o3)                        [pi, e]

 -- Funcedilhaão: take_inference (N, OBJ)
 -- Funcedilhaão: take_inference (NOME, OBJ)
 -- Funcedilhaão: take_inference (LISTA, OBJ)

     Retorna o N-ésimo valor armazenado em OBJ se N for um inteiro positivo, ou o item chamado NOME se esse for o nome de um item. Se o primeiro argumento for uma lista de números e/ou símbolos, a funcedilhaão take_inference retorna uma lista com os resultados correspondentes.

     Exemplo:

     Fornece um objeto inference_result, a funcedilhaão take_inference é chamada com o objetivo de extrair alguma informacedilhaão armazenada nesse objeto.

          (%i1) load(inference_result)$
          (%i2) b: 3$ h: 2$
          (%i3) sol: inference_result("Retângulo",
                                      ['base=b,
                                       'altura=h,
                                       'diagonal=sqrt(b^2+h^2),
                                       'area=b*h,
                                       'perímetro=2*(b+h)],
                                      [1,2,5,4] );
                                  |   Retângulo
                                  |
                                  |    base = 3
                                  |
          (%o3)                   |   altura = 2
                                  |
                                  | perímetro = 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]

     Veja também inference_result e take_inference.

Funcedilhaões e Variáveis Definidas para stats
==============================================

 -- Variável de opcedilhaão: stats_numer
     Valor padrão: true

     Se stats_numer for true, funcedilhaões de inferência estatística retornam seus resultados em números com ponto flutuante. Se stats_numer for false, resultados são fornecidos em formato simbólico e racional.

 -- Funcedilhaão: test_mean (X)
 -- Funcedilhaão: test_mean (X, OPCEDILHAÃO_1, OPCEDILHAÃO_2, ...)

     Esse é o teste-T de média. O argumento X é uma lista ou uma matriz coluna contendo uma amostra unidimensional. test_mean tamb;em executa um teste assintótico baseado no Teorema do Limite Central se a opcedilhaão 'asymptotic for true.

     Opcedilhaões:

       * 'mean, o valor padrão é 0, é o valor da média a ser verificado.

       * 'alternative, o valor padrão é 'twosided, é a hipótese alternativa; valores válidos são: 'twosided, 'greater e 'less.

       * 'dev, o valor padrão é 'unknown, corresponde ao valor do desvio padrão quando esse valor de desvio padrão for conhecido; valores válidos são: 'unknown ou uma expressão positiva.

       * 'conflevel, o valor padrão é 95/100, nível de confidência para o intervalo de confidência; deve ser uma expressão que toma um valor em (0,1).

       * 'asymptotic, o valor padrão é false, indica se test_mean exeecuta um teste-T exato ou um teste assintótico baseando-se no Teorema do Limite Central; valores válidos são true e false.

     A saída da funcedilhaão test_mean é um objeto inference_result do Maxima mostrando os seguintes resultados:

      1. 'mean_estimate: a média da amostra.

      2. 'conf_level: nível de confidência selecionado pelo usuário.

      3. 'conf_interval: intervalo de confidência para a média da populacedilhaão.

      4. 'method: procedimento de inferência.

      5. 'hypotheses: hipótese do nulo e hipótese alternativa a ser testada.

      6. 'statistic: valor da amostra estatística a ser usado para testar a hipótese do nulo.

      7. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seus parâmetro(s).

      8. 'p_value: valores de p do teste.

     Exemplos:

     Executa um teste-T exato com variância desconhecida. A hipótese do nulo é H_0: mean=50 contra a alternativa unilatera H_1: mean<50; conforme os resultados, o valor de p é muito grande, não existem evidências paa rejeitar H_0.

          (%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

     Nesta ocasião Maxima executa um testte assintótico, baseado no Teorema do Limite Central. A hipótese do nulo é H_0: equal(mean, 50) contra a alternativa de duas vias H_1: not equal(mean, 50); conforme os resultados, o valor de p é muito pequeno, H_0 pode ser rejeitado em favor da alternativa H_1. Note que, como indicado pela componente Method, esse procedimento pode ser aplicado a grandes amostras.

          (%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

 -- Funcedilhaão: test_means_difference (X1, X2)
 -- Funcedilhaão: test_means_difference (X1, X2, OPCEDILHAÃO_1, OPCEDILHAÃO_2, ...)

     Esse é o teste-T de diferencedilhaa de médias entre duas amostras. Os argumentos X1 e X2 são listas ou matrizes colunas contendo duas amostras independentes. No caso de diferentes variâncias desconhecidas (veja opcedilhaões 'dev1, 'dev2 e 'varequal abaixo), os graus de liberdade são calculados por meio da aproximacedilhaão de Welch. test_means_difference também executa um teste assintótico baseado no Teorema do Limite Central se a opcedilhaão 'asymptotic for escolhida para true.

     Opcedilhaões:

       * 'alternative, o valor padrão é 'twosided, é a hipótese alternativa; valores válidos são: 'twosided, 'greater e 'less.

       * 'dev1, o valor padrão é 'unknown, é o valor do desvio padrão da amostra X1 quando esse desvio for conhecido; valores válidos são: 'unknown ou uma expressão positiva.

       * 'dev2, o valor padrão é 'unknown, é o valor do desvio padrão da amostra X2 quando esse desvio for conhecido; valores válidos são: 'unknown ou uma expressão positiva.

       * 'varequal, o valor padrão é false, se variâncias podem serem consideradas como iguais ou não; essa opcedilhaão tem efeito somente quando 'dev1 e/ou 'dev2 forem  'unknown.

       * 'conflevel, o valor padrão é 95/100, nível de confidência para o intervalo de confidência; deve ser uma expressão que toma valores em (0,1).

          Nota de Traducedilhaão: (0,1) representa intervalo aberto.

       * 'asymptotic, o valor padrão é false, indica se test_means_difference executa um teste-T exato ou um teste assíntótico baseando-se no Teorema do Limite Central; valores válidos são true e false.

     A saída da funcedilhaão test_means_difference é um objeto inference_result do Maxima mostrando os seguintes resultados:

      1. 'diff_estimate: a diferencedilhaa de médias estimadas.

      2. 'conf_level: nível de confidência selecionado pelo usuário.

      3. 'conf_interval: intervalo de confidência para a diferencedilhaa de médias.

      4. 'method: procedimento de inferência.

      5. 'hypotheses: a hipótese do nulo e a hipótese alternativa a serem testadas.

      6. 'statistic: valor da amostra estatística usado para testar a hipótese do nulo.

      7. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seu(s) parâmetro(s).

      8. 'p_value: valor de p do teste.

     Exemplos:

     A igualdade de médias é testada com duas pequenas amostras X e Y, contra a alternativa H_1: m_1>m_2, sendo m_1 e m_2 as médias das populacedilhaões; variâncias são desconhecidas e supostamente admitidas para serem 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

     O mesmo teste que antes, mas agora as variâncias são admitidas serem supostamente iguais.

          (%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

 -- Funcedilhaão: test_variance (X)
 -- Funcedilhaão: test_variance (X, OPCEDILHAÃO_1, OPCEDILHAÃO_2, ...)

     Esse é o teste da variância CHI^2. O argumento X é uma lista ou uma matriz coluna contendo uma amostra unidimensional tomada entre a populacedilhaão normal.

     Opcedilhaões:

       * 'mean, o valor padrão é 'unknown, é a média da populacedilhaão, quando for conhecida.

       * 'alternative, o valor padrão é 'twosided, é a hipótese alternativa; valores válidos são: 'twosided, 'greater e 'less.

       * 'variance, o valor padrão é 1, isso é o valor (positivo) da variância a ser testado.

       * 'conflevel, o valor padrão é 95/100, nível de confidência para o intervalo de confidência; deve ser uma expressão que toma valores em (0,1).

     A saída da funcedilhaão test_variance está no objeto inference_result do Maxima mostrando os seguintes resultados:

      1. 'var_estimate: a variância da amostra.

      2. 'conf_level: nível de confidência selecionado pelo usuário.

      3. 'conf_interval: intervalo de confidência para a variância da populacedilhaão.

      4. 'method: procedimento de inferência.

      5. 'hypotheses: a hipótese do nulo e a hipótese alternativa a serem testadas.

      6. 'statistic: valor da amostra estatística usado para testar a hipótese do nulo.

      7. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seu parâmetro.

      8. 'p_value: o valor de p do teste.

     Exemplos:

     Isso é testado se a variância de uma populacedilhaão com média desconhhecida for igual ou maior 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

 -- Funcedilhaão: test_variance_ratio (X1, X2)
 -- Funcedilhaão: test_variance_ratio (X1, X2, OPCEDILHAÃO_1, OPCEDILHAÃO_2, ...)

     Isso é o teste F da razão de variância para duas populacedilhaões normais. Os argumentos X1 e X2 são listas ou matrizes colunas contendo duas amostras independentes.

     Opcedilhaões:

       * 'alternative, o valor padrão é 'twosided, é a hipótese alternativa; valores válidos são: 'twosided, 'greater e 'less.

       * 'mean1, o valor padrão é 'unknown, quando for conhecida, isso é a média da populacedilhaão da qual X1 foi tomada.

       * 'mean2, o valor padrão é 'unknown, quando for conhecida, isso é a média da populacedilhaão da qual X2 foi tomada.

       * 'conflevel, o valor padrão é 95/100, nível de confidência para o intervalo de confidência da razão; deve ser uma expressão que tome valores em (0,1).

     A saída da funcedilhaão test_variance_ratio é um objeto inference_result do Maxima mostrando os seguintes resultados:

      1. 'ratio_estimate: a razão de variância da amostra.

      2. 'conf_level: nível de confidência selecionado pelo usuário.

      3. 'conf_interval: intervalo de confidência para a razão de variância.

      4. 'method: procedimento de inferência.

      5. 'hypotheses: a hipótese do nulo e a hipótese alternativa a serem testadas.

      6. 'statistic: valor da amostra estatística usado para testar a hipótese do nulo.

      7. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seus parâmetros.

      8. 'p_value: o valor de p do teste.

     Exemplos:

     a igualdade das variâncias de duas populacedilhaões normais é verificado contra a alternativa que a primeira é maior que a 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

 -- Funcedilhaão: test_sign (X)
 -- Funcedilhaão: test_sign (X, OPCEDILHAÃO_1, OPCEDILHAÃO_2, ...)

     Esse é o teste de sinal não paramétrico para a mediana de uma populacedilhaão contínua. O argumento X é uma lista ou uma matriz coluna contendo uma amostra unidimensional.

     Opcedilhaões:

       * 'alternative, o valor padrão é 'twosided, é a hipótese alternativa; valores válidos são: 'twosided, 'greater e 'less.

       * 'median, o valor padrão é 0, é o valor da mediana a ser verificado.

     A saída da funcedilhaão test_sign é um objeto inference_result do Maxima mostrando os seguintes resultados:

      1. 'med_estimate: a mediana da amostra.

      2. 'method: procedimento de inferência.

      3. 'hypotheses: a hipótese do nulo e a hipótese alternativa a serem testadas.

      4. 'statistic: valor da amostra estatística usada para testar a hipótese do nulo.

      5. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seu(s) parâmetro(s).

      6. 'p_value: o valor de p do teste.

     Exemplos:

     Verifica se a populacedilhaão da qual a amostra foi tomada tem mediana 6, contra a 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

 -- Funcedilhaão: test_signed_rank (X)
 -- Funcedilhaão: test_signed_rank (X, OPCEDILHAÃO_1, OPCEDILHAÃO_2, ...)

     Esse é o teste de ranque sinalizado de Wilcoxon para fazer inferências sobre a mediana de uma populacedilhaão contínua. O argumento X é uma lista ou uma matriz coluna contendo uma amostra unidimensional. Executa uma aproximacedilhaão normal se o tamanho da amostra for maior que 20, ou se existirem zeros ou houverem empates.

     Veja também pdf_rank_test e cdf_rank_test.

     Opcedilhaões:

       * 'median, o valor padrão é 0, é o valor da mediana a ser verificado.

       * 'alternative, o valor padrão é 'twosided, é a hipótese alternativa; valores válidos são: 'twosided, 'greater e 'less.

     A saída da funcedilhaão test_signed_rank é um objeto inference_result do Maxima com os seguintes resultados:

      1. 'med_estimate: a mediana da amostra.

      2. 'method: procedimento de inferência.

      3. 'hypotheses: a hipótese do nulo e a hipótese alternativa a serem testadas.

      4. 'statistic: valor da amostra estatística usado para testar a hipótese do nulo.

      5. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seu(s) parâmetro(s).

      6. 'p_value: o valor de p do teste.

     Exemplos:

     Verifica a hipótese do nulo H_0: median = 15 contra a alternativa H_1: median > 15. Esse é um teste exato, ua vez que não exite 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

     Verifica a hipótese do nulo H_0: equal(median, 2.5) contra a alternativa H_1: not equal(median, 2.5). Esse é um teste aproximado, uma vez que ocorrem 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

 -- Funcedilhaão: test_rank_sum (X1, X2)
 -- Funcedilhaão: test_rank_sum (X1, X2, OPCEDILHAÃO_1)

     Esse é o teste de Wilcoxon-Mann-Whitney para comparacedilhaão das medianas de duas populacedilhaões contínuas. Os primeiros dois argumentos X1 e X2 são listas ou matrizes colunas com os dados de duas amostras independentes. Executa aproximacedilhaão normal se quaisquer dos tamanhos de amostra for maior que 10, ou se houverem empates.

     Opcedilhaão:

       * 'alternative, o valor padrão é 'twosided, é a hipótese alternativa; valores válidos são: 'twosided, 'greater e 'less.

     A saída da funcedilhaão test_rank_sum é um objeto inference_result do Maxima com os seguintes resultados:

      1. 'method: procedimento de inferência.

      2. 'hypotheses: a hipótese do nulo e a hipótese alternativa a serem testadas.

      3. 'statistic: valor da amostra estatística usada para testar a hipótese do nulo.

      4. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seus parâmetros.

      5. 'p_value: o valor de p do teste.

     Exemplos:

     Verifica se populacedilhaões possuem medianas similares. Tamanhos de amotra são pequenos e é feito um teste exato.

          (%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

     Agora, com grandes amostras e empates, o procedimento faz aproximacedilhaão norma. A hipótese alternativa é 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

 -- Funcedilhaão: test_normality (X)

     Teste de Shapiro-Wilk para normalidade. O argumento X é uma lista de números, e o tamanho da amostra deve ser maior que 2 e menor ou igua a 5000, de outra forma, a funcedilhaão test_normality sinaliza com um erro.

     Referência:

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

     A saída da funcedilhaão test_normality é um objeto inference_result do Maxima com os seguintes resultados:

      1. 'statistic: valor do W estatístico.

      2. 'p_value: valor de p sob a hipótese de normalidade.

     Exemplos:

     Verifica a normalidade de uma populacedilhaão, baseada em uma amostra de tamanho 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

 -- Funcedilhaão: simple_linear_regression (X)
 -- Funcedilhaão: simple_linear_regression (X OPCEDILHAÃO_1)

     Regressão linear simples, y_i=a+b x_i+e_i, onde os e_i são N(0,sigma) variáveis aleatórias independentes. O argumento X deve ser uma matriz de duas colunas ou uma lista de pares.

     Opcedilhaões:

       * 'conflevel, o valor padrão é 95/100, nível de confidência para o intervalo de confidência; isso deve ser uma expressão que tome valores em (0,1).

       * 'regressor, o valor padrão é 'x, nome da variável independente.

     A saída da funcedilhaão simple_linear_regression é um objeto inference_result do Maxima com os seguintes resultados:

      1. 'model: a equacedilhaão ajustada. Útil para fazer novas previsões. Veja exemplos abaixo.

      2. 'means: média de duas variáveis pseudo-aleatórias.

      3. 'variances: variâncias de ambas as variáveis.

      4. 'correlation: coeficiente de correlacedilhaão.

      5. 'adc: coeficiente de determinacedilhaão ajustado.

      6. 'a_estimation: estimador do parâmetro A.

      7. 'a_conf_int: intervalo de confidência do parâmetro A.

      8. 'b_estimation: estimador do parâmetro B.

      9. 'b_conf_int: intervalo de confidência do parâmetro B.

      10. 'hypotheses: a hipótese do nulo e a hipótese alternativa sobre o parâmetro B.

      11. 'statistic: valor da amostra estatística usado para testar a hipótese do nulo.

      12. 'distribution: distribuicedilhaão da amostra estatística, juntamente com seu parâmetro.

      13. 'p_value: o valor de p do teste sobre B.

      14. 'v_estimation: estimador de variância imparcial, ou variância residual.

      15. 'v_conf_int: intervalo de confidência da variância.

      16. 'cond_mean_conf_int: intervalo de confidência paa a média condicionada. Veja exemplos abaixo.

      17. 'new_pred_conf_int: intervalo de confidência para uma nova previsão. Veja exemplos abaixo.

      18. 'residuals: lista de pares (previsão, resíduo), ordenados em relacedilhaão às previsões. Útil para achar o melhor da análise de ajuste. Veja exemplos abaixo.

     Somente os itens 1, 4, 14, 9, 10, 11, 12, e 13 acima, nessa ordem, são mostrados por padrão. Os restantes escondem-se até que o usuário facedilhaa uso de funcedilhaões items_inference e take_inference.

     Exemplo:

     Ajustando um modelo linear para uma amostras de duas variáveis. A entrada %i4 monta p gráfico da amostra junto com a linha de regressão; a entrada %i5 calcula y dado x=113; a média e o intervalo de confidência para uma nova previsão quando x=113 são também calculados.

          (%i1) load("stats")$
          (%i2) s:[[125,140.7],[130,155.1],[135,160.3],[140,167.2],[145,169.8]]$
          (%i3) z:simple_linear_regression(s,conflevel=0.99);
                     |               SIMPLE LINEAR REGRESSION
                     |
                     |   model = 1.405999999999985 x - 31.18999999999804
                     |
                     |           correlation = .9611685255255155
                     |
                     |           v_estimation = 13.57966666666665
                     |
          (%o3)      | b_conf_int = [.04469633662525263, 2.767303663374718]
                     |
                     |          hypotheses = H0: b = 0 ,H1: b # 0
                     |
                     |            statistic = 6.032686683658114
                     |
                     |            distribution = [student_t, 3]
                     |
                     |             p_value = 0.0038059549413203
          (%i4) plot2d([[discrete, s], take_inference(model,z)],
                        [x,120,150],
                        [gnuplot_curve_styles, ["with points","with lines"]] )$
          (%i5) take_inference(model,z), x=133;
          (%o5)                         155.808
          (%i6) take_inference(means,z);
          (%o6)                     [135.0, 158.62]
          (%i7) take_inference(new_pred_conf_int,z), x=133;
          (%o7)              [132.0728595995113, 179.5431404004887]

Funcedilhaões e Variáveis Definidas para distribuicedilhaões especiais
======================================================================

 -- Funcedilhaão: pdf_signed_rank (X, N)
     Funcedilhaão densidade de probabilidade da distribuicedilhaão exata da estatística do rank sinalizado. O argumento X é um número real e N um inteiro positivo.

     Veja também test_signed_rank.

 -- Funcedilhaão: cdf_signed_rank (X, N)
     Funcedilhaão de densidade cumulativa da distribuicedilhaão exata da estatística do rank sinalizado. O argumento X é um número real e N um inteiro positivo.

     Veja também test_signed_rank.

 -- Funcedilhaão: pdf_rank_sum (X, N, M)
     Funcedilhaão densidade de probabilidade da distribuicedilhaão exata da estatística do somatório do rank. O argumento X é um número real e N e M são ambos inteiros positivos.

     Veja também test_rank_sum.

 -- Funcedilhaão: cdf_rank_sum (X, N, M)
     Funcedilhaão de densidade cumulativa da distribuicedilhaão exata da estatística do somatório do rank. O argumento X é um número real e N e M são ambos inteiro positivos.

     Veja também test_rank_sum.