Código
| Clube | Freq_Relativa |
|---|---|
| Benfica | 40% |
| Sporting | 30% |
| Porto | 30% |
ISPA
Cristina Mendonça
ISPA; WJCR
Vitória Melita
FP-UL
Mariona Pascual Peñas
UIB
João Raposo
ISPA
Marta Barros
FP-UL
A estatística descritiva, como o nome indica, ajuda-nos a descrever os dados
É uma forma de apresentarmos um ou mais sumários dos dados
Como qualquer sumário tem como objectivo facilitar a leitura, mas implica perda de informação
Frequência absoluta: \(n_{i}\) = Total de observações com esse valor
Frequência relativa: \(f_{i}\) = Proporção/percentagem de observações com o valor
Frequência acumulada:
O elemento mais comum (i.e., frequente):
Possível para todos os tipos de variáveis
Mais informativa para variáveis nominais
bimodal: distribuição com duas modas
plurimodal: distribuição com mais de duas modas
\[Me = \cases{ímpar: x_{\frac{(n+1)}{2}} \\ \\ par: \frac{x_{\frac{n}{2}} + x_{\frac{n}{2}+1}}{2}}\]
\(M = \overline{x} = \frac{\displaystyle\sum_{i = 1}^n x_i}{N}\)
O centro de massa da distribuição
Possível apenas para variáveis quantitativas (formalmente falando)
Mais informativa para variáveis quantitativas
Muito sensível a valores extremos/outliers
Se as variáveis seguem uma distribuição, quais as localizações/pontos importantes?
Quartis, partem a distribuição em quatro partes:
Quantis, partem a distribuição num x número de partes (os quartis e os percentis são o tipo mais conhecido de quantil)
Se as variáveis variam, como medimos quanto variam?
Verão nas fórmulas que tendem a ser distâncias entre pontos da distribuição, ou médias de distâncias entre cada observação e uma medida de tendência central
\(A = max - min\)
Distância entre o máximo e mínimo da distribuição
Apenas válida para variáveis ordinais ou quantitativas, aquelas que têm ordem, podendo ter um máximo e um mínimo
\(AIQ = Q3 - Q1\)
Distância entre o quartil um e o quartil três.
Apenas válida para variáveis ordinais ou quantitativas, aquelas que têm ordem, aquelas para as quais conseguimos calcular a mediana (o Q2)
Desvio absoluto médio:
\(MAD = \frac{\displaystyle\sum_{i=1}^n|(x_i - \overline{x})|}{N}\)
A média dos desvios absolutos em relação à média
Apenas válido (formalmente) para variáveis quantitativas, aquelas para as quais calculamos a média
Desvio absoluto mediano:
\(MAD = mediana(|x_i - \tilde{x}|)\)
A mediana dos desvios absolutos em relação à mediana
Apenas válida para variáveis ordinais ou quantitativas, aquelas que têm ordem, aquelas para as quais conseguimos calcular a mediana (o Q2)
\(S^2 = \frac{\displaystyle\sum_{i=1}^n(x_i - \overline{x})^2}{N}\)
\(S'^2 = \frac{\displaystyle\sum_{i=1}^n(x_i - \overline{x})^2}{N - 1}\)
A média das distâncias quadradas à média
Diz-nos quão distantes as observações tendem a estar da média
Não está na mesma unidade de medida da variável, mas sim no quadrado da sua medida, tornando-a difícil de interpretar
Apenas válida (formalmente) para variáveis quantitativas, aquelas para as quais calculamos a média
\(S = \sqrt{\frac{\displaystyle\sum_{i=1}^n(x_i - \overline{x})^2}{N}}\)
\(S' = \sqrt{\frac{\displaystyle\sum_{i=1}^n(x_i - \overline{x})^2}{N - 1}}\)
O desvio padrão é a raiz quadrada da média das distâncias quadradas de cada observação à média
Diz-nos quão distantes as observações tendem a estar da média
Está na mesma unidade de medida da variável
Apenas válida (formalmente) para variáveis quantitativas, aquelas para as quais calculamos a média

Enviesamento da distribuição (o desenho diz tudo)
Pode ser calculada para variáveis ordinais e quantitativas
Existem várias fórmulas (adequadas para diferentes tipos de variáveis)

Achatamento ou alongamento da distribuição
Pode ser calculada para variáveis ordinais e quantitativas
Existem várias fórmulas (adequadas para diferentes tipos de variáveis)
Leptocúrtica: kurtose positiva
Mesocúrtica: Kurtose = 0
Platicúrtica: Mais achatada, kurtose negativa
Qualquer sumário perde informação, mas a ausência de sumário e organização torna a informação ininteligível
Ao reportarmos mais que um sumário conseguimos resumir a informação, sem ignorarmos aspectos cruciais dos dados
A categorização das variáveis é indispensável para saber como as descrever
Devemo evitar ficar hiper-focados nos outputs de testes de hipóteses, sem conhecer e saber descrever os dados
Os gráficos podem ser considerados parte da estatística descritiva, resumindo os nossos dados de forma visual (enquanto estatísticas descritivas como a média e desvio-padrão, resumem os dados de forma numérica).
Os livros de estatística tradicionais (e.g., Marôco, 2020) costumam especificar qual o tipo de gráficos que é adequado para cada tipo de escala de medida das variáveis (e.g., qualitativa ordinal, quantitativa contínua, etc.). Por vezes salientam que há representações gráficas que costumam ser sobrepostas num só gráfico (e.g., que a curva da distribuição normal é frequentemente sobreposta a um histograma). Contudo, as capacidades gráficas dos computadores e dos programas estatísticos evoluíram muito rapidamente e creio que os manuais estatísticos nem sempre os acompanharam. Penso também que é importante distinguir Estatística (enquanto área do saber) de análise de dados, que é algo mais prático/técnico. Quando olhamos para recursos mais direccionados a analistas de dados, creio que se percebe o destaque e importância que dão à visualização dos dados.
Um bom exemplo disto são os capítulos de visualização de dados de Wicham e colaboradores (2023).
Os gráficos permitem-nos comunicar muita informação, muito rapidamente, duma forma visual e até intuitiva. Dito isto, a importância dos gráficos vai para além do seu poder enquanto ferramentas de comunicação científica/técnica. Os gráficos ajudam-nos a reparar em possíveis padrões dos nossos dados que não seriam (pelo menos facilmente) identificados de forma numérica (ver Matejka & Fitzmaurice, 2017)).
Já que as imagens valem mais do que mil palavras recomendo que olhem para a página abaixo que ilustra interactivamente os resultados de Matejka e Fitzmaurice (2017).
Incluir todos os valores da escala da variável
Escolher o gráfico que é capaz de descrever os aspectos mais relevantes da variável, dado o problema de investigação e os nossos dados
A escala de medida das variáveis, ajuda-nos a perceber quais os gráficos que são mais adequados para as representar
Ajustar o gráfico ao público alvo da comunicação
Adequado para variáveis categóricas nominais ou ordinais
Com variáveis ordinais devemos ordenar as categorias na ordem da menor para a maior
| Clube | Freq_Relativa |
|---|---|
| Benfica | 40% |
| Sporting | 30% |
| Porto | 30% |
library(ggplot2)
ds$Percent <- gsub("%", "", ds$Freq_Relativa)
ds$Percent <- as.numeric(ds$Percent)
ggplot(ds, aes(x = "", y = Percent, fill = Clube)) +
geom_bar(stat = "identity", width = 1) +
geom_text(aes(label = Freq_Relativa), position = position_stack(vjust = 0.5)) +
coord_polar("y", start = 0) +
scale_fill_manual(values = c("Benfica" = "#F8766D", "Porto" = "#619CFF",
"Sporting" = "#00BA38")) +
theme_void()ds <- data.frame(Clube = c("Benfica", "Sporting", "Porto"),
Freq_Absoluta = c(8, 6, 6))
kable(ds)| Clube | Freq_Absoluta |
|---|---|
| Benfica | 8 |
| Sporting | 6 |
| Porto | 6 |
ggplot(ds, aes(x = Clube, y = Freq_Absoluta, fill = Clube)) +
geom_bar(stat = "identity", position = position_dodge()) +
ylab("Count") +
scale_fill_manual(values = c("Benfica" = "#F8766D", "Porto" = "#619CFF",
"Sporting" = "#00BA38")) +
theme_classic()Se em vez de contagens as barras corresponderem, por exemplo, a médias, esse gráfico de barras já será adequado apenas para variáveis quantitativas
Podemos adicionar bigodes com margens de erro (e.g., M +/- EP ou DP)
Por convenção, as barras tendem a aparecer separadas para distinguir do histograma
ds <- data.frame(ID = paste0("pp0", 1:10),
Resposta = c("Concordo", "Concordo totalmente",
"Concordo", "Discordo", "Nao concordo nem discordo",
"Discordo", "Discordo", "Discordo totalmente",
"Concordo totalmente", "Concordo totalmente"))
ds$ID[10] <- "pp10"
ds$Valor <- factor(ds$Resposta,
levels = c("Discordo totalmente", "Discordo",
"Nao concordo nem discordo",
"Concordo", "Concordo totalmente"),
labels = c(1:5), ordered = TRUE)
ds$Valor <- as.numeric(ds$Valor)
kable(ds)| ID | Resposta | Valor |
|---|---|---|
| pp01 | Concordo | 4 |
| pp02 | Concordo totalmente | 5 |
| pp03 | Concordo | 4 |
| pp04 | Discordo | 2 |
| pp05 | Nao concordo nem discordo | 3 |
| pp06 | Discordo | 2 |
| pp07 | Discordo | 2 |
| pp08 | Discordo totalmente | 1 |
| pp09 | Concordo totalmente | 5 |
| pp10 | Concordo totalmente | 5 |
ggplot(ds, aes(y = Valor)) +
geom_boxplot() +
theme_classic() +
theme(axis.title.x = element_blank(), axis.text.x = element_blank())Q1 <- quantile(ds$Valor, 0.25)
Q3 <- quantile(ds$Valor, 0.75)
iqr <- IQR(ds$Valor)
lower <- max(min(ds$Valor), Q1 - (1.5 * iqr))
upper <- min(max(ds$Valor), Q3 + (1.5 * iqr))
ggplot(ds, aes(y = Valor)) +
geom_boxplot() +
geom_errorbar(aes(x = 0.4, ymin = Q1, ymax = Q3),
width = 0.025, color = "darkgreen") +
annotate("text", x = 0.45, y = median(ds$Valor), label = "AIQ",
color = "darkgreen") +
annotate("text", x = 0, y = median(ds$Valor) + 0.1, label = "Q2/Mediana",
color = "darkgreen") +
annotate("text", x = 0, y = Q1 + 0.1, label = "Q1",
color = "darkgreen") +
annotate("text", x = 0, y = Q3 - 0.1, label = "Q3",
color = "darkgreen") +
annotate("text", x = 0, y = lower - 0.1,
label = "Barreira inferior = max(Min, Q1 - (1.5 x AIQ))",
color = "darkgreen") +
annotate("text", x = 0, y = upper + 0.1,
label = "Barreira superior = min(Max, Q3 + (1.5 x AIQ))",
color = "darkgreen") +
theme_classic() +
theme(axis.title.x = element_blank(), axis.text.x = element_blank())ds <- data.frame(xi = 1:10, Var = rnorm(10, 20, 8))
ds$Var <- as.character(round(ds$Var, 2))
kable(ds)| xi | Var |
|---|---|
| 1 | 9.24 |
| 2 | 7.21 |
| 3 | 27.11 |
| 4 | 13.1 |
| 5 | 23.91 |
| 6 | 37.69 |
| 7 | 17.77 |
| 8 | 22.92 |
| 9 | 38.26 |
| 10 | 17.79 |
ds$Var <- as.numeric(ds$Var)
hist(ds$Var, xlab = "Var", main = "Histogram of Var")Adequado para variáveis quantitativas contínuas
Definimos intervalos iguais na escala da variável a descrever
As barras tendem a aparecer coladas para o distinguir dos gráficos de barras
ds <- data.frame(id = 1:10000, Var = rnorm(10000))
ggplot(ds, aes(x = Var)) + geom_density(fill = "orange") + theme_classic()Adequado para variáveis quantitativas contínuas (ou, menos formalmente, discretas com muitos níveis)
Mostra a distribuição dos dados de forma clara
Conhecidos mais formalmente como kernel density estimate plot
ds <- data.frame(id = 1:100, Var = rnorm(100))
ggplot(ds, aes(x ="", y = Var)) +
geom_violin(draw_quantiles = c(.25, .5, .75), fill = "orange") +
geom_point() +
stat_summary(fun.y = mean, size = 1.5, fill = "white", color = "white") +
theme_classic()Adequado para variáveis quantitativas contínuas (ou, menos formalmente, discretas com muitos níveis)
Pode incluir as linhas dos quartis, representando a mesma informação que o boxplot, ao mesmo tempo que mostra a distribuição dos dados
É uma mistura entre um boxplot e um gráfico de densidade
Pode incluir o boxplot sobreposto no meio do violino, e/ou pontos com as observações, e/ou um ponto com a média
Podemos representar e explorar relações entre variáveis:
Usando diagramas de dispersão/scatter plots
Separando os gráficos que já vimos em função de variáveis qualitativas
É importante explorarmos visualmente o padrão e não olhar só para os resultados dum tipo de modelos (e.g., lineares)
ds <- data.frame(a = 1:100)
ds$b <- 1 + ds$a * 0.5 + rnorm(100, 0, 20)
ggplot(ds, aes(x = a, y = b)) + geom_point() + theme_classic()Adequado para variáveis ordinais e quantitativas
Muito úteis para quando falarmos de correlações, regressões, etc…
ds <- data.frame(Clube = c(rep("Benfica", 3), rep("Sporting", 3), rep("Porto", 3)),
Resultado = rep(c("Vitorias", "Empates", "Derrotas"), 3),
Total = c(15, 20, 2, 10, 25, 2, 20, 10, 7))
ggplot(ds, aes(x = Resultado, y = Total)) +
geom_bar(aes(fill = Clube), stat = "identity", position = position_dodge2()) +
scale_fill_manual(values = c("Benfica" = "#F8766D", "Porto" = "#619CFF",
"Sporting" = "#00BA38")) +
theme_classic()ds <- data.frame(Grupo = c(rep("Controlo", 50), rep("Experimental", 50)),
Resposta = c(rnorm(50, 3, 1), rnorm(50, 4, 1)))
ggplot(ds, aes(x = Grupo, y = Resposta, fill = Grupo)) +
geom_boxplot() +
theme_classic()ggplot(ds, aes(x = Grupo, y = Resposta, fill = Grupo)) +
geom_violin(draw_quantiles = c(.25, .5, .75)) +
geom_point() +
stat_summary(fun.y = mean, size = 1.5, fill = "white", color = "white") +
theme_classic()ggplot(ds, aes(x = Resposta, group = Grupo, color = Grupo, fill = Grupo)) +
geom_histogram(aes(y = stat(density))) +
geom_density(fill = NA, color = "black") +
geom_density(fill = NA, linetype = "dashed") +
theme_classic()ggplot(ds, aes(x = Resposta, fill = Grupo)) +
geom_density(alpha = 0.5) +
theme_classic()Conseguimos ver se há diferenças quer a nível da tendência central, quer a nível da dispersão entre os grupos
Um insight importante é perceber que mesmo quando os grupos diferem há muita sobreposição (quando falarmos de comparações de grupos lembrem-se disto…)
Há muito mais gráficos para além dos que falámos hoje
Com as capacidades gráficas dos computadores a aumentar vão surgindo interessantes combinações de vários tipos de gráficos
O ggplot2 é um pacote do R que permite criar gráficos apelativos compondo vários elementos (e.g., sobrepondo pontos a um violino; sobrepor anotações em texto a um gráfico)
O tutorial gráficos no R explica como usar o as funções base do R, bem como o pacote ggplot2 para representar graficamente os nossos dados.