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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *