Как рассчитать частичную корреляцию в R


В статистике мы часто используемкоэффициент корреляции Пирсона для измерения линейной зависимости между двумя переменными. Однако иногда нам интересно понять взаимосвязь между двумя переменными , контролируя при этом третью переменную .

Например, предположим, что мы хотим измерить связь между количеством часов, отработанных учащимся, и полученной им итоговой оценкой на экзамене, контролируя текущую оценку учащегося в классе. В этом случае мы могли бы использовать частичную корреляцию для измерения взаимосвязи между часами обучения и итоговой оценкой на экзамене.

В этом руководстве объясняется, как рассчитать частичную корреляцию в R.

Пример: Частичная корреляция в R

Предположим, у нас есть следующий фрейм данных, который отображает текущую оценку, общее количество часов обучения и итоговый балл за экзамен для 10 студентов:

#create data frame
df <- data.frame(currentGrade = c(82, 88, 75, 74, 93, 97, 83, 90, 90, 80),
 hours = c(4, 3, 6, 5, 4, 5, 8, 7, 4, 6),
 examScore = c(88, 85, 76, 70, 92, 94, 89, 85, 90, 93))

#view data frame
df

 currentGrade hours examScore
1 82 4 88
2 88 3 85
3 75 6 76
4 74 5 70
5 93 4 92
6 97 5 94
7 83 8 89
8 90 7 85
9 90 4 90
10 80 6 93

Чтобы вычислить частичную корреляцию между каждой парной комбинацией переменных в кадре данных, мы можем использовать функцию pcor() из библиотеки ppcor :

#calculate partial correlations
pcor(df)

$estimate
 currentGrade hours examScore
currentGrade 1.0000000 -0.3112341 0.7355673
hours -0.3112341 1.0000000 0.1906258
examScore 0.7355673 0.1906258 1.0000000

$p.value
 currentGrade hours examScore
currentGrade 0.00000000 0.4149353 0.02389896
hours 0.41493532 0.0000000 0.62322848
examScore 0.02389896 0.6232285 0.00000000

$statistic
 currentGrade hours examScore
currentGrade 0.0000000 -0.8664833 2.8727185
hours -0.8664833 0.0000000 0.5137696
examScore 2.8727185 0.5137696 0.0000000

$n
[1] 10

$gp
[1] 1

$method
[1] "pearson"

Вот как интерпретировать вывод:

Частичная корреляция между учебными часами и итоговой оценкой за экзамен:

Частичная корреляция между часами обучения и итоговой оценкой экзамена составляет 0,191 , что является небольшой положительной корреляцией. По мере увеличения часов обучения экзаменационная оценка также имеет тенденцию к увеличению, при условии, что текущая оценка остается неизменной.

Значение p для этой частичной корреляции составляет 0,623 , что не является статистически значимым при α = 0,05.

Частичная корреляция между текущей оценкой и итоговым баллом за экзамен:

Частичная корреляция между текущей оценкой и итоговым результатом экзамена составляет 0,736 , что является сильной положительной корреляцией. По мере повышения текущей оценки экзаменационная оценка также имеет тенденцию к увеличению, при условии, что количество часов обучения остается постоянным.

Значение p для этой частичной корреляции составляет 0,024 , что является статистически значимым при α = 0,05.

Частичная корреляция между текущей оценкой и отработанными часами:

Частичная корреляция между текущей оценкой, отработанными часами и итоговой оценкой экзамена составляет -0,311 , что является слабой отрицательной корреляцией. По мере повышения текущей оценки балл за итоговый экзамен имеет тенденцию к снижению, при условии, что балл за итоговый экзамен остается постоянным.

Значение p для этой частичной корреляции составляет 0,415 , что не является статистически значимым при α = 0,05.

Вывод также сообщает нам, что метод, используемый для расчета частичной корреляции, был «пирсон». В функции pcor() мы также можем указать «kendall» или «pearson» в качестве альтернативных методов для расчета корреляций.

Полную документацию по библиотеке ppcor вы можете найти здесь .