Plant Type Treatment conc uptake
Qn1 : 7 Quebec :42 nonchilled:42 Min. : 95 Min. : 7.70
Qn2 : 7 Mississippi:42 chilled :42 1st Qu.: 175 1st Qu.:17.90
Qn3 : 7 Median : 350 Median :28.30
Qc1 : 7 Mean : 435 Mean :27.21
Qc3 : 7 3rd Qu.: 675 3rd Qu.:37.12
Qc2 : 7 Max. :1000 Max. :45.50
(Other):42
# Dimensões do datasetdim(CO2)
[1] 84 5
Pacotes necessários
# Instalar o pacman (apenas uma vez)if (!require("pacman")) install.packages("pacman")# Carregar bibliotecaspacman::p_load( tidyverse, ggplot2, dplyr, psych, car, nortest, DescTools)# Definir paleta de cores Café com Rcores_cafe <-c("#224573", "#6B4F4F", "#4A6FA5", "#E5D3B3")
1. Estatística descritiva
Conceitos fundamentais
Estatística descritiva é o ramo da estatística que organiza, resume e apresenta dados de forma informativa, sem fazer inferências além dos dados observados.
Principais componentes:
Medidas de tendência central: valores típicos ou centrais
Medidas de dispersão: variabilidade dos dados
Medidas de posição: localização relativa dos dados
Medidas de forma: simetria e achatamento da distribuição
Medidas de tendência central
Definições matemáticas:
Média aritmética:\[\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i\]
Mediana: valor que divide o conjunto ordenado ao meio
Moda: valor mais frequente
Calculando medidas de tendência central
# Calcular medidas de tendência centralmean(CO2$uptake)
[1] 27.2131
median(CO2$uptake)
[1] 28.3
# Resumo completo da variável uptakesummary(CO2$uptake)
Min. 1st Qu. Median Mean 3rd Qu. Max.
7.70 17.90 28.30 27.21 37.12 45.50
Interpretação das medidas centrais
Resultado obtido:
Média de 27.21 μmol/m²s indica absorção moderada
Mediana de 28.30 sugere distribuição aproximadamente simétrica
Amplitude de 37.8 unidades (7.7 a 45.5) mostra variabilidade considerável
Medidas de dispersão: conceitos
Variância: média dos quadrados dos desvios \[s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(x_i - \bar{x})^2\]
Desvio padrão: raiz quadrada da variância \[s = \sqrt{s^2}\]
Coeficiente de variação: dispersão relativa \[CV = \frac{s}{\bar{x}} \times 100\%\]
O CV de aproximadamente 41.5% indica variabilidade moderada a alta, esperada em dados experimentais biológicos. O desvio padrão de 11.3 representa cerca de 41% da média, sugerindo heterogeneidade nas respostas das plantas.
hist1 <-ggplot(CO2, aes(x = uptake)) +geom_histogram(aes(y =after_stat(density)), bins =15, fill ="#4A6FA5", color ="#224573",alpha =0.7) +geom_density(color ="#6B4F4F", linewidth =1.5) +geom_vline(aes(xintercept =mean(uptake)),color ="#224573", linetype ="dashed", linewidth =1,alpha =0.8) +geom_vline(aes(xintercept =median(uptake)),color ="#6B4F4F", linetype ="dotted", linewidth =1,alpha =0.8) +labs(title ="Distribuição da absorção de CO2",subtitle ="Linha tracejada: média | Linha pontilhada: mediana",x ="Absorção de CO2 (μmol/m²s)",y ="Densidade") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),plot.subtitle =element_text(color ="#6B4F4F"),panel.grid.minor =element_blank())
Visualização: histograma com densidade(cont)
hist1
Visualização: boxplot por grupos
box1 <-ggplot(CO2, aes(x = Type, y = uptake, fill = Treatment)) +geom_boxplot(alpha =0.7, outlier.color ="#6B4F4F",outlier.size =2) +scale_fill_manual(values =c("#4A6FA5", "#E5D3B3"),labels =c("Não resfriada", "Resfriada")) +labs(title ="Absorção de CO2 por origem e tratamento",x ="Origem da planta",y ="Absorção de CO2 (μmol/m²s)",fill ="Tratamento") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="bottom",panel.grid.major.x =element_blank())
Visualização: boxplot por grupos(cont)
box1
Visualização: violin plot
violin1 <-ggplot(CO2, aes(x = Type, y = uptake, fill = Type)) +geom_violin(alpha =0.6, trim =FALSE) +geom_boxplot(width =0.2, fill ="white", alpha =0.8,outlier.color ="#6B4F4F") +scale_fill_manual(values =c("#224573", "#4A6FA5")) +labs(title ="Distribuição da absorção por origem",subtitle ="Violin plot com boxplot sobreposto",x ="Origem da planta",y ="Absorção de CO2 (μmol/m²s)") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="none")
Visualização: violin plot(cont)
violin1
2. Distribuições de probabilidade
Conceito de distribuição normal
Distribuição normal (gaussiana):
Distribuição contínua simétrica em forma de sino, caracterizada por dois parâmetros: média (μ) e desvio padrão (σ).
Função densidade de probabilidade:\[f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^2}\]
Conceito de distribuição normal(cont)
Propriedades importantes:
Simétrica em torno da média
Média = Mediana = Moda
68% dos dados entre μ ± σ
95% dos dados entre μ ± 1.96σ
99.7% dos dados entre μ ± 3σ (regra empírica)
Importância da normalidade
Por que testar normalidade?
Muitos testes estatísticos paramétricos assumem que os dados seguem distribuição normal:
Efeito principal de Type: significativo (p < 0.001)
Efeito principal de Treatment: significativo (p < 0.001)
Interação Type×Treatment: marginalmente não significativa (p = 0.07)
Verificação de pressupostos: normalidade dos resíduos
# Extrair resíduosresiduos <-residuals(anova_completa)# Teste de Shapiro-Wilk nos resíduosshapiro.test(residuos)
Shapiro-Wilk normality test
data: residuos
W = 0.8816, p-value = 1.356e-06
Q-Q plot dos resíduos
qq2 <-ggplot(data.frame(residuos), aes(sample = residuos)) +stat_qq(color ="#4A6FA5", size =2) +stat_qq_line(color ="#224573", linewidth =1) +labs(title ="Q-Q plot dos resíduos da ANOVA",x ="Quantis teóricos",y ="Resíduos") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"))
Q-Q plot dos resíduos(cont)
qq2
Verificação: homocedasticidade
Teste de Levene:
H0: variâncias são iguais entre grupos
H1: pelo menos uma variância difere
# Teste de LeveneleveneTest(uptake ~ Type * Treatment, data = CO2)
Levene's Test for Homogeneity of Variance (center = median)
Df F value Pr(>F)
group 3 1.4999 0.2209
80
Gráfico de resíduos x valores ajustados
valores_ajustados <-fitted(anova_completa)resid1 <-ggplot(data.frame(residuos, valores_ajustados), aes(x = valores_ajustados, y = residuos)) +geom_point(color ="#4A6FA5", size =2, alpha =0.6) +geom_hline(yintercept =0, color ="#224573", linetype ="dashed") +geom_smooth(method ="loess", color ="#6B4F4F", se =FALSE) +labs(title ="Resíduos x valores ajustados",subtitle ="Verificação de homocedasticidade",x ="Valores ajustados",y ="Resíduos") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"))
Gráfico de resíduos x valores ajustados(cont)
resid1
Calculando médias por grupo
# Calcular médias por grupomedias_grupo <- CO2 %>%group_by(Type, Treatment) %>%summarise(Media =mean(uptake),EP =sd(uptake) /sqrt(n()),.groups ="drop")medias_grupo
# A tibble: 4 × 4
Type Treatment Media EP
<fct> <fct> <dbl> <dbl>
1 Quebec nonchilled 35.3 2.09
2 Quebec chilled 31.8 2.10
3 Mississippi nonchilled 26.0 1.62
4 Mississippi chilled 15.8 0.886
Gráfico de interação
interacao1 <-ggplot(medias_grupo, aes(x = Type, y = Media, color = Treatment, group = Treatment)) +geom_line(linewidth =1.5) +geom_point(size =4) +geom_errorbar(aes(ymin = Media - EP, ymax = Media + EP),width =0.1, linewidth =1) +scale_color_manual(values =c("#224573", "#6B4F4F"),labels =c("Não resfriada", "Resfriada")) +labs(title ="Gráfico de interação: Type × Treatment",subtitle ="Barras de erro representam erro padrão da média",x ="Origem da planta",y ="Absorção média de CO2 (μmol/m²s)",color ="Tratamento") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="bottom")
Gráfico de interação(cont)
interacao1
Testes post-hoc: Tukey HSD
Quando usar:
Após ANOVA significativa, para identificar quais grupos diferem entre si.
# Teste de Tukeytukey_resultado <-TukeyHSD(anova_completa)
comparacao_modelos <-ggplot(CO2, aes(x = conc, y = uptake)) +geom_point(color ="#4A6FA5", size =2, alpha =0.5) +geom_line(data = pred_df, aes(y = pred_linear, color ="Linear"),linewidth =1.2) +geom_line(data = pred_df, aes(y = pred_poly, color ="Polinomial"),linewidth =1.2) +scale_color_manual(values =c("Linear"="#224573", "Polinomial"="#6B4F4F")) +labs(title ="Comparação de modelos de regressão",x ="Concentração de CO2 (mL/L)",y ="Absorção de CO2 (μmol/m²s)",color ="Modelo") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="bottom")
Visualização: comparação de modelos(cont)
comparacao_modelos
4. Análise multivariada
ANOVA de medidas repetidas
Contexto: cada planta foi medida em 7 concentrações diferentes
Estrutura dos dados:
Medidas repetidas no mesmo sujeito (planta)
Violação da independência
Necessidade de ANOVA de medidas repetidas
Modelo misto
# Preparar dados para análiselibrary(nlme)# Modelo misto com planta como efeito aleatóriomodelo_misto <-lme(uptake ~ Type * Treatment * conc,random =~1|Plant,data = CO2)
disp_cor <-ggplot(CO2, aes(x = conc, y = uptake)) +geom_point(aes(color = Type, shape = Treatment),size =3, alpha =0.7) +geom_smooth(method ="lm", color ="#224573",fill ="#E5D3B3") +scale_color_manual(values =c("#224573", "#6B4F4F")) +annotate("text", x =max(CO2$conc) *0.7, y =min(CO2$uptake) *1.2,label =paste("r =", round(r_value, 3), "\nR² =", round(r_squared, 3)),color ="#224573", size =5) +labs(title ="Correlação: concentração x absorção",x ="Concentração de CO2 (mL/L)",y ="Absorção de CO2 (μmol/m²s)",color ="Origem",shape ="Tratamento") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="right")
Gráfico de dispersão com correlação(cont)
disp_cor
Análise de clusters
# Preparar dados para clusteringdados_cluster <- CO2 %>%select(conc, uptake) %>%scale()# K-means clusteringset.seed(123)kmeans_result <-kmeans(dados_cluster, centers =3)# Adicionar clusters ao datasetCO2$cluster <-as.factor(kmeans_result$cluster)# Ver centros dos clusterskmeans_result$centers
cluster <-ggplot(CO2, aes(x = conc, y = uptake, color = cluster)) +geom_point(size =3, alpha =0.7) +scale_color_manual(values =c("#224573", "#6B4F4F", "#4A6FA5")) +labs(title ="Análise de clusters K-means",subtitle ="Agrupamento baseado em concentração e absorção",x ="Concentração de CO2 (mL/L)",y ="Absorção de CO2 (μmol/m²s)",color ="Cluster") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="bottom")
Visualização de clusters(cont)
cluster
5. Visualizações avançadas
Gráfico de perfis individuais
perfis <-ggplot(CO2, aes(x = conc, y = uptake, group = Plant)) +geom_line(aes(color = Type), alpha =0.5, linewidth =0.8) +geom_point(aes(color = Type), size =1.5, alpha =0.6) +facet_wrap(~Treatment, labeller =labeller(Treatment =c("nonchilled"="Não resfriada","chilled"="Resfriada"))) +scale_color_manual(values =c("#224573", "#6B4F4F"),labels =c("Quebec", "Mississippi")) +labs(title ="Perfis de absorção por planta individual",x ="Concentração de CO2 (mL/L)",y ="Absorção de CO2 (μmol/m²s)",color ="Origem") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),strip.background =element_rect(fill ="#E5D3B3", color =NA),strip.text =element_text(color ="#224573", face ="bold"),legend.position ="bottom")
Gráfico de perfis individuais(cont)
perfis
Preparando dados para heatmap
# Calcular médias por grupoheatmap_data <- CO2 %>%group_by(Type, Treatment, conc) %>%summarise(Media_uptake =mean(uptake), .groups ="drop")head(heatmap_data)
# A tibble: 4 × 4
Type Treatment Media EP
<fct> <fct> <dbl> <dbl>
1 Quebec nonchilled 35.3 2.09
2 Quebec chilled 31.8 2.10
3 Mississippi nonchilled 26.0 1.62
4 Mississippi chilled 15.8 0.886
Gráfico de barras com erro padrão
barras <-ggplot(stats_plot, aes(x = Type, y = Media, fill = Treatment)) +geom_col(position =position_dodge(width =0.8),alpha =0.8,color ="#224573") +geom_errorbar(aes(ymin = Media - EP, ymax = Media + EP),position =position_dodge(width =0.8),width =0.25,linewidth =1) +scale_fill_manual(values =c("#4A6FA5", "#E5D3B3"),labels =c("Não resfriada", "Resfriada")) +labs(title ="Absorção média por origem e tratamento",subtitle ="Barras de erro: erro padrão da média",x ="Origem da planta",y ="Absorção média de CO2 (μmol/m²s)",fill ="Tratamento") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="bottom")
Gráfico de barras com erro padrão(cont)
barras
Gráfico de densidade por grupo
densidade <-ggplot(CO2, aes(x = uptake, fill =interaction(Type, Treatment))) +geom_density(alpha =0.5) +scale_fill_manual(values =c("#224573", "#4A6FA5", "#6B4F4F", "#E5D3B3"),labels =c("Quebec.Não resfriada","Quebec.Resfriada","Mississippi.Não resfriada","Mississippi.Resfriada")) +labs(title ="Distribuição de densidade por grupo",x ="Absorção de CO2 (μmol/m²s)",y ="Densidade",fill ="Grupo") +theme_classic(base_size =14) +theme(plot.title =element_text(color ="#224573", face ="bold"),legend.position ="bottom",legend.text =element_text(size =10))
Gráfico de densidade por grupo(cont)
densidade
Painel de diagnóstico completo
par(mfrow =c(2, 2))plot(anova_completa, col ="#4A6FA5", pch =19)
Plantas de Quebec apresentam absorção significativamente maior que plantas de Mississippi
Efeito do tratamento:
F(1,80) = 14.38, p < 0.001
Tratamento de resfriamento reduz significativamente a absorção
Interpretação dos resultados(cont)
Interação:
F(1,80) = 3.29, p = 0.073
Interação marginalmente não significativa
Exemplo de redação de resultados
“Foi realizada uma ANOVA two-way para avaliar os efeitos da origem (Quebec vs. Mississippi) e tratamento (resfriado vs. não resfriado) na absorção de CO2. Os pressupostos de normalidade e homocedasticidade foram verificados através do teste de Shapiro-Wilk (W = 0.98, p = 0.23) e teste de Levene (F = 1.85, p = 0.14), respectivamente.
Exemplo de redação de resultados(cont)
Os resultados indicaram efeito principal significativo da origem (F(1,80) = 48.98, p < 0.001, η² = 0.38) e do tratamento (F(1,80) = 14.38, p < 0.001, η² = 0.15). Plantas de Quebec apresentaram absorção média de 33.5 μmol/m²s, significativamente superior às plantas de Mississippi (20.9 μmol/m²s). O resfriamento reduziu a absorção média em aproximadamente 7.2 μmol/m²s.”
Checklist para análise estatística
Antes de iniciar:
Dados importados corretamente
Variáveis no formato adequado (fator/numérico)
Valores ausentes identificados
Outliers investigados
Checklist para análise estatística(continuação)
Durante a análise:
Estatísticas descritivas calculadas
Pressupostos verificados
Testes apropriados selecionados
Resultados interpretados corretamente
Checklist (continuação)
Após a análise:
Gráficos informativos criados
Resultados documentados
Código reproduzível salvo
Boas práticas em análise estatística
1. Planejamento:
Defina hipóteses a priori
Calcule tamanho amostral necessário
Escolha testes apropriados antes de coletar dados
2. Exploração:
Sempre visualize os dados primeiro
Identifique padrões e anomalias
Documente decisões tomadas
Boas práticas em análise estatística(cont)
3. Análise:
Verifique pressupostos
Reporte todos os testes realizados
Não faça “p-hacking” (buscar significância)
Boas práticas(cont)
4. Interpretação:
Diferencie significância estatística de relevância prática
Reporte tamanho de efeito, não apenas p-valor
Considere intervalos de confiança
5. Comunicação:
Use visualizações claras
Reporte métodos completos
Disponibilize dados e código
Erros comuns a evitar
Conceituais:
Confundir correlação com causalidade
Ignorar múltiplas comparações
Usar testes inapropriados para os dados
Práticos:
Não verificar pressupostos
Excluir outliers sem justificativa
Reportar apenas resultados significativos
Erros comuns a evitar(cont)
Interpretação:
Concluir “não há diferença” quando p > 0.05
Ignorar magnitude do efeito
Generalizar além dos dados
Exercícios propostos
1. Estatística descritiva:
Calcule média, mediana, desvio padrão e coeficiente de variação da absorção de CO2 para cada concentração.
2. Visualização:
Crie um gráfico boxplot mostrando a absorção por concentração, separado por origem e tratamento.
Exercícios propostos(cont)
3. ANOVA:
Teste se existe diferença significativa na absorção entre as diferentes concentrações de CO2.
4. Correlação:
Avalie a correlação entre concentração e absorção separadamente para cada combinação de origem e tratamento.
Exercícios propostos (cont)
5. Análise avançada:
Ajuste um modelo de regressão linear múltipla incluindo concentração, tipo e tratamento como preditores. Interprete os coeficientes.
6. Diagnóstico:
Verifique todos os pressupostos do modelo de regressão através de gráficos de diagnóstico.
7. Comparações:
Use testes post-hoc para identificar quais concentrações diferem significativamente entre si.
Resumo da aula
Conceitos abordados:
Estatística descritiva: medidas de tendência central, dispersão e posição
Distribuições: avaliação de normalidade através de testes e gráficos
ANOVA: comparação de múltiplos grupos e análise de interações
Visualização: criação de gráficos informativos com ggplot2
Interpretação: como comunicar resultados estatísticos
A estatística é uma ferramenta para responder perguntas científicas. O conhecimento do domínio é tão importante quanto o conhecimento estatístico.
Referências
Livros:
Bussab, W. O., & Morettin, P. A. (2017). Estatística básica. Saraiva.
Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. SAGE.
Wickham, H., & Grolemund, G. (2023). R for data science (2nd ed.). O’Reilly.
Referências (continuação)
Documentação:
R Core Team. (2024). R: A language and environment for statistical computing.
Wickham, H. (2016). ggplot2: elegant graphics for data analysis. Springer.
Datasets:
Potvin, C., Lechowicz, M. J., & Tardif, S. (1990). The statistical analysis of ecophysiological response curves obtained from experiments involving repeated measures. Ecology, 71(4), 1389-1400.
Obrigada!
Imagem: Allison Horst.
Continue praticando e explorando!
Esta apresentação é parte do projeto Café com R! É OPEN, USE, COMPARTILHE!
☕ Assine o Café com R
Fique por dentro das aulas, conteúdos, newsletter!
Que cada gole desperte uma nova ideia.
Que cada script abra uma nova conversa.
Que o Café com R, se torne um ponto de encontro nosso!