Correlações em R
R permite calcular correlações entre duas variáveis ou matrizes completas de correlações, testar a sua significância estatística e visualizá-las graficamente.
Correlação entre duas variáveis
Para calcular o coeficiente de Pearson entre duas variáveis numéricas:
cor(df$variavel1, df$variavel2)
Se existirem valores em falta (NA), é necessário indicar como tratá-los:
cor(df$variavel1, df$variavel2, use = "complete.obs")
Testar a significância — cor.test()
cor.test() devolve o coeficiente, o valor p e o intervalo de confiança a 95%:
cor.test(df$variavel1, df$variavel2)
# Exemplo de output:
# t = 4.23, df = 98, p-value = 0.000051
# cor = 0.392
# 95% CI: [0.209, 0.549]
Um p < 0,05 indica que a correlação é estatisticamente significativa.
Tipos de correlação
Por omissão, cor() calcula Pearson. Para variáveis ordinais ou distribuições não normais, usar Spearman ou Kendall:
# Spearman (ordinal ou não-normal)
cor(df$v1, df$v2, method = "spearman")
# Kendall (amostras pequenas ou muitos empates)
cor(df$v1, df$v2, method = "kendall")
# Também em cor.test():
cor.test(df$v1, df$v2, method = "spearman")
Matriz de correlações
Para calcular correlações entre todas as variáveis numéricas de um dataframe:
cor(df, use = "complete.obs")
# Só para colunas numéricas:
library(dplyr)
df_num <- df |> select(where(is.numeric))
round(cor(df_num, use = "complete.obs"), 2)
Visualizar com corrplot
O pacote corrplot gera heatmaps de correlação muito usados em dissertações:
install.packages("corrplot")
library(corrplot)
mat <- cor(df_num, use = "complete.obs")
corrplot(mat, method = "color", type = "upper",
tl.cex = 0.8, addCoef.col = "black")
Correlações com p-values — pacote Hmisc
Para obter simultaneamente a matriz de correlações e os p-values:
library(Hmisc)
resultado <- rcorr(as.matrix(df_num))
resultado$r # coeficientes
resultado$P # p-values
Como reportar em APA
"Verificou-se uma correlação positiva e moderada entre X e Y, r(98) = .39, p < .001."
Inclui sempre: símbolo r, graus de liberdade entre parênteses, coeficiente arredondado a 2 casas, e valor p.