Come calcolare la correlazione in r con valori mancanti


È possibile utilizzare i seguenti metodi per calcolare i coefficienti di correlazione in R quando una o più variabili presentano valori mancanti:

Metodo 1: Calcolare il coefficiente di correlazione con i valori mancanti presenti

 cor(x, y, use=' complete.obs ')

Metodo 2: Calcola la matrice di correlazione con i valori mancanti presenti

 cor(df, use=' pairwise.complete.obs ')

Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.

Esempio 1: Calcolare il coefficiente di correlazione con i valori mancanti presenti

Supponiamo di provare a utilizzare la funzione cor() per calcolare il coefficiente di correlazione di Pearson tra due variabili quando sono presenti valori mancanti:

 #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

La funzione cor() restituisce NA poiché non abbiamo specificato come gestire i valori mancanti.

Per evitare questo problema, possiamo utilizzare l’argomento use=’complete.obs’ in modo che R sappia utilizzare solo osservazioni a coppie in cui sono presenti entrambi i valori:

 #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

Il coefficiente di correlazione tra le due variabili risulta essere -0,488749 .

Si noti che la funzione cor() utilizzava solo entrambe le combinazioni a coppie in cui erano presenti valori durante il calcolo del coefficiente di correlazione.

Esempio 2: Calcolare la matrice di correlazione con i valori mancanti presenti

Supponiamo di provare a utilizzare la funzione cor() per creare una matrice di correlazione per un frame di dati con tre variabili quando sono presenti valori mancanti:

 #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

La funzione cor() restituisce NA in più punti poiché non abbiamo specificato come gestire i valori mancanti.

Per evitare questo problema, possiamo utilizzare l’argomento use=’pairwise.complete.obs’ in modo che R sappia utilizzare solo osservazioni a coppie in cui sono presenti entrambi i valori:

 #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

Vengono ora visualizzati i coefficienti di correlazione per ciascuna combinazione di variabili a coppie nel database.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come trovare il valore P del coefficiente di correlazione in R
Come calcolare la correlazione di Spearman in R
Come calcolare la correlazione scorrevole in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *