Questão 04
Faça agora boxplots para cada variável numérica da base de dados. Utilze a função abaixo:
boxplot()
boxplot()
Passo 1
O enunciado pede que eu “faça boxplots para cada variável numérica da base de dados” usando a função
boxplot(). As informações fornecidas são apenas essa instrução e o nome da função. Não foi enviada a base de dados (o data frame) nem seus nomes de variáveis. Portanto, eu não consigo gerar imagens aqui porque preciso dos dados para rodar o código e produzir os gráficos. Vou então explicar passo a passo (com código R pronto para você copiar e colar) como fazer os boxplots para cada variável numérica da sua base, como tratar casos comuns (NA, variáveis não numéricas, muitas variáveis), e como interpretar o resultado na prova.Passo 2
O que é um boxplot e o que ele mostra (aula rápida e prática)
- Um boxplot (diagrama de caixa) resume a distribuição de uma variável numérica mostrando: mediana, quartis, intervalo interquartílico (IQR), “bigodes” (whiskers) e pontos fora (outliers).
- Definições práticas:
Os “bigodes” chegam até o ponto mais extremo dentro de
a partir de
e
. Pontos além disso aparecem como outliers.
- Por que usar boxplot na prova: rápido para comparar dispersão, assimetria e outliers entre variáveis.
Passo 3
Como identificar variáveis numéricas em R (fundamental antes de plotar)
- Se sua base estiver num objeto chamado
df, você pode identificar colunas numéricas com:
num_cols <- sapply(df, is.numeric)
names(num_cols)[num_cols]
- Explicação:
sapply(df, is.numeric)aplicais.numerica cada coluna e retorna um vetor lógico indicando quais são numéricas. Em prova, saber aplicarsapplyouvapplyé útil para selecionar colunas rapidamente.
Passo 4
Preparação básica dos dados: remover colunas não numéricas e tratar
NA- Código recomendado para extrair apenas as numéricas e remover colunas que ficariam vazias:
df_num <- df[, sapply(df, is.numeric), drop = FALSE]
- Se houver
NA, a funçãoboxplot()lida comNApor padrão (ignora-os), mas é bom saber quantosNAexistem:
colSums(is.na(df_num))
- Se preferir remover linhas com
NAantes de cada boxplot:
df_num_complete <- na.omit(df_num)
- Observação didática:
na.omit()remove linhas com qualquerNA. Em algumas provas é importante justificar porque você removeu dados (pode enviesar), então muitas vezes apenas deixarboxplot()ignorarNAé suficiente.
Passo 5
Fazer boxplots de todas as variáveis numéricas em um único gráfico (lado a lado)
- Código direto usando
boxplot()que plota todas as colunas numéricas lado a lado:
boxplot(df_num, main = "Boxplots das variáveis numéricas",
ylab = "Valores", las = 2)
- Explicação dos argumentos:
df_num: um data frame com apenas colunas numéricas;boxplot()aceita um data frame e criará um boxplot por coluna.main: título do gráfico.ylab: rótulo do eixo y.las = 2: rotaciona labels do eixo x para vertical (útil quando há muitos nomes).
- Dica prática para a prova: se pedir “faça boxplots para cada variável”, normalmente esperam um gráfico com todas as variáveis lado a lado ou boxplots separados; este comando atende ao pedido com mínimo de código.
Passo 6
Fazer boxplots separados (um por vez) — útil quando há muitas variáveis
- Em vez de um único gráfico com muitas caixas, pode-se gerar vários arquivos (ou várias páginas) com um loop:
for (nm in names(df_num)) {
boxplot(df_num[[nm]], main = paste("Boxplot de", nm),
ylab = nm)
}
- Explicação:
df_num[[nm]]pega a coluna como vetor numérico;paste()constrói o título. Em RStudio esse loop gera vários plots que você pode navegar.
Passo 7
Personalizações importantes e como mostrar outliers/não mostrá-los
- Mostrar notches (para comparar medianas com intervalo de confiança):
boxplot(df_num, notch = TRUE, col = "lightblue")
- Remover pontos de outlier do gráfico (não recomendado para análise, mas às vezes pedido):
boxplot(df_num, outline = FALSE)
outline = TRUE(padrão) mostra os outliers.coldefine cor das caixas. Em prova, saiba explicar quenotch = TRUEdá uma noção de diferença de medianas: se as notches não se sobrepõem, há evidência de diferença entre medianas.
Passo 8
Gráficos horizontais e combinação com fórmulas (útil para comparar por grupo)
- Horizontal:
boxplot(df_num, horizontal = TRUE)
- Se quiser boxplots de uma variável numérica por níveis de uma variável categórica
grupo(ex.:df$grupo), use a fórmula:
boxplot(valor ~ grupo, data = df, main = "Valor por grupo",
xlab = "Grupo", ylab = "Valor")
- Explicação da fórmula:
valor ~ gruposignifica “plotevalorseparado por níveis degrupo”.
Passo 9
Salvar os gráficos em arquivo (PNG, PDF) — rodar fora da interface gráfica
- Salvar todos os boxplots em um arquivo PDF:
pdf("boxplots_numericas.pdf", width = 10, height = 6)
boxplot(df_num, main = "Boxplots das variáveis numéricas", las = 2)
dev.off()
- Ou salvar cada variável em um PNG dentro do loop:
for (nm in names(df_num)) {
png(filename = paste0("boxplot_", nm, ".png"), width = 800, height = 600)
boxplot(df_num[[nm]], main = paste("Boxplot de", nm), ylab = nm)
dev.off()
}
- Em prova, se pedirem entregar figuras, gere arquivos assim e anexe.
Passo 10
Como interpretar os boxplots na hora da prova (passos práticos)
- Olhe a mediana (linha dentro da caixa): posição central indica assimetria.
- Olhe o IQR (tamanho da caixa): quanto maior, mais dispersão central.
- Observe os bigodes: se são muito longos em um lado, há assimetria.
- Pontos isolados são outliers — anote-os e, se solicitado, relacione com valores extremos da amostra.
- Se comparar variáveis, compare medianas e IQRs; se usar
notch = TRUE, use a sobreposição de notches como indicação visual de diferença de medianas (não é teste formal, mas é aceita em provas como evidência inicial).
Passo 11
Erros comuns e dicas rápidas para a prova
- Erro: tentar aplicar
boxplot()em colunas comcharacteroufactorsem fórmula — solução: selecione somente numéricas. - Erro: nomes longos de colunas sobrepostos — use
las = 2oucex.axispara ajustar tamanho. - Dica: copie e cole os comandos prontos acima e comente cada linha se precisar justificar no relatório de prova.
- Incentivo: não pira! Fazer um boxplot é rápido e mostra muita informação; com os comandos acima você resolve a maioria das questões.
Resposta
Não é possível gerar os boxplots aqui porque a base de dados não foi fornecida; execute um dos comandos abaixo no R usando o seu data frame (substitua
df pelo nome do seu data frame):- Para todas as variáveis numéricas lado a lado:
df_num <- df[, sapply(df, is.numeric), drop = FALSE]
boxplot(df_num, main = "Boxplots das variáveis numéricas", ylab = "Valores", las = 2)
- Para boxplots separados por coluna (loop):
df_num <- df[, sapply(df, is.numeric), drop = FALSE]
for (nm in names(df_num)) {
boxplot(df_num[[nm]], main = paste("Boxplot de", nm), ylab = nm)
}