Как рассчитать частичную корреляцию в 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 :
library (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() мы также могли бы указать «Кендалл» или «Пирсон» в качестве альтернативных методов расчета корреляций.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как рассчитать ранговую корреляцию Спирмена в R
Как рассчитать взаимную корреляцию в R
Как рассчитать скользящую корреляцию в R
Как рассчитать двухрядную корреляцию в R