Значимость коэффициента корреляции python

Как рассчитать корреляцию между двумя столбцами в Pandas

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

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: расчет корреляции между двумя столбцами

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

import pandas as pd #create DataFrame df = pd.DataFrame() #view first five rows of DataFrame df.head () points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 #calculate correlation between points and assists df['points']. corr(df['assists']) -0.359384 

Коэффициент корреляции равен -0,359.Поскольку эта корреляция отрицательна, это говорит нам о том, что очки и передачи имеют отрицательную корреляцию.

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

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

Чтобы определить, является ли коэффициент корреляции статистически значимым, вы можете использовать функцию pearsonr(x, y) из библиотеки SciPy .

Следующий код показывает, как использовать эту функцию на практике:

import pandas as pd from scipy. stats import pearsonr #create DataFrame df = pd.DataFrame() #calculate p-value of correlation coefficient between points and assists pearsonr(df['points'], df['assists']) (-0.359384, 0.38192) 

Первое значение в выходных данных отображает коэффициент корреляции (-0,359384), а второе значение отображает p-значение (0,38192), связанное с этим коэффициентом корреляции.

Читайте также:  Python 3 потоки пример

Поскольку p-значение не меньше α = 0,05, можно сделать вывод, что корреляция между очками и передачами не является статистически значимой.

Источник

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

Один из способов количественной оценки взаимосвязи между двумя переменными – использовать Коэффициент корреляции Пирсона, который является мерой линейной связи между двумя переменными.\u00a0Он всегда принимает значение от -1 до 1, где:\n

-1 указывает на совершенно отрицательную линейную корреляцию между двумя переменные

  • 0 указывает на отсутствие линейной корреляции между двумя переменными
  • 1 указывает на совершенно положительную линейную корреляцию между двумя переменными

Чем дальше коэффициент корреляции от нуля, тем сильнее Связь между двумя переменными.

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

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

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

import numpy as np np.random.seed(100) #создать массив из 50 случайных целых чисел от 0 до 10 var1 = np.random.randint(0, 10, 50) #создать положительно коррелированный массив с некоторым случайным шумом var2 = var1 + np.random.normal(0, 10, 50) #рассчитать корреляцию между двумя массивами np.corrcoef(var1, var2) # [[ 1. 0.335] # [ 0.335 1. ]]

Мы видим, что коэффициент корреляции между этими двумя переменными составляет 0,335 , что является положительной корреляцией.

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

np.corrcoef(var1, var2)[0,1] #0.335

Чтобы проверить, является ли эта корреляция статистически значимой, мы можем рассчитать p-значение, связанное с коэффициентом корреляции Пирсона, с помощью Scipy pearsonr(), которая возвращает коэффициент корреляции Пирсона вместе с двусторонним p-значением.

from scipy.stats.stats import pearsonr pearsonr(var1, var2) #(0.335, 0.017398)

Коэффициент корреляции – 0,335, а двустороннее значение p – 0,017. Поскольку это значение p меньше 0,05, мы можем заключить, что существует статистически значимая корреляция между двумя переменными.

Читайте также:  Android app for java programming

Если вас интересует вычисление корреляции между несколькими переменными в Pandas DataFrame, вы можете просто использовать функцию .corr()

import pandas as pd data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C']) data # A B C #0 8 0 9 #1 4 0 7 #2 9 6 8 #3 1 8 1 #4 8 0 8 #рассчитать коэффициенты корреляции для всех попарных комбинаций data.corr() # A B C # A 1.000000 -0.775567 -0.493769 # B -0.775567 1.000000 0.000000 # C -0.493769 0.000000 1.000000

И если вас интересует только расчет корреляции между двумя конкретными переменными в DataFrame, вы можете указать переменные:

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Python:

Источник

Как выполнить корреляционный тест в Python (с примером)

Чтобы определить, корреляция является статистически значимым, можно рассчитать соответствующий t-показатель и значение p.

Формула для расчета t-оценка коэффициента корреляции (r):

t = r * √n-2 / √1-r 2

Затем p-значение рассчитывается как соответствующие два- одностороннее значение p для t-распределения с n-2 степенями свободы.

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

Чтобы определить, является ли коэффициент корреляции между двумя переменными статистически значимым, вы можете выполнить корреляционный тест на Python с использованием функции pearsonr из библиотеки SciPy.

Эта функция возвращает коэффициент корреляции между двумя переменными вместе с двусторонним значением p.

Например, предположим, что у нас есть следующие два массива в Python:

#создать два массива x = [3, 4, 4, 5, 7 , 8, 10, 12, 13, 15] y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]

Мы можем импортировать функцию pearsonr и вычислить коэффициент корреляции Пирсона между двумя массивами:

from scipy.stats.stats import pearsonr #расчет коэффициента корреляции и значения p между x и y pearsonr(x, y) # (0.8076177030748631, 0.004717255828132089)

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

  • Коэффициент корреляции Пирсона (r): 0,8076
  • Двустороннее значение p: 0,0047

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

Читайте также:  example1-in-function- php MySQL examples | w3resource

И поскольку соответствующее значение p меньше 0,05, мы заключаем, что существует статистически значимая связь между двумя переменными.

Обратите внимание, что мы также можем извлечь индивидуальный коэффициент корреляции и значение p из функции

#коэффициент корреляции (с округлением до 4 знаков после запятой) r = round(pearsonr(x, y)[0], 4) print(r) # 0.8076 #p-value ( округляется до 4 десятичных знака) p = round(pearsonr(x, y)[1], 4) print(p) # 0.0047

Эти значения немного легче читать по сравнению с выходными данными исходной функции pearsonr.

Дополнительные ресурсы

Следующие руководства содержат дополнительную информацию о коэффициентах корреляции:

Источник

Оцените статью