Hoe de correlatie in r met ontbrekende waarden te berekenen
U kunt de volgende methoden gebruiken om correlatiecoëfficiënten in R te berekenen wanneer een of meer variabelen ontbrekende waarden hebben:
Methode 1: Bereken de correlatiecoëfficiënt met ontbrekende waarden aanwezig
cor(x, y, use=' complete.obs ')
Methode 2: Bereken de correlatiematrix met ontbrekende waarden
cor(df, use=' pairwise.complete.obs ')
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.
Voorbeeld 1: Bereken de correlatiecoëfficiënt met ontbrekende waarden aanwezig
Stel dat we de functie cor() proberen te gebruiken om de Pearson-correlatiecoëfficiënt tussen twee variabelen te berekenen wanneer ontbrekende waarden aanwezig zijn:
#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
De functie cor() retourneert NA omdat we niet hebben gespecificeerd hoe we met ontbrekende waarden moeten omgaan.
Om dit probleem te voorkomen kunnen we het argument use=’complete.obs‘ gebruiken, zodat R weet dat hij alleen paarsgewijze waarnemingen mag gebruiken waarbij beide waarden aanwezig zijn:
#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
De correlatiecoëfficiënt tussen de twee variabelen blijkt -0,488749 te zijn.
Merk op dat de functie cor() alleen beide paarsgewijze combinaties gebruikte waarbij waarden aanwezig waren bij het berekenen van de correlatiecoëfficiënt.
Voorbeeld 2: Bereken de correlatiematrix met ontbrekende waarden
Stel dat we de functie cor() proberen te gebruiken om een correlatiematrix te maken voor een dataframe met drie variabelen wanneer ontbrekende waarden aanwezig zijn:
#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
De functie cor() retourneert NA op meerdere plaatsen, omdat we niet hebben gespecificeerd hoe we met ontbrekende waarden moeten omgaan.
Om dit probleem te voorkomen kunnen we het argument use=’pairwise.complete.obs‘ gebruiken, zodat R weet dat hij alleen paarsgewijze waarnemingen mag gebruiken waarbij beide waarden aanwezig zijn:
#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
De correlatiecoëfficiënten voor elke paarsgewijze combinatie van variabelen in de database worden nu weergegeven.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe de P-waarde van de correlatiecoëfficiënt in R te vinden
Hoe de Spearman-correlatie in R te berekenen
Hoe de glijdende correlatie in R te berekenen