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