cor com r: Guia Prático para Calcular Correlação no R

Modelo detalhado de um coração humano com um estetoscópio ao lado sobre uma superfície branca.
Avalie este artigo

Você quer descobrir rápido como usar cor() no R para achar correlações entre variáveis e aplicar isso em projetos ou estudos.

A função cor() calcula a correlação entre colunas de um data.frame ou matriz, dando a visão direta das relações entre suas variáveis.

Modelo detalhado de um coração humano com um estetoscópio ao lado sobre uma superfície branca.

Ao longo do texto, você vai ver como a documentação do R explica os tipos de correlação disponíveis, como Pearson, Spearman e Kendall.

Vai aprender opções práticas e truques para tratar dados faltantes, visualizar matrizes de correlação e aplicar resultados em análises reais.

Se precisa resolver um exercício, preparar um relatório ou melhorar uma análise, as próximas seções mostram, de forma direta, como usar cor(), onde achar referências na documentação do R e exemplos de aplicações que você pode adaptar para seu caso.

Entendendo o cor() no R

A função cor() calcula coeficientes que medem relação linear ou por postos entre variáveis numéricas.

Você vai ver como ajustar opções de método e tratamento de dados faltantes, usar matrizes ou data frames e combinar cor() com outras funções como cov() e cor.test().

Como funciona o cor()

A função cor(x, use = , method = ) recebe uma matriz ou um data frame numérico em x.

  • use controla dados faltantes: all.obs (erro se houver NA), complete.obs (exclusão por linhas) e pairwise.complete.obs (exclusão por pares).

method escolhe o coeficiente: “pearson”, “spearman” ou “kendall”.


  • Pearson mede a relação linear entre duas variáveis. É sensível a outliers e assume distribuição aproximadamente normal.



  • Spearman usa postos; é um rank correlation útil quando a relação é monotônica, não necessariamente linear.



  • Kendall também é rank-based e costuma ser mais robusto em amostras pequenas.


Exemplo: cor(mtcars, use=”complete.obs”, method=”pearson”) retorna a matriz de correlação entre todas as colunas numéricas de mtcars.

Coeficientes de correlação disponíveis

Pearson (Pearson’s product-moment correlation) fornece coeficientes entre -1 e 1 que indicam força e direção da relação linear.

Valores positivos indicam correlação positiva; valores negativos indicam correlação inversa.

Um coeficiente próximo de 0 indica pouca associação linear.

Spearman e Kendall avaliam rank correlation.


  • Spearman transforma dados em postos e calcula o coeficiente de correlação de postos.



  • Kendall baseia-se em concordâncias e discordâncias entre pares, sendo mais conservador.


cor() não fornece p-values. Para testar significância use cor.test() para pares ou rcorr() do pacote Hmisc para matrizes com níveis de significância.

Trabalhando com Variáveis e Matrizes

Ao passar um data frame, cor() usa só colunas numéricas; fatores são ignorados ou causam erro.

Você pode calcular correlações entre dois conjuntos de variáveis usando cor(x, y) onde x e y são matrizes ou data frames com o mesmo número de linhas.

Exemplos práticos:


  • cor(mtcars) gera a correlation matrix completa.



  • cor(x, y) retorna uma matriz de correlação entre colunas de x (linhas) e colunas de y (colunas).


Para covariância e variância use cov() e var(): cov() retorna a covariance matrix, que relaciona-se com correlação pelo desvio padrão: corr = cov / (sd_x * sd_y).

Use use=”pairwise.complete.obs” se quiser aproveitar pares disponíveis quando houver NAs.

Outras funções relacionadas

cov() calcula covariances e var() calcula variância.

Use cov(mtcars) para ver a covariance matrix.

cor.test(x, y, method=”pearson”) testa um único coeficiente e fornece p-value e intervalo de confiança.

Pacotes úteis:


  • Hmisc::rcorr(as.matrix(df)) retorna correlação e níveis de significância para Pearson e Spearman.



  • polycor::polychor/hetcor tratam correlações entre variáveis ordinais e mistas.



  • ggm::pcor calcula correlações parciais controlando outras variáveis.


Para visualização, use corrplot, corrgram ou pairs() para examinar relações e identificar padrões de correlação antes de interpretar coeficientes.

Opções, Métodos e Aplicações Práticas do cor()

Aqui você encontra como escolher o método de correlação, lidar com dados faltantes, visualizar matrizes de correlação e testar resultados de forma prática.

Escolhendo o método certo: Pearson, Spearman ou Kendall

Escolha Pearson quando suas variáveis forem numéricas e tiverem relação linear.

Use cor(df$x, df$y, method = “pearson”) para calcular e ver se os dados parecem seguir linha reta.

Pearson assume amostra grande e exige variáveis com distribuição aproximada normal para melhores testes.

Opte por Spearman quando a relação for monotônica mas não linear.

Spearman transforma dados em postos (xtfrm internamente) e mede correlação de postos; ele resiste a outliers.

No R: cor(…, method = “spearman”) ou cor.test(…, method = “spearman”).

Kendall é útil com amostras pequenas ou muitos empates.

Ele mede concordância de pares e costuma ser mais conservador.

Use cor(…, method = “kendall”) ou cor.test(…, method = “kendall”).

Se quiser a significância estatística, combine cor() com cor.test() para pares, ou use rcorr() (do pacote Hmisc) para matrizes com p-values e conta de observações.

Como lidar com valores ausentes

Decida entre listwise deletion (casewise deletion) ou pairwise deletion.

Use cor(…, use = “complete.obs”) para excluir observações que têm qualquer NA (listwise).

Isso evita vieses por casos incompletos, mas reduz a amostra.

Para aproveitar mais dados, use pairwise.complete.obs em cor(…, use = “pairwise.complete.obs”).

Isso calcula cada correlação com todos os pares não ausentes, mas pode gerar uma matriz que não é positiva semi-definite e causar problemas em análises que exigem matriz válida.

Na prática, verifique também na.rm em funções resumo; em cov.wt você pode fornecer pesos e na.or.complete para completar.

rcorr() trata NAs mostrando contagem por par.

Se precisar de estimador não viciado, considere imputação simples antes do cálculo.

Documente sempre o método usado (pairwise vs listwise) para reproducibilidade.

Visualizando as correlações

Use corrplot ou packages como ggplot2 para visualizar matrizes.

Corrplot mostra cores e formas que indicam direção e força; combine com symnum para marcar níveis de significância ou cov2cor para transformar covariância em correlação.

Mostre a matriz de correlação e uma tabela de p-values.

Por exemplo, use cor(df) com use = “pairwise.complete.obs” e depois corrplot(cor_mat).

Se a matriz não for positiva semi-definite, ajuste com eigenvalue correction antes de usar em modelos que exigem SPD.

Inclua scatterplots para pares chave usando plot(df$x, df$y) para ver relação direta.

Adicione linhas de tendência e calcule cor(df$x, df$y) junto com cor.test(df$x, df$y) para mostrar coeficiente e p-valor ao leitor.

Testando e interpretando resultados

Para testar um par, use cor.test(x, y). Reporte o coeficiente, intervalo de confiança e p-valor.

Escolha o teste conforme o método: Pearson, Spearman ou Kendall. Só cuidado: correlação não quer dizer causalidade.

Olhe para a força, direção e significância. Não se deixe levar só pelo número.

Se for uma matriz, rcorr traz r, n e p-values para cada par. Quando testar várias correlações, lembre de aplicar uma correção, tipo Bonferroni.

Confira se os estimadores são unbiased. Alguns cálculos de covariância usam ajuste, e cov2cor serve pra converter covariância em correlação.

Se aparecerem valores impossíveis ou problemas numéricos numa matriz, vale revisar o uso de pairwise.complete.obs ou tentar imputação.

Anote como lidou com valores ausentes—listwise deletion, pairwise deletion, na.or.complete—isso é importante pra transparência.

Sobre o Autor

Nicole Bruns
Nicole Bruns

Sou especialista em Marketing Digital e Finanças, mas gosto de escrever sobre tudo e viajar pelo mundo.

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Solicitar exportação de dados

Use este formulário para solicitar uma cópia de seus dados neste site.

Solicitar a remoção de dados

Use este formulário para solicitar a remoção de seus dados neste site.

Solicitar retificação de dados

Use este formulário para solicitar a retificação de seus dados neste site. Aqui você pode corrigir ou atualizar seus dados, por exemplo.

Solicitar cancelamento de inscrição

Use este formulário para solicitar a cancelamento da inscrição do seu e-mail em nossas listas de e-mail.