@c Language: Brazilian Portuguese, Encoding: iso-8859-1
@c /descriptive.texi/1.10/Sat Jun  2 00:13:14 2007//
@menu
* Introdu@value{cedilha}@~{a}o ao pacote descriptive::
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para manipula@value{cedilha}@~{a}o da dados::
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para estat@'{i}stica descritiva::
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas espec@'{i}ficas para estat@'{i}stica descritiva de v@'{a}rias vari@'{a}veis::
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para gr@'{a}ficos estat@'{i}sticos::
@end menu

@node Introdu@value{cedilha}@~{a}o ao pacote descriptive, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para manipula@value{cedilha}@~{a}o da dados, descriptive, descriptive
@section Introdu@value{cedilha}@~{a}o ao pacote descriptive

O pacote @code{descriptive} cont@'{e}m um conjunto de fun@value{cedilha}@~{o}es para fazer c@'{a}lculos de estat@'{i}stica descritiva e desenhar gr@'{a}ficos. Juntamente com o c@'{o}digo fonte tr@^{e}s conjuntos de dados em suar @'{a}rvore do Maxima: @code{pidigits.data}, @code{wind.data} e @code{biomed.data}. Eles tamb@'{e}m podem ser baixados a partir de @code{www.biomates.net}.

Qualque manual de estat@'{i}stica pode ser usado como refer@^{e}ncia para as fun@value{cedilha}@~{o}es no pacote @code{descriptive}.

Para coment@'{a}rios, erros ou sugest@~{o}es, por favor entre em contato comigo em @var{'mario AT edu DOT xunta DOT es'}.

Aqui est@'{a} um exemplo sobre como as fun@value{cedilha}@~{o}es de estat@'{i}stica descritiva no pacote @code{descriptive} fazem esse trabalho, dependendo da natureza de seus argumentos, listas e matrizes,

@c ===beg===
@c load (descriptive)$
@c /* univariate sample */   mean ([a, b, c]);
@c matrix ([a, b], [c, d], [e, f]);
@c /* amostra de v@'{a}rias vari@'{a}veis */ mean (%);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) /* univariate sample */   mean ([a, b, c]);
                            c + b + a
(%o2)                       ---------
                                3
(%i3) matrix ([a, b], [c, d], [e, f]);
                            [ a  b ]
                            [      ]
(%o3)                       [ c  d ]
                            [      ]
                            [ e  f ]
(%i4) /* amostra de v@'{a}rias vari@'{a}veis */ mean (%);
                      e + c + a  f + d + b
(%o4)                [---------, ---------]
                          3          3
@end example

Note que em amostras de v@'{a}rias vari@'{a}veis a m@'{e}dia @'{e} calculada em cada coluna.

No caso de muitas amostras amostras com poss@'{i}veis tamanhos diferentes, A fun@value{cedilha}@~{a}o do Maxima @code{map} pode ser usada para pegar os resultados desejados de cada amostra,

@c ===beg===
@c load (descriptive)$
@c map (mean, [[a, b, c], [d, e]]);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) map (mean, [[a, b, c], [d, e]]);
                        c + b + a  e + d
(%o2)                  [---------, -----]
                            3        2
@end example

Nesse caso, duas amostras de tamanhos 3 e 2 foram armazenadas em uma lista.

Amostras de uma @'{u}nica vari@'{a}vel devem ser armazenadas em listas como

@c ===beg===
@c s1 : [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
@c ===end===
@example
(%i1) s1 : [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
(%o1)           [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
@end example

e amostras de v@'{a}rias vari@'{a}veis em matrizes como em

@c ===beg===
@c s2 : matrix ([13.17, 9.29], [14.71, 16.88], [18.50, 16.88],
@c              [10.58, 6.63], [13.33, 13.25], [13.21,  8.12]);
@c ===end===
@example
(%i1) s2 : matrix ([13.17, 9.29], [14.71, 16.88], [18.50, 16.88],
             [10.58, 6.63], [13.33, 13.25], [13.21,  8.12]);
                        [ 13.17  9.29  ]
                        [              ]
                        [ 14.71  16.88 ]
                        [              ]
                        [ 18.5   16.88 ]
(%o1)                   [              ]
                        [ 10.58  6.63  ]
                        [              ]
                        [ 13.33  13.25 ]
                        [              ]
                        [ 13.21  8.12  ]
@end example

Nesse caso, o n@'{u}mero de colunas @'{e} igual @`a dimens@~{a}o (ao n@'{u}mero) de vari@'{a}veis e o n;umero de linhas @'{e} o tamano da amostra.

Dados podem ser introduzidos manualmente, mas grandes amostras s@~{a}o usualmente armazenadas em arquivos no formato texto plano. Por exemplo, o arquivo @code{pidigits.data} cont@'{e}m os primeiros 100 d@'{i}gitos do n@'{u}mero @code{%pi}:
@example
      3
      1
      4
      1
      5
      9
      2
      6
      5
      3 ...
@end example

Com o objetivo de chamar esses d@'{i}gitos no Maxima,

@c ===beg===
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c length (s1);
@c ===end===
@example
(%i1) load (numericalio)$
(%i2) s1 : read_list (file_search ("pidigits.data"))$
(%i3) length (s1);
(%o3)                          100
@end example

Por outro lado, o arquivo @code{wind.data} cont@'{e}m a m@'{e}dia di@'{a}ria de velocidades do ventoem 5 esta@value{cedilha}@~{o}es meteorol@'{o}gicas na Rep@'{u}blica da Irlanda (Esses dados s@~{a}o parte de um conjunto de dados tomados em 12 esta@value{cedilha}@~{o}es meteorol@'{o}gicas. O arquivo original est@'{a} disponivel livremente para download no Reposit@'{o}rio de Dados StatLib e sua an@'{a}lise @'{e} discutida em Haslett, J., Raftery, A. E. (1989) @var{Space-time Modelling with Long-memory Dependence: Assessing Ireland's Wind Power Resource, with Discussion}. Applied Statistics 38, 1-50). As linhas seguintes mostram como tornar os dados dispon@'{i}veis para o Maxima:

@c ===beg===
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c length (s2);
@c s2 [%]; /* last record */
@c ===end===
@example
(%i1) load (numericalio)$
(%i2) s2 : read_matrix (file_search ("wind.data"))$
(%i3) length (s2);
(%o3)                          100
(%i4) s2 [%]; /* last record */
(%o4)            [3.58, 6.0, 4.58, 7.62, 11.25]
@end example

Algumas amostras possuem dados n@~{a}o num@'{e}ricos. Como um exemplo, o arquivo @code{biomed.data} (que @'{e} parte de outro grande arquivo tomado do Rep@'{o}sit@'{o}rio de Dados StatLib) cont@'{e}m quatro medidas sang@"{u}@'{i}neas tomadas de dois grupos de pacientes, @code{A} e @code{B}, de diferentes idades,

@c ===beg===
@c load (numericalio)$
@c s3 : read_matrix (file_search ("biomed.data"))$
@c length (s3);
@c s3 [1]; /* first record */
@c ===end===
@example
(%i1) load (numericalio)$
(%i2) s3 : read_matrix (file_search ("biomed.data"))$
(%i3) length (s3);
(%o3)                          100
(%i4) s3 [1]; /* first record */
(%o4)            [A, 30, 167.0, 89.0, 25.6, 364]
@end example

O primeiro indiv@'{i}duo pertence ao grupo @code{A}, com 30 anos de idade e suas medidas sang@"{u}@'{i}neas foram 167.0, 89.0, 25.6 e 364.

Se deve tomar cuidado quando se trabalha com dados divididos por categorias. no exemplo seguinte, ao s@'{i}mbolo @code{a} @'{e} atribu@'{i}do um valor em algum momento anterior e ent@~{a}o a amostra com valores divididos por categoria @code{a} @'{e} interpretada como,

@c ===beg===
@c a : 1$
@c matrix ([a, 3], [b, 5]);
@c ===end===
@example
(%i1) a : 1$
(%i2) matrix ([a, 3], [b, 5]);
                            [ 1  3 ]
(%o2)                       [      ]
                            [ b  5 ]
@end example



@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para manipula@value{cedilha}@~{a}o da dados, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para estat@'{i}stica descritiva, Introdu@value{cedilha}@~{a}o ao pacote descriptive, descriptive
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para manipula@value{cedilha}@~{a}o da dados

@deffn {Fun@value{cedilha}@~{a}o} continuous_freq (@var{list})
@deffnx {Fun@value{cedilha}@~{a}o} continuous_freq (@var{list}, @var{m})
O argumetno de @code{continuous_freq} deve ser uma lista de n@'{u}meros, que ser@~{a}o ent@~{a}o agrupadas em intervalos e contado quantos desses dados pertencem a cada grupo. Opcionalmente, a fun@value{cedilha}@~{a}o @code{continuous_freq} admite um segundo argumento indicando o n@'{u}mero de classes, 10 @'{e} o valor padr@~{a}o,

@c ===beg===
@c load (numericalio)$
@c load (descriptive)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c continuous_freq (s1, 5);
@c ===end===
@example
(%i1) load (numericalio)$
(%i2) load (descriptive)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) continuous_freq (s1, 5);
(%o4) [[0, 1.8, 3.6, 5.4, 7.2, 9.0], [16, 24, 18, 17, 25]]
@end example

A primeira lista cont@'{e}m os limites de intervalos e o segundo a correspondente contagem: existem 16 algarismos da parte decimal de @code{%pi} dentro do intervalo @code{[0, 1.8]}, isto @'{e} 0's e 1's, 24 algarismos em @code{(1.8, 3.6]}, isto @'{e} 2's e 3's, e assim por diante.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} discrete_freq (@var{list})
Conta as freq@"{u}@^{e}ncias absolutas em amostras discretas, em amostras num@'{e}ricas e em amostras divididas em categorias. Seu @'{u}nico argumento @'{e} uma lista,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"));
@c discrete_freq (s1);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"));
(%o3) [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 
4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7, 
1, 6, 9, 3, 9, 9, 3, 7, 5, 1, 0, 5, 8, 2, 0, 9, 7, 4, 9, 4, 4, 
5, 9, 2, 3, 0, 7, 8, 1, 6, 4, 0, 6, 2, 8, 6, 2, 0, 8, 9, 9, 8, 
6, 2, 8, 0, 3, 4, 8, 2, 5, 3, 4, 2, 1, 1, 7, 0, 6, 7]
(%i4) discrete_freq (s1);
(%o4) [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 
                             [8, 8, 12, 12, 10, 8, 9, 8, 12, 13]]
@end example

A primeira lista fornece os valores da amostra e a segunda seuas freq@"{u}@^{e}ncias absolutas. Os comandos @code{? col} e @code{? transpose} podem ajudar a voc@^{e} a entender a @'{u}ltima entrada.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} subsample (@var{matriz_de_dados}, @var{express@~{a}o_l@'{o}gica})
@deffnx {Fun@value{cedilha}@~{a}o} subsample (@var{matriz_de_dados}, @var{express@~{a}o_l@'{o}gica}, @var{col_num}, @var{col_num}, ...)
Essas fun@value{cedilha}@~{o}es s@~{a}o um tipo de varia@value{cedilha}@~{a}o da fun@value{cedilha}@~{a}o @code{submatrix} do Maxima. O primeiro argumento @'{e} o nome da matriz de dados, o segundo argumento @'{e} uma express@~{a}o l@'{o}gica que recebeu ap@'{o}strofo e os argumentos opcionais adicionais s@~{a}o o n@'{u}mero de colunas a serem tomadas. Esse comportamento @'{e} melhor entendido com exemplos,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c subsample (s2, '(%c[1] > 18));
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) subsample (s2, '(%c[1] > 18));
              [ 19.38  15.37  15.12  23.09  25.25 ]
              [                                   ]
              [ 18.29  18.66  19.08  26.08  27.63 ]
(%o4)         [                                   ]
              [ 20.25  21.46  19.95  27.71  23.38 ]
              [                                   ]
              [ 18.79  18.96  14.46  26.38  21.84 ]
@end example

Existem registros de v@'{a}rias vari@'{a}veis nos quais a velocidade do vento na primeira esta@value{cedilha}@~{a}o meteorol@'{o}gica foram maiores que 18. Veja que na express@~{a}o l@'{o}gica que recebeu ap@'{o}strofo o @var{i}-@'{e}simo componente @'{e} referenciado como @code{%c[i]}. O s@'{i}mbolo @code{%c[i]} @'{e} usado dentro da fun@value{cedilha}@~{a}o @code{subsample}, portanto quando usado como uma vari@'{a}vel de uma categoria, Maxima fica confuso. No seguinte exemplo, requisitamos somente o primeiro, o segundo e o quinto componentes desses registro com velocidades de vento maiores que ou igual a 16 n@'{o}s na esta@value{cedilha}@~{a}o meteorol@'{o}gica n@'{u}mero 1 e menor que 25 n@'{o}s na esta@value{cedilha}@~{a}o meteorol@'{o}gica n@'{u}mero 4,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c subsample (s2, '(%c[1] >= 16 and %c[4] < 25), 1, 2, 5);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) subsample (s2, '(%c[1] >= 16 and %c[4] < 25), 1, 2, 5);
                     [ 19.38  15.37  25.25 ]
                     [                     ]
                     [ 17.33  14.67  19.58 ]
(%o4)                [                     ]
                     [ 16.92  13.21  21.21 ]
                     [                     ]
                     [ 17.25  18.46  23.87 ]
@end example

Aqui est@'{a} um exemplo com as vari@'{a}veis divididas em categorias do arquivo @code{biomed.data}. Queremos os registros correspondentes a aqueles pacientes no grupo @code{B} que possuem idade maior que 38 anos,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s3 : read_matrix (file_search ("biomed.data"))$
@c subsample (s3, '(%c[1] = B and %c[2] > 38));
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) subsample (s3, '(%c[1] = B and %c[2] > 38));
                [ B  39  28.0  102.3  17.1  146 ]
                [                               ]
                [ B  39  21.0  92.4   10.3  197 ]
                [                               ]
                [ B  39  23.0  111.5  10.0  133 ]
                [                               ]
                [ B  39  26.0  92.6   12.3  196 ]
(%o4)           [                               ]
                [ B  39  25.0  98.7   10.0  174 ]
                [                               ]
                [ B  39  21.0  93.2   5.9   181 ]
                [                               ]
                [ B  39  18.0  95.0   11.3  66  ]
                [                               ]
                [ B  39  39.0  88.5   7.6   168 ]
@end example


Probavelmente, a an@'{a}lise estat@'{i}stica ir@'{a} envolver somente as medidas sang@"{u}@'{i}neas,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s3 : read_matrix (file_search ("biomed.data"))$
@c subsample (s3, '(%c[1] = B and %c[2] > 38), 3, 4, 5, 6);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) subsample (s3, '(%c[1] = B and %c[2] > 38), 3, 4, 5, 6);
                   [ 28.0  102.3  17.1  146 ]
                   [                        ]
                   [ 21.0  92.4   10.3  197 ]
                   [                        ]
                   [ 23.0  111.5  10.0  133 ]
                   [                        ]
                   [ 26.0  92.6   12.3  196 ]
(%o4)              [                        ]
                   [ 25.0  98.7   10.0  174 ]
                   [                        ]
                   [ 21.0  93.2   5.9   181 ]
                   [                        ]
                   [ 18.0  95.0   11.3  66  ]
                   [                        ]
                   [ 39.0  88.5   7.6   168 ]
@end example


Essa @'{e} a m@'{e}dia de v@'{a}rias vari@'{a}veis de @code{s3},

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s3 : read_matrix (file_search ("biomed.data"))$
@c mean (s3);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) mean (s3);
       65 B + 35 A  317          6 NA + 8145.0
(%o4) [-----------, ---, 87.178, -------------, 18.123, 
           100      10                100
                                                    3 NA + 19587
                                                    ------------]
                                                        100
@end example
Aqui, a primeira componente @'{e} sem sentido, uma vez que @code{A} e @code{B} s@~{a}o categorias, o segundo componente @'{e} a idade m@'{e}dia dos indiv@'{i}duos na forma racional, e o quarto eo @'{u}ltimo valores exibem um comportamento estranho. Isso ocorre porque o s@'{i}mbolo @code{NA} @'{e} usado aqui para indicar dado n@~{a}o dispon@'{i}vel (@var{non available} em ingl@^{e}s), e as duas m@'{e}dias s@~{a}o certamente sem sentido. Uma solu@value{cedilha}@~{a}o poss@'{i}vel pode ser jogar fora a matriz cujas linhas possuam s@'{i}mbolos @code{NA}, embora isso cause alguma perda de informa@value{cedilha}@~{a}o,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s3 : read_matrix (file_search ("biomed.data"))$
@c mean (subsample (s3, '(%c[4] # NA and %c[6] # NA), 3, 4, 5, 6));
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) mean (subsample (s3, '(%c[4] # NA and %c[6] # NA), 3, 4, 5, 6));
(%o4) [79.4923076923077, 86.2032967032967, 16.93186813186813, 
                                                            2514
                                                            ----]
                                                             13
@end example
@end deffn


@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para estat@'{i}stica descritiva, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas espec@'{i}ficas para estat@'{i}stica descritiva de v@'{a}rias vari@'{a}veis, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para manipula@value{cedilha}@~{a}o da dados, descriptive
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para estat@'{i}stica descritiva



@deffn {Fun@value{cedilha}@~{a}o} mean (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} mean (@var{matriz})
Essa fun@value{cedilha}@~{a}o calcula a m@'{e}dia de uma amostra, definida como
@ifhtml
@example
                       n
                     ====
             _   1   \
             x = -    >    x
                 n   /      i
                     ====
                     i = 1
@end example
@end ifhtml
@ifinfo
@example
                       n
                     ====
             _   1   \
             x = -    >    x
                 n   /      i
                     ====
                     i = 1
@end example
@end ifinfo
@tex
$${\bar{x}={1\over{n}}{\sum_{i=1}^{n}{x_{i}}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c mean (s1);
@c %, numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c mean (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) mean (s1);
                               471
(%o4)                          ---
                               100
(%i5) %, numer;
(%o5)                         4.71
(%i6) s2 : read_matrix (file_search ("wind.data"))$
(%i7) mean (s2);
(%o7)     [9.9485, 10.1607, 10.8685, 15.7166, 14.8441]
@end example
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} var (@var{list})
@deffnx {Fun@value{cedilha}@~{a}o} var (@var{matrix})
This is the sample variance, defined as
@ifhtml
@example
                     n
                   ====
           2   1   \          _ 2
          s  = -    >    (x - x)
               n   /       i
                   ====
                   i = 1
@end example
@end ifhtml
@ifinfo
@example
                     n
                   ====
           2   1   \          _ 2
          s  = -    >    (x - x)
               n   /       i
                   ====
                   i = 1
@end example
@end ifinfo
@tex
$${{1}\over{n}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^2}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c var (s1), numer;
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) var (s1), numer;
(%o4)                   8.425899999999999
@end example

See also function @code{var1}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} var1 (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} var1 (@var{matriz})
Essa fun@value{cedilha}@~{a}o calcula a vari@^{a}ncia da amostra, definida como
@ifhtml
@example
                     n
                   ====
               1   \          _ 2
              ---   >    (x - x)
              n-1  /       i
                   ====
                   i = 1
@end example
@end ifhtml
@ifinfo
@example
                     n
                   ====
               1   \          _ 2
              ---   >    (x - x)
              n-1  /       i
                   ====
                   i = 1
@end example
@end ifinfo
@tex
$${{1\over{n-1}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^2}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c var1 (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c var1 (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) var1 (s1), numer;
(%o4)                    8.5110101010101
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) var1 (s2);
(%o6) [17.39586540404041, 15.13912778787879, 15.63204924242424, 
                            32.50152569696971, 24.66977392929294]
@end example

See also function @code{var}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} std (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} std (@var{matriz})
A ra@'{i}z quadrada da fun@value{cedilha}@~{a}o @code{var}, a vari@^{a}ncia com denominador @math{n}.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c std (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c std (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) std (s1), numer;
(%o4)                   2.902740084816414
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) std (s2);
(%o6) [4.149928523480858, 3.871399812729241, 3.933920277534866, 
                            5.672434260526957, 4.941970881136392]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{var} e @code{std1}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} std1 (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} std1 (@var{matriz})
@'{E} a ra@'{i}z quadrada da fun@value{cedilha}@~{a}o @code{var1}, a vari@^{a}ncia com denominador @math{n-1}.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c std1 (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c std1 (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) std1 (s1), numer;
(%o4)                   2.917363553109228
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) std1 (s2);
(%o6) [4.17083509672109, 3.89090320978032, 3.953738641137555, 
                            5.701010936401517, 4.966867617451963]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{var1} e @code{std}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} noncentral_moment (@var{lista}, @var{k})
@deffnx {Fun@value{cedilha}@~{a}o} noncentral_moment (@var{matriz}, @var{k})
O momento n@~{a}o central de ordem @math{k}, definido como
@ifhtml
@example
                       n
                     ====
                 1   \      k
                 -    >    x
                 n   /      i
                     ====
                     i = 1
@end example
@end ifhtml
@ifinfo
@example
                       n
                     ====
                 1   \      k
                 -    >    x
                 n   /      i
                     ====
                     i = 1
@end example
@end ifinfo
@tex
$${{1\over{n}}{\sum_{i=1}^{n}{x_{i}^k}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c noncentral_moment (s1, 1), numer; /* the mean */
@c s2 : read_matrix (file_search ("wind.data"))$
@c noncentral_moment (s2, 5);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) noncentral_moment (s1, 1), numer; /* the mean */
(%o4)                         4.71
(%i6) s2 : read_matrix (file_search ("wind.data"))$
(%i7) noncentral_moment (s2, 5);
(%o7) [319793.8724761506, 320532.1923892463, 391249.5621381556, 
                            2502278.205988911, 1691881.797742255]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{central_moment}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} central_moment (@var{lista}, @var{k})
@deffnx {Fun@value{cedilha}@~{a}o} central_moment (@var{matriz}, @var{k})
O momento central de ordem @math{k}, definido como
@ifhtml
@example
                    n
                  ====
              1   \          _ k
              -    >    (x - x)
              n   /       i
                  ====
                  i = 1
@end example
@end ifhtml
@ifinfo
@example
                    n
                  ====
              1   \          _ k
              -    >    (x - x)
              n   /       i
                  ====
                  i = 1
@end example
@end ifinfo
@tex
$${{1\over{n}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^k}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c central_moment (s1, 2), numer; /* the variance */
@c s2 : read_matrix (file_search ("wind.data"))$
@c central_moment (s2, 3);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) central_moment (s1, 2), numer; /* a vari@^{a}ncia */
(%o4)                   8.425899999999999
(%i6) s2 : read_matrix (file_search ("wind.data"))$
(%i7) central_moment (s2, 3);
(%o7) [11.29584771375004, 16.97988248298583, 5.626661952750102, 
                             37.5986572057918, 25.85981904394192]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{central_moment} e @code{mean}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} cv (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} cv (@var{matriz})
O coeficiente de varia@value{cedilha}@~{a}o @'{e} o quociente entre o desvio padr@~{a}o da amostra (@code{std}) e a m@'{e}dia @code{mean},

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c cv (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c cv (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) cv (s1), numer;
(%o4)                   .6193977819764815
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) cv (s2);
(%o6) [.4192426091090204, .3829365309260502, 0.363779605385983, 
                            .3627381836021478, .3346021393989506]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{std} e @code{mean}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} mini (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} mini (@var{matriz})
@'E o valor m@'{i}nimo da amostra @var{lista},

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c mini (s1);
@c s2 : read_matrix (file_search ("wind.data"))$
@c mini (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) mini (s1);
(%o4)                           0
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) mini (s2);
(%o6)             [0.58, 0.5, 2.67, 5.25, 5.17]
@end example

Veja tamb@'{e}m fun@value{cedilha}@~{a}o @code{maxi}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} maxi (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} maxi (@var{matriz})
@'{E} o valor m@'{a}ximo da amostra @var{lista},

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c maxi (s1);
@c s2 : read_matrix (file_search ("wind.data"))$
@c maxi (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) maxi (s1);
(%o4)                           9
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) maxi (s2);
(%o6)          [20.25, 21.46, 20.04, 29.63, 27.63]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{mini}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} range (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} range (@var{matriz})
A amplitude @'{e} a diferen@value{cedilha}a entre os valores de maximo e de m@'{i}nimo.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c range (s1);
@c s2 : read_matrix (file_search ("wind.data"))$
@c range (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) range (s1);
(%o4)                           9
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) range (s2);
(%o6)          [19.67, 20.96, 17.37, 24.38, 22.46]
@end example
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} quantile (@var{lista}, @var{p})
@deffnx {Fun@value{cedilha}@~{a}o} quantile (@var{matriz}, @var{p})
@'{E} o @var{p}-@code{quantile} (quantil de ordem @var{p}), com @var{p} sendo um n@'{u}mero em @math{[0, 1]} (intervalo fechado), da amostra @var{lista}.
Embora exista muitas defini@value{cedilha}@~{o}es para quantil de uma amostra (Hyndman, R. J., Fan, Y. (1996) @var{Sample quantiles in statistical packages}. American Statistician, 50, 361-365), aquela que se baseia em interpola@value{cedilha}@~{a}o linear @'{e} a que foi implementada no pacote @code{descriptive}.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c /* 1st and 3rd quartiles */ [quantile (s1, 1/4), quantile (s1, 3/4)], numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c quantile (s2, 1/4);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) /* 1st and 3rd quartiles */ [quantile (s1, 1/4), quantile (s1, 3/4)], numer;
(%o4)                      [2.0, 7.25]
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) quantile (s2, 1/4);
(%o6)    [7.2575, 7.477500000000001, 7.82, 11.28, 11.48]
@end example
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} median (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} median (@var{matriz})
Uma vez que a amostra est@'{a} ordenada, se o tamanho da amostra for @'{i}mpar a mediana @'{e} o valor central, de outra forma a mediana ser@'{a} a m@'{e}dia dos dois valores centrais.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c median (s1);
@c s2 : read_matrix (file_search ("wind.data"))$
@c median (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) median (s1);
                                9
(%o4)                           -
                                2
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) median (s2);
(%o6)         [10.06, 9.855, 10.73, 15.48, 14.105]
@end example

A mediana @'{e} o 1/2-@code{quantil}.

Veja tamb@'{e}m function @code{quantile}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} qrange (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} qrange (@var{matriz})
A amplitude do interquartil @'{e} a diferen@value{cedilha}a entre o terceiro e o primeiro quartil, @code{quantile(@var{lista},3/4) - quantile(@var{lista},1/4)},

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c qrange (s1);
@c s2 : read_matrix (file_search ("wind.data"))$
@c qrange (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) qrange (s1);
                               21
(%o4)                          --
                               4
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) qrange (s2);
(%o6) [5.385, 5.572499999999998, 6.0225, 8.729999999999999, 
                                               6.650000000000002]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{quantile}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} mean_deviation (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} mean_deviation (@var{matriz})
O desvio m@'{e}dio, definido como
@ifhtml
@example
                     n
                   ====
               1   \          _
               -    >    |x - x|
               n   /       i
                   ====
                   i = 1
@end example
@end ifhtml
@ifinfo
@example
                     n
                   ====
               1   \          _
               -    >    |x - x|
               n   /       i
                   ====
                   i = 1
@end example
@end ifinfo
@tex
$${{1\over{n}}{\sum_{i=1}^{n}{|x_{i}-\bar{x}|}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c mean_deviation (s1);
@c s2 : read_matrix (file_search ("wind.data"))$
@c mean_deviation (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) mean_deviation (s1);
                               51
(%o4)                          --
                               20
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) mean_deviation (s2);
(%o6) [3.287959999999999, 3.075342, 3.23907, 4.715664000000001, 
                                               4.028546000000002]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{mean}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} median_deviation (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} median_deviation (@var{matriz})
O desvio da mediana, definido como
@ifhtml
@example
                 n
               ====
           1   \
           -    >    |x - med|
           n   /       i
               ====
               i = 1
@end example
@end ifhtml
@ifinfo
@example
                 n
               ====
           1   \
           -    >    |x - med|
           n   /       i
               ====
               i = 1
@end example
@end ifinfo
@tex
$${{1\over{n}}{\sum_{i=1}^{n}{|x_{i}-med|}}}$$
@end tex
onde @code{med} @'{e} a mediana da @var{lista}.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c median_deviation (s1);
@c s2 : read_matrix (file_search ("wind.data"))$
@c median_deviation (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) median_deviation (s1);
                                5
(%o4)                           -
                                2
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) median_deviation (s2);
(%o6)           [2.75, 2.755, 3.08, 4.315, 3.31]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{mean}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} harmonic_mean (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} harmonic_mean (@var{matriz})
A m@'{e}dia harm@^{o}nica, definida como
@ifhtml
@example
                  n
               --------
                n
               ====
               \     1
                >    --
               /     x
               ====   i
               i = 1
@end example
@end ifhtml
@ifinfo
@example
                  n
               --------
                n
               ====
               \     1
                >    --
               /     x
               ====   i
               i = 1
@end example
@end ifinfo
@tex
$${{n}\over{\sum_{i=1}^{n}{{{1}\over{x_{i}}}}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
@c harmonic_mean (y), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c harmonic_mean (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
(%i4) harmonic_mean (y), numer;
(%o4)                   3.901858027632205
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) harmonic_mean (s2);
(%o6) [6.948015590052786, 7.391967752360356, 9.055658197151745, 
                            13.44199028193692, 13.01439145898509]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{mean} e @code{geometric_mean}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} geometric_mean (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} geometric_mean (@var{matriz})
A m@'{e}dia geom@'{e}trica, definida como
@ifhtml
@example
                 /  n      \ 1/n
                 | /===\   |
                 |  ! !    |
                 |  ! !  x |
                 |  ! !   i|
                 | i = 1   |
                 \         /
@end example
@end ifhtml
@ifinfo
@example
                 /  n      \ 1/n
                 | /===\   |
                 |  ! !    |
                 |  ! !  x |
                 |  ! !   i|
                 | i = 1   |
                 \         /
@end example
@end ifinfo
@tex
$$\left(\prod_{i=1}^{n}{x_{i}}\right)^{{{1}\over{n}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
@c geometric_mean (y), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c geometric_mean (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
(%i4) geometric_mean (y), numer;
(%o4)                   4.454845412337012
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) geometric_mean (s2);
(%o6) [8.82476274347979, 9.22652604739361, 10.0442675714889, 
                            14.61274126349021, 13.96184163444275]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{mean} e @code{harmonic_mean}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} kurtosis (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} kurtosis (@var{matriz})
O coeficiente de curtose, definido como
@ifhtml
@example
                    n
                  ====
            1     \          _ 4
           ----    >    (x - x)  - 3
              4   /       i
           n s    ====
                  i = 1
@end example
@end ifhtml
@ifinfo
@example
                    n
                  ====
            1     \          _ 4
           ----    >    (x - x)  - 3
              4   /       i
           n s    ====
                  i = 1
@end example
@end ifinfo
@tex
$${{1\over{n s^4}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^4}}-3}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c kurtosis (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c kurtosis (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) kurtosis (s1), numer;
(%o4)                  - 1.273247946514421
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) kurtosis (s2);
(%o6) [- .2715445622195385, 0.119998784429451, 
   - .4275233490482866, - .6405361979019522, - .4952382132352935]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{mean}, @code{var} e @code{skewness}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} skewness (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} skewness (@var{matriz})
O coeficiente de assimetria, definido como
@ifhtml
@example
                    n
                  ====
            1     \          _ 3
           ----    >    (x - x)
              3   /       i
           n s    ====
                  i = 1
@end example
@end ifhtml
@ifinfo
@example
                    n
                  ====
            1     \          _ 3
           ----    >    (x - x)
              3   /       i
           n s    ====
                  i = 1
@end example
@end ifinfo
@tex
$${{1\over{n s^3}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^3}}}$$
@end tex

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c skewness (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c skewness (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) skewness (s1), numer;
(%o4)                  .009196180476450306
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) skewness (s2);
(%o6) [.1580509020000979, .2926379232061854, .09242174416107717, 
                            .2059984348148687, .2142520248890832]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{mean}, @code{var} e @code{kurtosis}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} pearson_skewness (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} pearson_skewness (@var{matriz})
O coeficiente de assimetria de pearson, definido como 
@ifhtml
@example
                _
             3 (x - med)
             -----------
                  s
@end example
@end ifhtml
@ifinfo
@example
                _
             3 (x - med)
             -----------
                  s
@end example
@end ifinfo
@tex
$${{3\,\left(\bar{x}-med\right)}\over{s}}$$
@end tex
onde @var{med} @'{e} a mediana de @var{lista}.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c pearson_skewness (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c pearson_skewness (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) pearson_skewness (s1), numer;
(%o4)                   .2159484029093895
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) pearson_skewness (s2);
(%o6) [- .08019976629211892, .2357036272952649, 
         .1050904062491204, .1245042340592368, .4464181795804519]
@end example

Veja tamb@'{e}m as fun@value{cedilha}@~{o}es @code{mean}, @code{var} e @code{median}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} quartile_skewness (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} quartile_skewness (@var{matriz})
O coeficiented de assimetria do quartil, definido como 
@ifhtml
@example
               c    - 2 c    + c
                3/4      1/2    1/4
               --------------------
                   c    - c
                    3/4    1/4
@end example
@end ifhtml
@ifinfo
@example
               c    - 2 c    + c
                3/4      1/2    1/4
               --------------------
                   c    - c
                    3/4    1/4
@end example
@end ifinfo
@tex
$${{c_{{{3}\over{4}}}-2\,c_{{{1}\over{2}}}+c_{{{1}\over{4}}}}\over{c
 _{{{3}\over{4}}}-c_{{{1}\over{4}}}}}$$
@end tex
onde @math{c_p} @'{e} o quartil de ordem @var{p} da amostra @var{lista}.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c quartile_skewness (s1), numer;
@c s2 : read_matrix (file_search ("wind.data"))$
@c quartile_skewness (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) quartile_skewness (s1), numer;
(%o4)                  .04761904761904762
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) quartile_skewness (s2);
(%o6) [- 0.0408542246982353, .1467025572005382, 
       0.0336239103362392, .03780068728522298, 0.210526315789474]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{quantile}.
@end deffn



@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas espec@'{i}ficas para estat@'{i}stica descritiva de v@'{a}rias vari@'{a}veis, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para gr@'{a}ficos estat@'{i}sticos, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para estat@'{i}stica descritiva, descriptive
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas espec@'{i}ficas para estat@'{i}stica descritiva de v@'{a}rias vari@'{a}veis



@deffn {Fun@value{cedilha}@~{a}o} cov (@var{matriz})
A matriz de covari@^{a}ncia da amostra de v@'{a}rias vari@'{a}veis, definida como
@ifhtml
@example
              n
             ====
          1  \           _        _
      S = -   >    (X  - X) (X  - X)'
          n  /       j        j
             ====
             j = 1
@end example
@end ifhtml
@ifinfo
@example
              n
             ====
          1  \           _        _
      S = -   >    (X  - X) (X  - X)'
          n  /       j        j
             ====
             j = 1
@end example
@end ifinfo
@tex
$${S={1\over{n}}{\sum_{j=1}^{n}{\left(X_{j}-\bar{X}\right)\,\left(X_{j}-\bar{X}\right)'}}}$$
@end tex
onde @math{X_j} @'{e} a @math{j}-@'{e}sima linha da matriz de amostra.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c fpprintprec : 7$  /* modifique a precis@~{a}o para uma sa@'{i}da melhor */
@c cov (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) fpprintprec : 7$  /* modifique a precis@~{a}o para obter uma sa@'{i}da melhor */
(%i5) cov (s2);
      [ 17.22191  13.61811  14.37217  19.39624  15.42162 ]
      [                                                  ]
      [ 13.61811  14.98774  13.30448  15.15834  14.9711  ]
      [                                                  ]
(%o5) [ 14.37217  13.30448  15.47573  17.32544  16.18171 ]
      [                                                  ]
      [ 19.39624  15.15834  17.32544  32.17651  20.44685 ]
      [                                                  ]
      [ 15.42162  14.9711   16.18171  20.44685  24.42308 ]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{cov1}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} cov1 (@var{matriz})
A matriz de covari@^{a}ncia da amostra de v@'{a}rias vari@'{a}veis, definida como
@ifhtml
@example
              n
             ====
         1   \           _        _
   S  = ---   >    (X  - X) (X  - X)'
    1   n-1  /       j        j
             ====
             j = 1
@end example
@end ifhtml
@ifinfo
@example
              n
             ====
         1   \           _        _
   S  = ---   >    (X  - X) (X  - X)'
    1   n-1  /       j        j
             ====
             j = 1
@end example
@end ifinfo
@tex
$${{1\over{n-1}}{\sum_{j=1}^{n}{\left(X_{j}-\bar{X}\right)\,\left(X_{j}-\bar{X}\right)'}}}$$
@end tex
where @math{X_j} is the @math{j}-th row of the sample matrix.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c fpprintprec : 7$ /* modifique a precis@~{a}o para obter uma sa@'{i}da melhor */
@c cov1 (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) fpprintprec : 7$ /* modifique a precis@~{a}o para obter uma sa@'{i}da melhor */
(%i5) cov1 (s2);
      [ 17.39587  13.75567  14.51734  19.59216  15.5774  ]
      [                                                  ]
      [ 13.75567  15.13913  13.43887  15.31145  15.12232 ]
      [                                                  ]
(%o5) [ 14.51734  13.43887  15.63205  17.50044  16.34516 ]
      [                                                  ]
      [ 19.59216  15.31145  17.50044  32.50153  20.65338 ]
      [                                                  ]
      [ 15.5774   15.12232  16.34516  20.65338  24.66977 ]
@end example

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{cov}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} global_variances (@var{matriz})
@deffnx {Fun@value{cedilha}@~{a}o} global_variances (@var{matriz}, @var{valor_l@'{o}gico})
A fun@value{cedilha}@~{a}o @code{global_variances} retorna uma lista de medidas de vari@^{a}ncia global:

@itemize @bullet
@item
@var{vari@^{a}ncia total}: @code{trace(S_1)},
@item
@var{vari@^{a}ncia m@'{e}dia}: @code{trace(S_1)/p},
@item
@var{vari@^{a}ncia generalizada}: @code{determinant(S_1)},
@item
@var{desvio padr@~{a}o generalizado}: @code{sqrt(determinant(S_1))},
@item
@var{vari@^{a}ncia efetiva} @code{determinant(S_1)^(1/p)}, (defined in: Pe@~na, D. (2002) @var{An@'{a}lisis de datos multivariantes}; McGraw-Hill, Madrid.)
@item
@var{desvio padr@~{a}o efetivo}: @code{determinant(S_1)^(1/(2*p))}.
@end itemize
onde @var{p} @'{e} a dimens@~{a}o das v@'{a}rias vari@'{a}veis aleat@'{o}rias e @math{S_1} a matriz de covari@^{a}ncia retornada por @code{cov1}.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c global_variances (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) global_variances (s2);
(%o4) [105.338342060606, 21.06766841212119, 12874.34690469686, 
         113.4651792608502, 6.636590811800794, 2.576158149609762]
@end example

A fun@value{cedilha}@~{a}o @code{global_variances} tem um argumento l@'{o}gico opcional: @code{global_variances(x,true)} diz ao Maxima que @code{x} @'{e} a matriz de dados, fazendo o mesmo que @code{global_variances(x)}. Por outro lado, @code{global_variances(x,false)} significa que @code{x} n@~{a}o @'{e} a matriz de dados, mas a matriz de covari@^{a}ncia, evitando a repeti@value{cedilha}@~{a}o seu c@'{a}lculo,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c s : cov1 (s2)$
@c global_variances (s, false);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) s : cov1 (s2)$
(%i5) global_variances (s, false);
(%o5) [105.338342060606, 21.06766841212119, 12874.34690469686, 
         113.4651792608502, 6.636590811800794, 2.576158149609762]
@end example

Veja tamb@'{e}m @code{cov} e @code{cov1}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} cor (@var{matriz})
@deffnx {Fun@value{cedilha}@~{a}o} cor (@var{matriz}, @var{valor_l@'{o}gico})
A matriz de correla@value{cedilha}@~{a}o da maostra de v@'{a}rias vari@'{a}veis.

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c fpprintprec:7$
@c s2 : read_matrix (file_search ("wind.data"))$
@c cor (s2);
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) fpprintprec:7$
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) cor (s2);
      [   1.0     .8476339  .8803515  .8239624  .7519506 ]
      [                                                  ]
      [ .8476339    1.0     .8735834  .6902622  0.782502 ]
      [                                                  ]
(%o5) [ .8803515  .8735834    1.0     .7764065  .8323358 ]
      [                                                  ]
      [ .8239624  .6902622  .7764065    1.0     .7293848 ]
      [                                                  ]
      [ .7519506  0.782502  .8323358  .7293848    1.0    ]
@end example

A fun@value{cedilha}@~{a}o @code{cor} tem um argumento l@'{o}gico opcional: @code{cor(x,true)} diz ao Maxima que @code{x} @'{e} a matriz de dados, fazendo o mesmo que @code{cor(x)}. Por outro lado, @code{cor(x,false)} significa que @code{x} n@~{a}o @'{e} a matriz de dados, mas a matriz de covari@^{a}ncia, evitando a repeti@value{cedilha}@~{a}o de seu c@'{a}lculo,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c fpprintprec:7$
@c s2 : read_matrix (file_search ("wind.data"))$
@c s : cov1 (s2)$
@c cor (s, false); /* this is faster */
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) fpprintprec:7$
(%i4) s2 : read_matrix (file_search ("wind.data"))$
(%i5) s : cov1 (s2)$
(%i6) cor (s, false); /* this is faster */
      [   1.0     .8476339  .8803515  .8239624  .7519506 ]
      [                                                  ]
      [ .8476339    1.0     .8735834  .6902622  0.782502 ]
      [                                                  ]
(%o6) [ .8803515  .8735834    1.0     .7764065  .8323358 ]
      [                                                  ]
      [ .8239624  .6902622  .7764065    1.0     .7293848 ]
      [                                                  ]
      [ .7519506  0.782502  .8323358  .7293848    1.0    ]
@end example

Veja tamb@'{e}m @code{cov} e @code{cov1}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} list_correlations (@var{matriz})
@deffnx {Fun@value{cedilha}@~{a}o} list_correlations (@var{matriz}, @var{valor_l@'{o}gico})
A fun@value{cedilha}@~{a}o @code{list_correlations} retorna uma lista de medidas de correla@value{cedilha}@~{a}o:

@itemize @bullet

@item
@var{matriz de precis@~{a}o}: o inverso da matriz de covari@^{a}ncia @math{S_1},
@ifhtml
@example
       -1     ij
      S   = (s  )             
       1         i,j = 1,2,...,p
@end example
@end ifhtml
@ifinfo
@example
       -1     ij
      S   = (s  )             
       1         i,j = 1,2,...,p
@end example
@end ifinfo
@tex
$${S_{1}^{-1}}={\left(s^{ij}\right)_{i,j=1,2,\ldots, p}}$$
@end tex

@item
@var{vetor de correla@value{cedilha}@~{a}o multipla}:  @math{(R_1^2, R_2^2, ..., R_p^2)}, com 
@ifhtml
@example
       2          1
      R  = 1 - -------
       i        ii
               s   s
                    ii
@end example
@end ifhtml
@ifinfo
@example
       2          1
      R  = 1 - -------
       i        ii
               s   s
                    ii
@end example
@end ifinfo
@tex
$${R_{i}^{2}}={1-{{1}\over{s^{ii}s_{ii}}}}$$
@end tex
sendo um indicador do melhor do ajuste do modelo de regress@~{a}o linear de v@'{a}rias vari@'{a}veis dobre @math{X_i} quando o resto das vari@'{a}veis s@~{a}o usados como regressores.

@item
@var{matriz de correla@value{cedilha}@~{a}o parcial}: como elemento @math{(i, j)} sendo
@ifhtml
@example
                         ij
                        s
      r        = - ------------
       ij.rest     / ii  jj\ 1/2
                   |s   s  |
                   \       /
@end example
@end ifhtml
@ifinfo
@example
                         ij
                        s
      r        = - ------------
       ij.rest     / ii  jj\ 1/2
                   |s   s  |
                   \       /
@end example
@end ifinfo
@tex
$${r_{ij.rest}}={-{{s^{ij}}\over \sqrt{s^{ii}s^{jj}}}}$$
@end tex

@end itemize

Exemplo:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c z : list_correlations (s2)$
@c fpprintprec : 5$ /* for pretty output */
@c z[1];  /* matriz de precis@~{a}o */
@c z[2];  /* vetor de correla@value{cedilha}@~{a}o multipla */
@c z[3];  /* matriz parcial de correla@value{cedilha}@~{a}o */
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) z : list_correlations (s2)$
(%i5) fpprintprec : 5$ /* for pretty output */
(%i6) z[1];  /* precision matrix */
      [  .38486   - .13856   - .15626   - .10239    .031179  ]
      [                                                      ]
      [ - .13856   .34107    - .15233    .038447   - .052842 ]
      [                                                      ]
(%o6) [ - .15626  - .15233    .47296    - .024816  - .10054  ]
      [                                                      ]
      [ - .10239   .038447   - .024816   .10937    - .034033 ]
      [                                                      ]
      [ .031179   - .052842  - .10054   - .034033   .14834   ]
(%i7) z[2];  /* multiple correlation vector */
(%o7)       [.85063, .80634, .86474, .71867, .72675]
(%i8) z[3];  /* partial correlation matrix */
       [  - 1.0     .38244   .36627   .49908   - .13049 ]
       [                                                ]
       [  .38244    - 1.0    .37927  - .19907   .23492  ]
       [                                                ]
(%o8)  [  .36627    .37927   - 1.0    .10911    .37956  ]
       [                                                ]
       [  .49908   - .19907  .10911   - 1.0     .26719  ]
       [                                                ]
       [ - .13049   .23492   .37956   .26719    - 1.0   ]
@end example

A fun@value{cedilha}@~{a}o @code{list_correlations} tamb@'{e}m tem um argumento l@'{o}gico opcional: @code{list_correlations(x,true)} diz ao Maxima que @code{x} @'{e} a matriz de dados, fazendo o mesmo que @code{list_correlations(x)}. Por outro lado, @code{list_correlations(x,false)} significa que @code{x} n@~{a}o @'{e} a matriz de correla@value{cedilha}@~{a}o, mas a matriz de covariancia, evitando a repeti@value{cedilha}@~{a}o de seu c@'{a}lculo.

Veja tamb@'{e}m @code{cov} e @code{cov1}.
@end deffn



@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para gr@'{a}ficos estat@'{i}sticos,  , Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas espec@'{i}ficas para estat@'{i}stica descritiva de v@'{a}rias vari@'{a}veis, descriptive
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para gr@'{a}ficos estat@'{i}sticos



@deffn {Fun@value{cedilha}@~{a}o} dataplot (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} dataplot (@var{lista}, @var{op@value{cedilha}@~{a}o_1}, @var{op@value{cedilha}@~{a}o_2}, ...)
@deffnx {Fun@value{cedilha}@~{a}o} dataplot (@var{matriz})
@deffnx {Fun@value{cedilha}@~{a}o} dataplot (@var{matriz}, @var{op@value{cedilha}@~{a}o_1}, @var{op@value{cedilha}@~{a}o_2}, ...)
A fun@value{cedilha}@~{a}o @code{dataplot} permite visualiza@value{cedilha}@~{a}o direta de dados de amostra, ambas d uma @'{u}nica vari@'{a}vel (@var{lista}) e de v@'{a}rias vari@'{a}veis (@var{matriz}). Fornecendo valores para as seguintes @var{op@value{cedilha}@~{o}es} que s@~{a}o alguns asp@'{e}ctos de impress@~{a}o que podem ser controlados:

@itemize @bullet

@item
@code{'outputdev}, o valor padr@~{a}o @'{e} @code{"x"}, indica o formato de dispositivo/arquivo da figura de sa@'{i}da; valores corretos s@~{a}o @code{"x"}, @code{"eps"} e @code{"png"}, para a tela, formato de arquivo postscript e formato de arquivo png, respectivamente.

@item
@code{'maintitle}, o valor padr@~{a}o @'{e} @code{""}, @'{e} o t@'{i}tulo principal entre aspas duplas.

@item
@code{'axisnames}, o valor padr@~{a}o @'{e} @code{["x","y","z"]}, @'{e} uma lista de nomes dos eixos @code{x}, @code{y} e @code{z}.

@item
@code{'joined}, o valor padr@~{a}o @'{e} @code{false}, um valor l@'{o}gico para selecionar pontos em 2D para serem unidos ou isolados.

@item
@code{'picturescales}, o valor padr@~{a}o @'{e} @code{[1.0, 1.0]}, fator de proporcionalidade para o tamanho do gr@'{a}fico.

@item
@code{'threedim}, o valor padr@~{a}o @'{e} @code{true}, diz ao Maxima se ou monta-se o gr@'{a}fico de uma matriz de tr@^{e}s colunas como um diagrama 3D ou se monta-se o gr@'{a}fico como um diagrama de dispers@~{a}o de v@'{a}rias vari@'{a}veis. Veja exemplos abaixo.

@item
@code{'axisrot}, o valor padr@~{a}o @'{e} @code{[60, 30]}, modifica o ponto de visualiza@value{cedilha}@~{a}o quando @code{'threedim} for escolhido para @code{true} dados forem armazenados em uma matriz de tr@^{e}s colunas. O primeiro n@'{u}mero @'{e} o @^{a}ngulo de rota@value{cedilha}@~{a}o do eixo @var{x}, e o segundo n@'{u}mero @'{e} o angulo de rota@value{cedilha}@~{a}o do eixo @var{z}-axis, ambas as medidas em graus.

@item
@code{'nclasses}, o valor padr@~{a}o @'{e} @code{10}, @'{e} o n@'{u}mero de classes para histogramas na diagonal de gr@'{a}ficos de dispers@~{a}o de v@'{a}rias vari@'{a}veis.

@item
@code{'pointstyle}, o valor padr@~{a}o @'{e} @code{1}, @'{e} um inteiro que indica como mostrar pontos de amostra.

@end itemize

Por exemplo, com a seguite entrada um gr@'{a}fico simples dos primeiros vinte d@'{i}gitos de @code{%pi} @'{e} requisitado e a sa@'{i}da @'{e} armazenada em um arquivo no formato eps.

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c dataplot (makelist (s1[k], k, 1, 20), 'pointstyle = 3)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) dataplot (makelist (s1[k], k, 1, 20), 'pointstyle = 3)$
@end example

Note que dados unidimensionais s@~{a}o colocados no gr@'{a}fico como uma s@'{e}rie de tempo. No caso seguinte, ocorre a mesma coisa s@'{o} que com mais dados e com mais configura@value{cedilha}@~{o}es,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c dataplot (makelist (s1[k], k, 1, 50), 'maintitle = "Primeiros d@'{i}gitos de pi",
@c  'axisnames = ["ordem do d@'{i}gito", "valor do d@'{i}gito"], 'pointstyle = 2,
@c  'joined = true)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) dataplot (makelist (s1[k], k, 1, 50), 'maintitle = "Primeiros d@'{i}gitos de pi",
 'axisnames = ["ordem do d@'{i}gito", "valor do d@'{i}gito"], 'pointstyle = 2,
 'joined = true)$
@end example

A fun@value{cedilha}@~{a}o @code{dataplot} pode ser usada para montar gr@'{a}ficos de pontos no plano. O exemplo seguinte @'{e} gr@'{a}fico de dispers@~{a}o de pares de pontos de velocidades de vento para o primeira e para o quinta esta@value{cedilha}@~{a}o meteorol@'{o}gica,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c dataplot (submatrix (s2, 2, 3, 4), 'pointstyle = 2,
@c  'maintitle = "Pares de medidas de velocidade do vento em n@'{o}s",
@c  'axisnames = ["Velocidade do vento em A", "Velocidade do vento em E"])$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) dataplot (submatrix (s2, 2, 3, 4), 'pointstyle = 2,
 'maintitle = "Pares de medidas de velocidade do vento em n@'{o}s",
 'axisnames = ["Velocidade do vento em A", "Velocidade do vento em E"])$
@end example

Se pontos forem armazenados em uma matriz de duas colunas, @code{dataplot} pode montar o gr@'{a}fico desses pontos diretamente, mas se eles forem formatados em uma lista de pares, essa lista deve ser transformada em uma matriz como no seguinte exemplo.

@c ===beg===
@c load (descriptive)$
@c x : [[-1, 2], [5, 7], [5, -3], [-6, -9], [-4, 6]]$
@c dataplot (apply ('matrix, x), 'maintitle = "Pontos",
@c  'joined = true, 'axisnames = ["", ""], 'picturescales = [0.5, 1.0])$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) x : [[-1, 2], [5, 7], [5, -3], [-6, -9], [-4, 6]]$
(%i3) dataplot (apply ('matrix, x), 'maintitle = "Pontos",
 'joined = true, 'axisnames = ["", ""], 'picturescales = [0.5, 1.0])$
@end example

Pontos no espa@value{cedilha}o tridimensional podem ser vistos como uma proje@value{cedilha}@~{a}o no plano. Nesse exemplo, o gr@'{a}fico de velocidades do vento correspondendo a tr@^{e}s esta@value{cedilha}@~oes meteorol@'{o}gicas s@~{a}o requisitados, primeiramente em um gr@'{a}fico em 3D e a seguir em um gr@'{a}fico de dispers@@~ao de v@'{a}rias vari@'{a}veis.

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c /* Gr@'{a}fico em 3Dt */ dataplot (submatrix (s2, 4, 5), 'pointstyle = 2,
@c  'maintitle = "Pares de medidas de velocidades do vento em n@'{o}s",
@c  'axisnames = ["Esta@value{cedilha}@~{a}o A", "Esta@value{cedilha}@~{a}o B", "Esta@value{cedilha}@~{a}o C"])$
@c /* Gr@'{a}fico de dispers@~{a}o de v@'{a}rias vari@'{a}veis */ dataplot (submatrix (s2, 4, 5),
@c  'nclasses = 6, 'threedim = false)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) /* 3D plot */ dataplot (submatrix (s2, 4, 5), 'pointstyle = 2,
 'maintitle = "Pares de medidas de velocidades do vento em n@'{o}s",
 'axisnames = ["Esta@value{cedilha}@~{a}o A", "Esta@value{cedilha}@~{a}o B", "Esta@value{cedilha}@~{a}o C"])$
(%i5) /* Gr@'{a}fico de dispers@~{a}o de v@'{a}rias vari@'{a}veis */ dataplot (submatrix (s2, 4, 5),
 'nclasses = 6, 'threedim = false)$
@end example
Note que no @'{u}ltimo exemplo, o n@'{u}mero de classes no histogramas da diagonal @'{e} escolhido para 6, e aquela op@value{cedilha}@~{a}o @code{'threedim} for escolhida para @code{false}.

Para mais que tr@^{e}s dimens@~{o}es somente gr@'{a}ficos de dispers@~{a}o de v@'{a}rias vari@'{a}veis s@~{a}o poss@'{i}vel, como em

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c dataplot (s2)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) dataplot (s2)$
@end example
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} histogram (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} histogram (@var{lista}, @var{op@value{cedilha}@~{a}o_1}, @var{op@value{cedilha}@~{a}o_2}, ...)
@deffnx {Fun@value{cedilha}@~{a}o} histogram (@var{one_column_matrix})
@deffnx {Fun@value{cedilha}@~{a}o} histogram (@var{one_column_matrix}, @var{op@value{cedilha}@~{a}o_1}, @var{op@value{cedilha}@~{a}o_2}, ...)
Essa fun@value{cedilha}@~{a}o monta um gr@'{a}fico de um histograma. Dados de amostras devem ser armazenados em uma lista de n@'{u}meros ou em uma matriz de uma coluna. Fornecendo valores para as seguintes @var{op@value{cedilha}@~{o}es} alguns asp@'{e}ctos do gr@'{a}fico podem ser controlados:

@itemize @bullet

@item
@code{'outputdev}, o valor padr@~{a}o @'{e} @code{"x"}, indica o formato de arquivo da figura de sa@'{i}da; valores corretos s@~{a}o @code{"x"}, @code{"eps"} e @code{"png"}, para a tela, formato de arquivo postscript e formato de arquivo png, respectivamente.

@item
@code{'maintitle}, o valor padr@~{a}o @'{e} @code{""}, @'{e} o t@'{i}tulo principal entre aspas duplas.

@item
@code{'axisnames}, o valor padr@~{a}o @'{e} @code{["x", "Fr."]}, @'{e} uma lista de nomes dos eixos @code{x} e @code{y}.

@item
@code{'picturescales}, o valor padr@~{a}o @'{e} @code{[1.0, 1.0]}, fator de proporcionalidade para o tamanho do gr@'{a}fico.

@item
@code{'nclasses}, o valor padr@~{a}o @'{e} @code{10}, @'{e} o n@'{u}mero de classes ou o n@'{u}mero de barras.

@item
@code{'relbarwidth}, o valor padr@~{a}o @'{e} @code{0.9}, um n@'{u}mero decimao entre 0 e 1 para controlar a largura das barras.

@item
@code{'barcolor}, o valor padr@~{a}o @'{e} @code{1}, um inteiro para indicar a cor das barras.

@item
@code{'colorintensity}, o valor padr@~{a}o @'{e} @code{1}, um n@'{u}mero decimal entre 0 e 1 para estabelecer a intensidade da cor.

@end itemize

Nos pr@'{o}ximos dois exemplos, histogramas s@~{a}o requisitados para os primeiros 100 d@'{i}gitos do n@'{u}mero @code{%pi} e para velocidades do vento na terceira esta@value{cedilha}@~{a}o meteorol@'{o}gica.

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s1 : read_list (file_search ("pidigits.data"))$
@c histogram (s1, 'maintitle = "d@'{i}gitos de pi", 'axisnames = ["", "Freq@"{u}@^{e}ncia absoluta"],
@c  'relbarwidth = 0.2, 'barcolor = 3, 'colorintensity = 0.6)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c histogram (col (s2, 3), 'colorintensity = 0.3)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s1 : read_list (file_search ("pidigits.data"))$
(%i4) histogram (s1, 'maintitle = "d@'{i}gitos de pi", 'axisnames = ["", "Freq@"{u}@^{e}ncia absoluta"],
 'relbarwidth = 0.2, 'barcolor = 3, 'colorintensity = 0.6)$
(%i5) s2 : read_matrix (file_search ("wind.data"))$
(%i6) histogram (col (s2, 3), 'colorintensity = 0.3)$
@end example
Note tque no primeiro caso, @code{s1} @'{e} uma lista  e o segundo exemplo, @code{col(s2,3)} @'{e} uma matriz.

Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{barsplot}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} barsplot (@var{lista})
@deffnx {Fun@value{cedilha}@~{a}o} barsplot (@var{lista}, @var{op@value{cedilha}@~{a}o_1}, @var{op@value{cedilha}@~{a}o_2}, ...)
@deffnx {Fun@value{cedilha}@~{a}o} barsplot (@var{one_column_matrix})
@deffnx {Fun@value{cedilha}@~{a}o} barsplot (@var{one_column_matrix}, @var{op@value{cedilha}@~{a}o_1}, @var{op@value{cedilha}@~{a}o_2}, ...)
Similar a @code{histogram} mas para vari@'{a}veis estat@'{i}sticas, num@'{e}ricas ou divididas em categorias. As op@value{cedilha}@~{o}es est@~{a}o abaixo,

@itemize @bullet

@item
@code{'outputdev}, o valor padr@~{a}o @'{e} @code{"x"}, indica o formato de arquivo da figura de sa@'{i}da; valores corretos s@~{a}o @code{"x"}, @code{"eps"} e @code{"png"}, para a tela, formato de arquivo postscript e formato de arquivo png, respectivamente.

@item
@code{'maintitle}, o valor padr@~{a}o @'{e} @code{""}, @'{e} o t@'{i}tulo principal entre aspas duplas.

@item
@code{'axisnames}, o valor padr@~{a}o @'{e} @code{["x", "Fr."]}, @'{e} uma lista de nomes dos eixos @code{x} e @code{y}.

@item
@code{'picturescales}, o valor padr@~{a}o @'{e} @code{[1.0, 1.0]}, fator de proporcionalidade para o tamanho do gr@'{a}fico.

@item
@code{'relbarwidth}, o valor padr@~{a}o @'{e} @code{0.9}, um n@'{u}mero decimao entre 0 e 1 para controlar a largura das barras.

@item
@code{'barcolor}, o valor padr@~{a}o @'{e} @code{1}, um inteiro para indicar a cor das barras.

@item
@code{'colorintensity}, o valor padr@~{a}o @'{e} @code{1}, um n@'{u}mero decimal entre 0 e 1 para estabelecer a intensidade da cor.


@end itemize

Esse exemplo monta um gr@'{a}fico de barras para os grupos @code{A} e @code{B} de pacientes na amostra @code{s3},

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s3 : read_matrix (file_search ("biomed.data"))$
@c barsplot (col (s3, 1), 'maintitle = "Grupos de pacientes",
@c  'axisnames = ["Grupo", "# de indiv@'{i}duos"], 'colorintensity = 0.2)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) barsplot (col (s3, 1), 'maintitle = "Grupos de pacientes",
 'axisnames = ["Grupo", "# de indiv@'{i}duos"], 'colorintensity = 0.2)$
@end example
A primeira coluna na amostra @code{s3} armazena os valores das categorias @code{A} e @code{B}, tamb@'{e}m conhecidos algumas vezes como fatores. Por outro lado, os n@'{u}meros inteiros positivos na segunda coluna s@`ao idades, em anos, que se comportam como vari@'{a}vel discreta, ent@~{a}o podemos montar um gr@'{a}fico as freq@"{u}@^{e}ncias absolutas para esses valores,

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s3 : read_matrix (file_search ("biomed.data"))$
@c barsplot (col (s3, 2), 'maintitle = "Idades",
@c  'axisnames = ["Anos", "# dos indiv@'{i}duos"], 'colorintensity = 0.2,
@c  'relbarwidth = 0.6)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s3 : read_matrix (file_search ("biomed.data"))$
(%i4) barsplot (col (s3, 2), 'maintitle = "Idades",
 'axisnames = ["Anos", "# dos indiv@'{i}duos"], 'colorintensity = 0.2,
 'relbarwidth = 0.6)$
@end example


Veja tamb@'{e}m a fun@value{cedilha}@~{a}o @code{histogram}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} boxplot (@var{data})
@deffnx {Fun@value{cedilha}@~{a}o} boxplot (@var{data}, @var{op@value{cedilha}@~{a}o_1}, @var{op@value{cedilha}@~{a}o_2}, ...)
Essa fun@value{cedilha}@~{a}o monta diagramas em caixas. O argumento @var{data} pode ser uma lista, que n@~{a}o @'{e} de grande interesse, uma vez que esses diagramas s@~{a}o principalmente usados para compara@value{cedilha}@~{a}o entre diferentes amostras, ou uma matriz, eent@~{a}o @'{e} poss@'{i}vel comparar dois ou mais componentes de uma vari@'{a}vel estat@'{i}stica de v@'{a}rias vari@'{a}veis. Mas @'{e} tamb@'{e}m permitido @var{data} se uma lista de amostras com tamanhos diferentes de amostra, de fato essa @'{e} aa @'{u}nica fun@value{cedilha}@~{a}o no pacote @code{descriptive} que admite esse tipo de estrutura de dados. Veja o exemplo abaixo.  Abaixo et@~{a}o as op@value{cedilha}@~{o}es,

@itemize @bullet

@item
@code{'outputdev}, o valor padr@~{a}o @'{e} @code{"x"}, indica o formato de arquivo da figura de sa@'{i}da; valores corretos s@~{a}o @code{"x"}, @code{"eps"} e @code{"png"}, para a tela, formato de arquivo postscript e formato de arquivo png, respectivamente.

@item
@code{'maintitle}, o valor padr@~{a}o @'{e} @code{""}, @'{e} o t@'{i}tulo principal entre aspas duplas.

@item
@code{'axisnames}, o valor padr@~{a}o @'{e} @code{["sample", "y"]}, @'{e} uma lista de nomes dos eixos @code{x} e @code{y}.

@item
@code{'picturescales}, o valor padr@~{a}o @'{e} @code{[1.0, 1.0]}, fator de proporcionalidade para o tamanho do gr@'{a}fico.

@end itemize

Examples:

@c ===beg===
@c load (descriptive)$
@c load (numericalio)$
@c s2 : read_matrix (file_search ("wind.data"))$
@c boxplot (s2, 'maintitle = "Velocidade do vento em n@'{o}s",
@c  'axisnames = ["Esta@value{cedilha}@~{a}o do ano", ""])$
@c A :
@c  [[6, 4, 6, 2, 4, 8, 6, 4, 6, 4, 3, 2],
@c   [8, 10, 7, 9, 12, 8, 10],
@c   [16, 13, 17, 12, 11, 18, 13, 18, 14, 12]]$
@c boxplot (A)$
@c ===end===
@example
(%i1) load (descriptive)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) boxplot (s2, 'maintitle = "Velocidade do vento em n@'{o}s",
 'axisnames = ["Esta@value{cedilha}@~{a}o do ano", ""])$
(%i5) A :
 [[6, 4, 6, 2, 4, 8, 6, 4, 6, 4, 3, 2],
  [8, 10, 7, 9, 12, 8, 10],
  [16, 13, 17, 12, 11, 18, 13, 18, 14, 12]]$
(%i6) boxplot (A)$
@end example
@end deffn
