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
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"
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
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.
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
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.
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.
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).
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).
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”?
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}\)
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.
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)
É 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):
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.
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.
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.
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”.
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.
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
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.
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
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
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).
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.
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.
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"
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.
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
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).
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.
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
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”?