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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *