Jak używać cor() do obliczania współczynników korelacji w r
Możesz użyć funkcji cor() w R, aby obliczyć współczynniki korelacji między zmiennymi.
Oto najczęstsze sposoby korzystania z tej funkcji:
Metoda 1: obliczyć współczynnik korelacji Pearsona pomiędzy dwiema zmiennymi
cor(df$x, df$y)
Użyj współczynnika korelacji Pearsona przy obliczaniu korelacji między dwiema zmiennymi ciągłymi. (np. wzrost i waga)
Metoda 2: Oblicz współczynnik korelacji Pearsona pomiędzy wszystkimi zmiennymi numerycznymi w ramce danych
cor(df)
Ta metoda zwróci macierz korelacji zawierającą współczynnik korelacji Pearsona pomiędzy każdą kombinacją par zmiennych numerycznych w ramce danych.
Metoda 3: obliczyć współczynnik korelacji Spearmana pomiędzy dwiema zmiennymi
cor(df$x, df$y, method=' spearman ')
Użyj współczynnika korelacji Spearmana przy obliczaniu korelacji między dwiema zmiennymi rankingowymi. (np. ranking wyników ucznia z egzaminu z matematyki w porównaniu z rankingiem jego wyników z egzaminu z przedmiotów ścisłych w klasie)
Metoda 4: obliczyć współczynnik korelacji Kendalla pomiędzy dwiema zmiennymi
cor(df$x, df$y, method=' kendall ')
Użyj współczynnika korelacji Kendalla, jeśli chcesz użyć korelacji Spearmana, ale wielkość próby jest mała i istnieje wiele powiązań.
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce z następującą ramką danych w R, która pokazuje liczbę godzin spędzonych na nauce, liczbę zdanych egzaminów praktycznych i ocenę końcową z egzaminu dla ośmiu różnych uczniów:
#create data frame
df <- data. frame (hours=c(1, 1, 3, 2, 4, 3, 5, 6),
prac_exams=c(4, 3, 3, 2, 3, 2, 1, 4),
score=c(69, 74, 74, 70, 89, 85, 99, 90))
#view data frame
df
hours prac_exams score
1 1 4 69
2 1 3 74
3 3 3 74
4 2 2 70
5 4 3 89
6 3 2 85
7 5 1 99
8 6 4 90
Przykład 1: Oblicz współczynnik korelacji Pearsona między dwiema zmiennymi
Poniższy kod pokazuje, jak używać funkcji cor() do obliczenia współczynnika korelacji Pearsona pomiędzy godzinami i zmiennymi punktowymi :
#calculate Pearson correlation coefficient between hours and score
cor(df$hours, df$score)
[1] 0.8600528
Stwierdzono, że współczynnik korelacji Pearsona pomiędzy godzinami a wynikiem wynosi 0,86.
Pamiętaj, że jeśli w Twojej ramce danych znajdują się wartości NA, możesz użyć argumentu use=’complete.obs’ , aby użyć tylko wierszy, w których nie ma wartości NA:
#calculate Pearson correlation coefficient and ignore any rows with NA cor(df$hours, df$score, use=' complete.obs ')
Przykład 2: Oblicz współczynnik korelacji Pearsona pomiędzy wszystkimi zmiennymi numerycznymi
Poniższy kod pokazuje, jak używać funkcji cor() do tworzenia macierzy korelacji zawierającej współczynnik korelacji Pearsona pomiędzy wszystkimi zmiennymi numerycznymi w ramce danych:
#calculate Pearson correlation coefficient between all numeric variables
cor(df)
hours prac_exams score
hours 1.0000000 -0.1336063 0.8600528
prac_exams -0.1336063 1.0000000 -0.3951028
score 0.8600528 -0.3951028 1.0000000
Oto jak zinterpretować wynik:
- Współczynnik korelacji Pearsona pomiędzy godzinami a egzaminami praktycznymi wynosi -0,13 .
- Współczynnik korelacji Pearsona pomiędzy godzinami a wynikiem wynosi 0,86 .
- Współczynnik korelacji Pearsona pomiędzy prac_exams a wynikiem wynosi -0,39 .
Uwaga : Współczynnik korelacji Pearsona pomiędzy każdą pojedynczą zmienną a nią samą wynosi zawsze 1, dlatego każda wartość wzdłuż przekątnej macierzy korelacji wynosi 1.
Przykład 3: Oblicz współczynnik korelacji Spearmana między dwiema zmiennymi
Poniższy kod pokazuje, jak użyć funkcji cor() do obliczenia współczynnika korelacji Spearmana pomiędzy zmiennymi hours i prac_exams :
#calculate Spearman correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' spearman ') [1] -0.1250391
Współczynnik korelacji Spearmana pomiędzy godzinami a egzaminami praktycznymi okazuje się wynosić -0,125.
Przykład 4: Oblicz współczynnik korelacji Kendalla między dwiema zmiennymi
Poniższy kod pokazuje, jak używać funkcji cor() do obliczenia współczynnika korelacji Kendalla między zmiennymi hours i prac_exams :
#calculate Kendall's correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' kendall ') [1] -0.1226791
Współczynnik korelacji Kendalla między godzinami a egzaminami praktycznymi wynosi -0,123.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak obliczyć korelację przesuwną w R
Jak obliczyć autokorelację w R
Jak obliczyć korelację częściową w R