Como calcular a correlação em r com valores ausentes
Você pode usar os seguintes métodos para calcular coeficientes de correlação em R quando uma ou mais variáveis possuem valores ausentes:
Método 1: Calcular o coeficiente de correlação com valores faltantes presentes
cor(x, y, use=' complete.obs ')
Método 2: Calcular a matriz de correlação com valores faltantes presentes
cor(df, use=' pairwise.complete.obs ')
Os exemplos a seguir mostram como usar cada método na prática.
Exemplo 1: Calcule o coeficiente de correlação com valores faltantes presentes
Suponha que estamos tentando usar a função cor() para calcular o coeficiente de correlação de Pearson entre duas variáveis quando valores faltantes estão presentes:
#create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)
#attempt to calculate correlation coefficient between x and y
cor(x, y)
[1] NA
A função cor() retorna NA , pois não especificamos como lidar com valores ausentes.
Para evitar esse problema, podemos usar o argumento use=’complete.obs’ para que R saiba usar apenas observações pareadas onde ambos os valores estão presentes:
#create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)
#calculate correlation coefficient between x and y
cor(x, y, use=' complete.obs ')
[1] -0.4888749
O coeficiente de correlação entre as duas variáveis acaba sendo -0,488749 .
Observe que a função cor() usou apenas ambas as combinações de pares onde os valores estavam presentes ao calcular o coeficiente de correlação.
Exemplo 2: Calcule a matriz de correlação com valores faltantes presentes
Suponha que estamos tentando usar a função cor() para criar uma matriz de correlação para um quadro de dados com três variáveis quando valores faltantes estão presentes:
#create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))
#attempt to create correlation matrix for variables in data frame
cor(df)
X Y Z
x 1 NA NA
y NA 1 NA
z NA NA 1
A função cor() retorna NA em vários lugares, pois não especificamos como lidar com valores ausentes.
Para evitar esse problema, podemos usar o argumento use=’pairwise.complete.obs’ para que R saiba usar apenas observações pareadas onde ambos os valores estão presentes:
#create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))
#create correlation matrix for variables using only pairwise complete observations
cor(df, use=' pairwise.complete.obs ')
X Y Z
x 1.0000000 -0.4888749 0.1311651
y -0.4888749 1.0000000 -0.1562371
z 0.1311651 -0.1562371 1.0000000
Os coeficientes de correlação para cada combinação de variáveis no banco de dados são agora exibidos.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como encontrar o valor P do coeficiente de correlação em R
Como calcular a correlação de Spearman em R
Como calcular a correlação deslizante em R