Jak obliczyć korelację w r z brakującymi wartościami
Do obliczenia współczynników korelacji w R, gdy jednej lub większej liczbie zmiennych brakuje wartości, można zastosować następujące metody:
Metoda 1: Oblicz współczynnik korelacji z obecnymi brakującymi wartościami
cor(x, y, use=' complete.obs ')
Metoda 2: Oblicz macierz korelacji z brakującymi wartościami
cor(df, use=' pairwise.complete.obs ')
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.
Przykład 1: Oblicz współczynnik korelacji przy brakujących wartościach
Załóżmy, że próbujemy użyć funkcji cor() do obliczenia współczynnika korelacji Pearsona między dwiema zmiennymi, gdy występują braki danych:
#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
Funkcja cor() zwraca NA , ponieważ nie określiliśmy, jak postępować z brakującymi wartościami.
Aby uniknąć tego problemu, możemy użyć argumentu use=’complete.obs’ , aby R wiedział, że należy używać obserwacji parami tylko wtedy, gdy obecne są obie wartości:
#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
Współczynnik korelacji pomiędzy obiema zmiennymi okazuje się wynosić -0,488749 .
Należy zauważyć, że funkcja cor() używała tylko obu kombinacji par, w których wartości były obecne podczas obliczania współczynnika korelacji.
Przykład 2: Oblicz macierz korelacji z brakującymi wartościami
Załóżmy, że próbujemy użyć funkcji cor() do utworzenia macierzy korelacji dla ramki danych z trzema zmiennymi, gdy występują braki danych:
#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
Funkcja cor() zwraca NA w wielu miejscach, ponieważ nie określiliśmy, jak postępować z brakującymi wartościami.
Aby uniknąć tego problemu, możemy użyć argumentu use=’pairwise.complete.obs’, aby R wiedział, że może używać obserwacji parami tylko wtedy, gdy obecne są obie wartości:
#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
Wyświetlane są teraz współczynniki korelacji dla każdej kombinacji par zmiennych w bazie danych.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak znaleźć wartość P współczynnika korelacji w R
Jak obliczyć korelację Spearmana w R
Jak obliczyć korelację przesuwną w R