Análise de Dados com o Software R:
Métodos Estatísticos, Computacionais e Econométricos

Prof. Adriano Azevedo Filho (azevedofilho@usp.br)

Análise de centralidade e posição / Definição de funções no R

sumário geral | anterior | próxima

Conteúdo do Módulo

 1 - Lendo o arquivo de dados para o módulo (esalq2012mod.csv)
 
 2 - Introdução à análise de centralidade, posição e distribuição

 3 - Medidas de centralidade I: médias aritmética e ponderada / Funções no R
     mean, weighted.mean

 4 - Medidas de centralidade II: médias geométrica e harmônica
    
 5 - Medidas de centralidade III: mediana e moda  
     median, max, which.max
     
 6 - Medidas de posição: mínimo, máximo, ordem, percentis, quantis e quartis
     max, min, quantile, fivenum
     

1 - Lendo o arquivo “esalq2012mod.csv” de site na internet

Leia o arquivo “esalq2012mod.csv” que é o mesmo arquivo “esalq2012.csv”, com as modificações nos nomes das variáveis e categorias realizadas por procedimentos descritos aqui.

rm(list=ls())   ## apaga (quase tudo) antes de uma nova análise
alunos<-read.csv2("http://ihbs.com.br/html/esalq2012mod.csv")
alunos[1:5,]
##   sex cur  ing ida cid rep pub pes alt tim sat rmat   pg  car      imc
## 1   m   e 2010  20 isp   1   0  57 172   t   2    s nsei nsei 19.26717
## 2   m   e 2010  20 isp   4   0  78 175   p   2    s nint priv 25.46939
## 3   f   e 2010  22 isp   2   5  59 170   s   2    s pgou priv 20.41522
## 4   m   e 2009  22 isp   6   0  78 179   o   2    s nint nsei 24.34381
## 5   m   e 2010  22 isp   3   4  80 180   t   5    s nsei priv 24.69136
names(alunos)
##  [1] "sex"  "cur"  "ing"  "ida"  "cid"  "rep"  "pub"  "pes"  "alt"  "tim" 
## [11] "sat"  "rmat" "pg"   "car"  "imc"

2 - Introdução à análise de centralidade e posição

Os conceitos que vimos no módulo anterior envolvendo frequências aplicavam-se, em sua totalidade, à análise de variáveis qualitativas ou categóricas, também chamadas de fatores, assim como à análise de variáveis quantitativas discretas com poucos valores diferentes. O uso desses conceitos no contexto de variáveis quantitativas contínuas (ou discretas com muitos valores diferentes) sugeriram a sumarização dessas variáveis através de variáveis qualitativas, definidas convenientemente. O conceito de histograma se fundamentou nessa sumarização.

Este módulo focará em conceitos aplicados predominantemente às variáveis quantitativas. Em alguns casos, será possível a utilização desses conceitos pela conversão variáveis qualitativas com 2 categorias, em variáveis qualitativas discretas chamadas de variáveis Bernoulli, que podem somente assumir valores 1 e 0.

A caracterização de variáveis quantitativas usualmente se faz em estatística através de

  • medidas de centralidade: média (aritmética, ponderada, geométrica, harmônica), mediana e moda
  • medidas de posição: percentil, quantil e quartil
  • medidas de distribuição dos dados: dispersão, assimetria, curtose, assim como gráficos que facilitam a visualização desses conceitos.

Essas medidas, também chamadas de medidas resumo, e gráficos, num contexto elementar, podem ser definidos em situações univariadas, conjuntas ou de forma condicional a valores de variáveis qualitativas, em análises multivariadas. O presente módulo cobrirá medidas de centralidade e posição, no caso unidimensional. Situações multivariadas serão vistas em outros módulos.

Os conceitos apresentados neste e nos próximos tópicos representam medidas empíricas de centralidade e posição, usadas para descrição de dados. Estas medidas são utilizadas como estimadores de medidas teóricas, que em alguns casos tem o mesmo nome e que serão vistas em outros módulos. Essa distinção, que pode parecer complicada ou confusa no momento, será esclarecida em outros módulos.

Aproveitaremos a introdução a esses conceitos para ensinar a definição de novas “funções” no R, algo que usualmente facilita a solução de problemas complexos em análise de dados.

No próximo módulo, veremos como caracterizar a distribuição dos dados.

3 - Medidas de centralidade I: médias aritmética e ponderada / Funções no R

Para os desenvolvimentos dos próximos tópicos considere a seguinte notação: * \(X\) representa uma variável quantitativa assumindo valores \(X_1\), \(X_2\),…, \(X_n\) * \(p_i\) representa o ponderador ou importância dada a cada observação * \(n\) representa o número de observações

3.1 - Definições associadas à média aritmética e ponderada

Se a importância de cada observação é a mesma ou temos sempre \(p_i=1\), para qualquer valor de \(i\), é comum usar a média aritmética como noção de média, definida a seguir: * Média aritmética: \(\displaystyle \bar{X}=\frac{\sum_{i=1}^n X_i}{n}\)

Se a importância de cada observação é diferente, é usual utilizarmos a noção de média ponderada como noção de média, definida a seguir: * Média ponderada: \(\displaystyle \bar{X}_P=\frac{\sum_{i=1}^n X_i\ p_i}{\sum_{i=1}^n p_i}\)

Nota: observe que quando \(p_i=1\), para todo \(i\), a fórmula da média ponderada se converte na fórmula média aritmética, algo que permite a conclusão de que a média aritmética é um caso particular da média ponderada.

Exemplo: média da satisfação dos alunos

No conjunto de dados a variável “alunos$sat” mede a satisfação dos alunos com o curso. Poderíamos calcular a média aritmética da satisfação no R usando:

n<-length(alunos$sat)
sum(alunos$sat)/n
## [1] 3.625

Alguns podem argumentar que alunos que estão a mais tempo no curso têm uma melhor condição de avaliar esse curso, em função da maior exposição às disciplinas. Se esse argumento for aceito, poderíamos considerar a obtenção da média, ponderando com mais ou menos intensidade os alunos que estão a mais ou menos anos no curso. Isso corresponde média ponderada de satisfação com um ponderador apropriado.

O ponderador ou importância é definida no vetor \(p\) usado na fórmula abaixo no R, a partir da variável “alunos$ing” indica o ano em que o aluno ingressou, e lembrando 2012 é o ano em que o levantamento foi realizado:

p<-2012-alunos$ing+1 ## indica o número de anos no curso (ponderador)
p     
##  [1] 3 3 3 4 3 2 2 2 2 3 2 2 3 3 2 2 2 2 2 3 2 2 2 3 2 2 3 2 3 2 3 2 2 2 9
## [36] 2 2 2 2 2 2 2 2 4 2 3 4 2 3 5 2 4 4 3 2 4
sum(alunos$sat * p)/sum(p)
## [1] 3.610738

Nesse caso a ponderação produziu resultados relativamente similares ao da média aritmética. Em outros casos os resultados podem diferir com mais intensidade.

O uso da ponderação visa aumentar ou reduzir a importância ou mesmo representatividade de observações, com algum objetivo específico.

3.2 Definindo uma função no R para calcular a média ponderada

Suponha que deseja calcular muitas vezes média ponderada com vários conjuntos de dados. A solução ideal para esse caso seria a definição de uma “função” que realize essa operação de uma forma mais direta. Assuma que deseja chamar essa função de “medpond”. A definição dessa função poderia se fazer, por exemplo, por:

medpond<-function(x,w){
  sum(x*w)/sum(w)
}

A “função medpond” tem os argumentos genéricos \(x\) e \(w\) que representam, respectivamente, a variável que desejamos obter a média ponderada e o peso ou importância. Há outras formas de se definir essa mesma função. Os comandos que definem a função estão definidos entre as chaves “{” e “}”. Os espaços não são importantes, sendo colocados para facilitar a visibilidade.

Após copiarmos essas linhas de código para o console do R, teremos uma nova função disponível para uso. Se testarmos essa função com as variáveis “alunos$sat” e “p” definidas anteriormente:

medpond(alunos$sat,p)
## [1] 3.610738

iremos obter o mesmo resultado obtido anteriormente. As variáveis “alunos$sat” e “p” utilizadas no argumento da função substituem os valores genéricos \(x\) e \(w\), utilizados na definição original da função, para efeito dos cálculos. A noção de função pode ser chamada de procedimento ou método, em outras linguagens (que não seja o R), tendo um uso similar ao considerado no R.

Uma nova função definida da forma indicada nos últimos parágrafos existe somente durante o período da sessão do R em que foi criada, desaparecendo, por exemplo, quando o R for reinicializado, ou quando é executado o comando “rm(list=ls())” no início de uma sessão, para remover objetos existentes (como fizemos no início do tópico 1).

Exemplo: pureza média do ouro em barras

Suponha que gostaria de encontrar a percentagem média de ouro (em peso) de barras de ouro, de 5 barras com peso em kg e percentagem de ouro (em taxa) definidas por

peso<-c(10,20,20,10,15)
percentagem<-c(0.10, 0.30, 0.30, 0.15, 0.15) ## em taxa

Intuitivamente, o percentual médio seria encontrado dividindo-se o total de ouro em kg nas 5 barras pelo peso total das barras. Isso é exatamente o que a média ponderada irá fazer, considerando o peso da barra como o ponderador:

sum(percentagem * peso)/sum(peso)
## [1] 0.2233333
## ou usando a função "medpond" criada anteriormente
medpond(percentagem,peso)
## [1] 0.2233333

Observe que a média aritmética levaria a um conceito inadequado de percentagem média nesse caso:

sum(percentagem)/length(percentagem) ## média aritmética
## [1] 0.2

Esse último valor, 0,2 ou 20%, tenderia a subestimar o percentual de ouro contido nas barras (em peso).

3.3 Exercícios recomendados

  • Calcule a média aritmética de reprovações (alunos$rep), e a média de reprovações ponderada pelo inverso do número de anos que o alunos está no curso, visando minimizar o problema de alunos que tem mais reprovações somente porque estão a mais anos no curso. Há diferença entre os valores obtidos?

  • Examine a função “mean” e “weighted.mean” no R. Para que servem? Qual é a utilidade das opções “trim” e “na.rm” na função “mean”?

4 - Medidas de Centralidade II: médias geométrica e harmônica

4.1 Conceitos

Para os desenvolvimentos a seguir use a notação: * \(X\) representa uma variável quantitativa assumindo valores \(X_1\), \(X_2\),…, \(X_n\) * \(n\) representa o número de observações

Considere as seguintes definições de outros tipos de média, que serão discutidos próximamente: * Média geométrica: \(\displaystyle \bar{X}_G = \sqrt[n]{X_1 X_2\ldots X_n}\)

  • Média harmônica: \(\displaystyle \bar{X}_H = \left(\frac{1}{n}\sum_{i=1}^n\frac{1}{ X_i}\right)^{-1}\)

A obtenção das médias geométrica e harmônica é restrita às situações específicas em que as operações das fórmulas fazem sentido. Uma condição suficiente para que ambas possam ser calculadas (mas não uma condição nescessária) é termos \(X_i> 0\) para todo \(i\).

Não são muitas as situações que recomendam o uso dessas 2 médias (geométrica e harmônica) para caracterizar a noção de centralidade. Algumas dessas situações serão apresentadas a seguir, depois de enunciada uma importante propriedade com relação a essas médias.

Propriedade importante

Se \(\bar X\), \(\bar X_G\) e \(\bar X_H\) representam, respectivamente, a média aritmética, geométrica e harmônica, de uma dada variável, é sempre verdade que * \(\bar X \ge \bar X_G \ge \bar X_H\) (propriedade importante)

4.2 Uso da média geométrica

É apropriada para situações em que desejamos achar taxas médias de crescimento em múltiplos períodos a partir das taxas que ocorrem em cada períodos.

Por exemplo, num investimento de 2 anos, com taxa de juros de 10% no primeiro ano e 20% no segundo ano, qual teria sido a taxa “média”, nos 2 anos. A utilização da média aritmética levaria ao valor 15%.

Uma solução mais técnica poderia considerar que essa taxa “média” \(\bar j\) seria obtida considerando que nos 2 períodos, deve ser verdade que: * \(\displaystyle (1+\bar j)^2=(1+10\%)(1+20\%)\)

o que levaria a (considerando somente a raiz positiva):

  • \(\displaystyle \bar j = \sqrt{(1+10\%)(1+20\%)}-1,\)

ou seja, a taxa “média” nos 2 anos seria melhor representada por uma expressão que depende da média geométrica dos fatores de crescimento a cada ano.

Calculando pelo R:

sqrt(1.1*1.2)-1
## [1] 0.1489125

ou seja, 14,89% e não os 15% obtidos pela média aritmética.

4.3 Uso da média harmônica

Suponha que realizou uma viagem de carro, ida e volta entre duas cidades, com uma velocidade média de 100 km/h na ida e 80 km/h na volta. Qual teria sido a velocidade média no percurso?

Uma solução impensada poderia considerar a média aritmética:

(100+80)/2
## [1] 90

que não é o resultado correto. Para obter o resultado correto, suponha que a distância entre as 2 cidades é \(d\) km. Mas, claramente, para conhecermos a km média de todo o percurso seria definida por: * \(\displaystyle \frac{2 d}{d/100 + d/80}\)

onde numerador da expressão é a distância entre as 2 cidades e o denominador é o tempo total em horas do percurso. Cancelando \(d\) no numerador e denominador, e rearranjando a expressão, chegamos a: * \(\displaystyle \left[\frac{1}{2}\left(\frac{1}{100}+\frac{1}{80}\right)\right]^{-1}\)

que é exatamente a fórmula da média harmônica de 80 e 100, que poderia ser obtida no R por:

(1/2*sum(1/c(100,80)))^(-1)
## [1] 88.88889

Observe que o valor obtido, que é o conceito adequado de velocidade média, nesse caso, foi inferior à média aritmética obtida, 90 km/h.

Exemplo: função do R para a média aritmética, geométrica e harmônica

Faça uma função denominada “media3” que calcule a média aritmética, geométrica e harmônica de uma variável cujos valores são estritamente positivos.

## Definição da função
media3<-function(x){
  n<-length(x)
  m1<-sum(x)/n
  m2<-(prod(x))^(1/n)
  m3<-(1/n*sum(1/x))^(-1)
  cat("média aritm=",m1," média geom=",m2," média harm=",m3)
}

Testando a função com a variável “alunos$sat”:

media3(alunos$sat)
## média aritm= 3.625  média geom= 3.44038  média harm= 3.184834

Observe médias obtidas atendem à desigualdade indicada no início deste tópico.

A função “cat” na função “media3”, concatena e apresenta os resultados da forma desejada. As variáveis “m1”, “m2” e “m3”, só existirão durante a execução da função, desaparecendo em seguida.

4.4 Teste lógico em funções usando a estrutura “if”

Todas linguagens de programação tem recursos para controlar o fluxo de execução dos comandos. O “if” é estrutura de programação mais usual para controle lógico do fluxo de execução de comandos, dentre outras comuns (for e while).

No R, a estrutura definida pelo “if” tem a sintaxe:

if (teste lógico){expressões 1} else {expressões 2}

se o “teste lógico”" resultar no valor TRUE, a função executará {expressões 1}, caso contrário, executará {expressões 2}.

Vamos exemplificar o uso do “if”, melhorando nossa função “media3”, de forma a garantir que ela só irá calcular a média geométrica e harmônica, quando todos os valores da variável forem positivos e não nulos.

## Definição da função
media3<-function(x){
  if(sum(x<=0)!=0){
    cat("valores negativos ou nulos na variável\n")
  } else {
     n<-length(x)
     m1<-sum(x)/n
     m2<-(prod(x))^(1/n)
     m3<-(1/n*sum(1/x))^(-1)
     cat(" média aritm=",m1,"\n média geom=",m2,"\n média harm=",m3,"\n")
  }
}

Testando a nova função “media3”:

## Definição da função
media3(c(-1,0,2,4))
## valores negativos ou nulos na variável
media3(c(2,4,5,6))
##  média aritm= 4.25 
##  média geom= 3.935979 
##  média harm= 3.58209

Na função, o teste lógico verifica se há valores negativos ou nulos, mostrando o texto “valores negativos ou nulos na variável”, caso existam esses valores. No caso contrário (“else”), calculará essas médias. O símbolo “” significa, em muitas linguagens de programação, “vá para o início da próxima linha”.

4.5 Exercícios recomendados

  • 2 máquinas tiveram o rendimento, respectivamente de 1000 ton/h e 2000 ton/h, para um volume de produção de 10 mil ton, cada uma. Qual seria o conceito adequado para calcularmos o rendimento médio das máquinas em ton/h? A média aritmética seria apropriada?

  • Desenvolva uma nova versão da função “media3” que sempre calcule a média aritmética e só calcule as médias geométrica e harmônica se tivermos todos os valores da variável positivos e não-nulos.

  • Num certo momento do passado, o governo resolveu calcular os índices oficiais de inflação a partir do uso de médias geométricas dos preços dos produtos num dado período, quando no período anterior esses preços tinham sido obtidos através de média aritmética. Discuta uma possível razão para justificar esse procedimento.

5 - Medidas de Centralidade III: mediana e moda

Para os desenvolvimentos a seguir use a notação: * \(X\) representa uma variável quantitativa assumindo valores \(X_1\), \(X_2\),…, \(X_n\) * \(n\) representa o número de observações

5.1 Mediana

A mediana é uma medida de centralidade que depende da ordenação dos dados. Ela captura a idéia de valor que está localizado no “meio” dos dados ordenados. Sua obtenção depende do número de observações \(n\) ser par ou ímpar.

  • caso ímpar: ordene os dados e selecione o valor central como mediana
  • caso par: ordene os dados e tire a média dos 2 valores centrais

Exemplo de cálculo da mediana

x<-c(-1,4,0,6,5)  ## número de observação é impar (valor central)
sort(x) ## ordenando x
## [1] -1  0  4  5  6
## o valor central será o terceiro valor na ordem, ou seja 4
x<-c(-1,4,0,3,6,5)  ## número de observação é par (valor central)
sort(x) ## ordenando x
## [1] -1  0  3  4  5  6
## o resultado será a média do terceiro valor e quarto valor na ordem, 3 e 4, ou seja 3,5

5.2 Fazendo uma função no R para obter a mediana

Inicialmente, vamos criar uma função para testar se um dado número é par ou ímpar, pois o procedimento (o algorítmo) para calcular a mediana depende de sabermos se o número de observações é par ou ímpar.

Para tanto vamos utilizar um operador que obtem o “resto” da divisão inteira uma dada operação. Por exemplo, o resto da divisão inteira de 4 por 2 é 0, e o resto da divisão inteira de 5 por 2 é 1. O operador que retorna o resto é “%%”. Para números pares, o resto da divisão por 2 será sempre zero. Com isso podemos criar uma função “numpar” que retorne valor TRUE caso o número seja par, usando:

numpar<-function(x){
  if(x%%2==0) {TRUE} else {FALSE}
}

ou, simplesmente,

numpar<-function(x){
  x%%2==0
}

Testando a nova função:

numpar(4)
## [1] TRUE
numpar(9)
## [1] FALSE

Com o apoio dessa “nova” função vamos definir a função “mediana”:

mediana<-function(x){
  n<-length(x)
  y<-sort(x)
  if(numpar(n)){
      (y[n/2]+y[n/2+1])/2
  } else {
      y[floor(n/2)+1]
  } 
}

A função “floor” utilizada na definição da função “mediana”, retorna a parte inteira, de um número que pode ter decimais (ex: floor(5.2) é 5). Observe, na definição da função, como obter a posição da mediana, no vetor ordenado \(y\), nos casos em que \(n\) é par ou é ímpar.

Teste da função mediana criada com os exemplos utilizados no início do tópico:

mediana(c(-1,4,0,6,5))
## [1] 4
mediana(c(-1,4,0,3,6,5))
## [1] 3.5

Comparando a mediana e média aritmética como medidas de centralidade

A mediana é claramente mais “robusta” com relação a valores errados no conjunto de dados que a média, ou seja, é menos afetada por esses valores, algo que pode ser desejável, algo que já vimos anteriormente.

Do ponto de vista teórico, contudo, as 2 medidas refletem 2 noções de centralidade diferentes.

  • média aritmética: valor \(c\), na fórmula abaixo, que “minimiza” a soma das distâncias (em módulo) entre cada observação da variável e \(c\), elevadas ao quadrado, ou seja, \[\DeclareMathOperator*{\argmin}{argmin} \bar X = \argmin_c \sum_{i=1}^n (X_i-c)^2\]

  • mediana: valor \(c\), na fórmula abaixo, que “minimiza” a soma dos valores absolutos (módulos) das distâncias entre cada observação da variável e \(c\), ou seja, \[\mbox{mediana de X} = \argmin_c \sum_{i=1}^n |X_i-c|\]

Nos dois casos, o resultado da função \(\mbox{argmin}\) é valor da variável definida abaixo do nome da função (no caso a variável \(c\)) que levará a expressão correspondente ao menor valor possível (também chamado de mínimo global).

5.3 Moda

A moda é mais facilmente entendida no contexto de variáveis quantitativas discretas com poucos valores diferentes, ou mesmo no contexto de variáveis qualitativas ou categóricas.

  • Moda: indica o valor que ocorre com mais frequência, no caso de variáveis quantitativas discretas, ou a classe mais frequente, no caso de variáveis qualitativas. No caso de variáveis quantitativas contínuas, uma definição operacional será apresentada quando for introduzida a noção de distribuição contínua e sua estimativa.

No contexto apresentado, encontrar a moda seria encontrar o valor ou nome da classe que ocorre com mais frequência. Por exemplo, no data frame “alunos” poderíamos encontrar a moda da idade dos alunos utilizando o comando table para visualizar o valor mais frequente, usando:

table(alunos$ida)
## 
## 18 19 20 21 22 23 24 27 
##  1 14 17  8 12  2  1  1

que seria a idade 20 anos, com 17 alunos. Para o time de futebol, no contexto do mesmo data frame, temos

table(alunos$tim)
## 
##  c  n  o  p  s  t 
## 12 11  2 13  4 14

podendo-se concluir que o time “modal” tem código “t” (São Paulo), com 14 alunos torcendo para esse time.

Pode ocorrer, em alguns casos, que exista 2 ou mais classes ou valores modais.

5.4 Definição de uma função no R para obtenção da “moda”

Uma função para obtenção da moda, no caso de variáveis quantitativas discretas ou variáveis categóricas, no contexto indicado nos últimos parágrafos, envolve a apresentação do valor ou nome da categoria modal. Uma possível alternativa seria

moda<-function(x){
  names(which.max(table(x)))
}

A função “which.max” retorna a posição do valor ou categoria que tem a frequência absoluta máxima e a função “names” retorna o nome desse valor ou categoria. Assim atingiríamos o objetivo desejado. Vamos agora testar essa nova função:

moda(alunos$ida)
## [1] "20"
moda(alunos$tim)
## [1] "t"

Essa função tem um defeito. Só apresenta 1 moda, mesmo que exista mais de 1 moda (casos multimodais). Uma versão mais elaborada é apresentada a seguir

moda<-function(x){
  val<-max(table(x)) ## acha o máximo valor absoluto
  names(table(x)[table(x)==val])
}

que produzirá o resultado desejado numa situação multimodal (e também unimodal):

moda(c(1,2,3,2,2,4,5,3,3,4,5))
## [1] "2" "3"

5.5 Exercícios recomendados

  • Calcule a média aritmética e a mediana da altura dos alunos, com os valores das observações 4, 5 e 8, substituídos por 1,70. Use uma variável auxiliar para não substituir os valores na variável “alunos$alt” definida no data frame. Observe como a média é muito mais afetada que a mediana, com a ocorrência de valores errados. Obtenha a média aritmética, mas usando a opção trim=0.10, ou seja, eliminando 10% das observações com menores e maiores valores. Compare os resultados.

6 - Medidas de posição: mínimo, máximo, ordem, percentis, quantis e quartis

Os tópicos anteriores apresentaram medidas de centralidade. Também há interesse em estatística, na caracterização de medidas que capturem, de uma forma geral, a noção de posição dentro de um conjunto de dados. Essa descrição da posição pode ser obtida através de noções como máximo, mínimo, ordem, percentis, quantis e quartis, que serão vistas a seguir.

6.1 Máximo, mínimo e posição (ordinal)

Dentro desse contexto, a situação mais óbvia é a noção de máximo e mínimo valores, assim como valores associados a uma posição de ordem definida (ex. terceiro maior valor ou penúltimo menor valor).

Essas noções podem ser obtidas através da função “min”, “max” e uso conveniente da função “sort”, como no exemplo a seguir:

max(alunos$alt) ## achando o máximo valor de altura
## [1] 201
min(alunos$alt) ## achando o mínimo valor de altura
## [1] 154
sort(alunos$alt)[1:5] ## encontrando os 5 menores valores (na ordem)
## [1] 154 155 160 160 160
sort(alunos$alt)[length(alunos$alt)-1] ## altura do segundo mais alto
## [1] 190

6.2 Percentil, quantil e quartil

Uma das medidas de centralidade vistas em tópico anterior foi a mediana, que informa o valor central de um de dados ordenados, obtido a partir de um algorítmo definido, que depende do número de observações. A mediana, segundo uma ótica mais geral, é um número que deixa 50% dos valores dos dados abaixo abaixo desse número. Generalizando-se essa noção pode-se ter interesse em números que atendam a essa propriedade para outros valores de percentagem. Esse é o objetivo do percentil. Outras medidas, como quantil e quartil são definidas a partir desses conceitos.

  • percentil p%: valor definido de forma a deixar \(p\%\) das observações de uma variável iguais ou abaixo desse valor.

  • quantil p: valor que deixa \(p\) das observações de uma variável iguais ou abaixo desse valor. Nada mais é que o percentil caracterizado a partir de uma taxa (ex. o quantil 0,1 corresponde ao percentil 10%). É um conceito fundamental que deve ser muito bem entendido pelo aluno.

  • quartis 0, 1, 2, 3, 4: correspondem, respectivamente aos percentis 0%, 25%, 50%, 75% e 100%, notando que convencionalmente, os percentis 0% e 100% são definidos pelo mínimo e pelo máximo valor. A mediana corresponde ao quartil 2, percentil 50% ou quantil 0,5.

A definição geral de uma função para encontrar percentis ou quantis depende de um algorítmo relativamente trabalhoso, que não será discutido aqui (lembre que para a mediana, havia duas possibilidades, quando tínhamos um número par ou ímpar de observações, aqui existirão muitas outras possibilidades).

Implementação no R da obtenção do quantil (função “quantile”)

O R tem uma função pré-definida que possibilita a obtenção desses conceitos com facilidade, chamada “quantile” que é exemplificada a seguir.

quantile(alunos$alt,0.9)
## 90% 
## 180
quantile(alunos$alt,c(0,0.25,0.5,0.75,1))
##     0%    25%    50%    75%   100% 
## 154.00 165.00 172.50 175.25 201.00

Inicialmente, encontramos o quantil 0,9 da altura dos alunos (“alunos$alt”). Num segundo momento, os quantis 0, 0,25, 0,5, 0,75 e 1, que correspondem aos quartis 0, 1, 2, 3, 4.

6.3 números de Tuckey (função “fivenum”)

Uma outra alternativa para obter diretamente os quartis 0 a 4 é dada pela função “fivenum”:

fivenum(alunos$alt)
## [1] 154.0 165.0 172.5 175.5 201.0

Esses 5 valores, correspondentes aos quartis 0 a 4, são chamados 5 números de Tuckey, em alusão ao influente estatístico John Tuckey, que preconizou o uso desses valores para caracterização de dados, e apresentação destes em um gráfico que será visto no próximo módulo, denominado “box plot”.

Os 5 números de Tuckey são convenientes para dividir uma variável de interesse em 4 regiões, dentro das quais ficarão contidos, aproximadamente, 25% dos valores. São muito usados como critério objetivo para criação de uma variável qualitativa a partir de variáveis quantitativas, com 4 categorias.

A seguir, mostramos um exemplo, em que os alunos são divididos em 4 categorias de altura, a partir dos 5 números de Tuckey e uso da função “cut”“, já vista anteriormente, designadas por”D“,”C“,”B" e “A”, com a categoria “A” contendo os alunos mais altos, numa variável denominada “cataltura”:

fivenum(alunos$alt)
## [1] 154.0 165.0 172.5 175.5 201.0
cataltura<-cut(alunos$alt,breaks=fivenum(alunos$alt),include.lowest=TRUE)
table(cataltura)
## cataltura
## [154,165] (165,172] (172,176] (176,201] 
##        18        10        14        14
levels(cataltura)<-c("D","C","B","A")
table(cataltura)
## cataltura
##  D  C  B  A 
## 18 10 14 14

6.4 Exercícios recomendados

  • Crie uma função chamada “setenum” que mostre 7 números que caracterizam os percentis 0%, 1%, 25%, 50%, 75%, 99% e 100%. Teste essa função com na variável “alunos$pes” e “alunos$alt”

  • Usando os 7 números do exercício anterior, crie uma variável categórica “cataltura2”, com 6 categorias de altura, designadas de “F” até “A”, com “A” representando os valores mais elevados. Quantos alunos estão nas categorias “F” e quantos na “B”?