Explicações de Estatística
Marcar Sessão

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.