Статистика

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

В: Статистика

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

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

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

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

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

import numpy as np
import panda as pd

data = {'currentGrade':  [82, 88, 75, 74, 93, 97, 83, 90, 90, 80],
        'hours': [4, 3, 6, 5, 4, 5, 8, 7, 4, 6],
        'examScore': [88, 85, 76, 70, 92, 94, 89, 85, 90, 93],
        }

df = pd.DataFrame(data, columns = ['currentGrade','hours', 'examScore'])
df

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

Для расчета па Для определения реальной корреляции между часами и examScore при контроле currentGrade мы можем использовать partial_corr() функция из пакета pingouin, который использует следующий синтаксис:

partial_corr(data, x, y, covar)

где:

  • data: имя фрейма данных
  • x, y: имена столбцов в фрейме данных
  • covar: имя столбца covariate в фрейме данных (например, переменная, которую вы контролируете)

Вот как использовать эту функцию в этом конкретный пример:

#установить и импортировать пакет pingouin 
pip install pingouin
import pingouin as pg

#найти частичную корреляцию между количеством часов и экзаменационным баллом при контроле

pg.partial_corr(data=df, x='hours', y='examScore', covar='currentGrade')

#        n	   r	       CI95%	   r2	adj_r2	p-val	 BF10 power
#pearson 10	0.191	[-0.5, 0.73]	0.036	-0.238	0.598	0.438 0.082

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

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

#вычислить все попарные частные корреляции, округленные до трех знаков после запятой
df.pcorr().round(3)

# 		currentGrade	hours	examScore
#currentGrade		1.000   -0.311	    0.736
#hours			-0.311	1.000	    0.191
#examScore		0.736	0.191	    1.000

Способ интерпретации вывода выглядит следующим образом:

  • Частичная корреляция между текущей оценкой и количеством часов обучения:-0,311
  • Часть Частичная корреляция между текущей оценкой и экзаменационным баллом 0,736
  • Частичная корреляция между отработанными часами и экзаменационный балл 0,191
Еще от кодкамп
Статистика

Как рассчитать коэффициент внутриклассовой корреляции в Python

Коэффициент внутриклассовой корреляции (ICC или intraclass correlation coefficient) используется, чтобы определить, могут ли предметы или предметы быть надежно оценены разными
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.