πŸ” Как Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ Π² Python: пошаговоС руководство

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ corrcoef() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ numpy. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

import numpy as np

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ…
x = np.array([1, 2, 3, 4, 5])
y = np.array([6, 7, 8, 9, 10])

# РассчитываСм ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ
correlation = np.corrcoef(x, y)[0, 1]

print(f"ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ коррСляции: {correlation}")
    

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ Π² Python

ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ - это статистичСская ΠΌΠ΅Ρ€Π° взаимосвязи ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Она позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, насколько тСсно связаны эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ происходит связь. Π’ Python Π΅ΡΡ‚ΡŒ нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ.

1. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NumPy

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° NumPy прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.corrcoef(), которая позволяСт Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя массивами Π΄Π°Π½Π½Ρ‹Ρ…. Для использования Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ:


import numpy as np
    

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° массива Π΄Π°Π½Π½Ρ‹Ρ… - x ΠΈ y:


x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 4, 3, 2, 1])
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ этими массивами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.corrcoef():


correlation = np.corrcoef(x, y)
    

Ѐункция numpy.corrcoef() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ коррСляции, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ коэффициСнт коррСляции ΠΌΠ΅ΠΆΠ΄Ρƒ x ΠΈ y находится Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (0, 1) ΠΈ (1, 0).

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pandas

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° pandas прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ инструмСнты для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ расчСт коррСляции. Для использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pandas Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅:


import pandas as pd
    

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ DataFrame ΠΈΠ· Π½Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…:


data = {'x': [1, 2, 3, 4, 5], 'y': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ corr() для расчСта коррСляции:


correlation = df['x'].corr(df['y'])
    

ΠœΠ΅Ρ‚ΠΎΠ΄ corr() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ коэффициСнт коррСляции ΠΌΠ΅ΠΆΠ΄Ρƒ столбцами 'x' ΠΈ 'y' Π² DataFrame.

3. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ scipy

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° scipy прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ scipy.stats.pearsonr(), которая позволяСт Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ коэффициСнт коррСляции ΠŸΠΈΡ€ΡΠΎΠ½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Для использования Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ:


from scipy import stats
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ коэффициСнт коррСляции ΠΌΠ΅ΠΆΠ΄Ρƒ нашими массивами x ΠΈ y:


correlation, p_value = stats.pearsonr(x, y)
    

Ѐункция scipy.stats.pearsonr() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π²Π° значСния: коэффициСнт коррСляции ΠΈ p-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ коррСляции ΠŸΠΈΡ€ΡΠΎΠ½Π° находится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ correlation, Π° p-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ p_value.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° массива Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… значСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π»ΠΈΠΌΠΎΠ½Π°Π΄Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ:


temperature = np.array([25, 28, 30, 32, 35])
sales = np.array([200, 220, 230, 250, 280])
    

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ этими массивами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ numpy.corrcoef(), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ corr() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pandas ΠΈΠ»ΠΈ scipy.stats.pearsonr() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ scipy.

РассчСт коррСляции ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ°ΠΌΠΈ Π»ΠΈΠΌΠΎΠ½Π°Π΄Π°. Если коэффициСнт коррСляции Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ 1, это ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ сопровоТдаСтся ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄Π°ΠΆ. Если коэффициСнт коррСляции Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ -1, это ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ сопровоТдаСтся ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄Π°ΠΆ. Если коэффициСнт коррСляции Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ 0, это ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° отсутствиС коррСляции ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Π˜Ρ‚Π°ΠΊ, Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ Π² Python с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ NumPy, pandas ΠΈ scipy. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ эти знания для Π°Π½Π°Π»ΠΈΠ·Π° Π²Π°ΡˆΠΈΡ… собствСнных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ опрСдСлСния связСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

02-03 ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΠΈ Π² python

ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ коррСляции ΠŸΠΈΡ€ΡΠΎΠ½Π°, 2 способа вычислСния

ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ инфляциСй ΠΈ курсом Π²Π°Π»ΡŽΡ‚Ρ‹ Π² Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”‘ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт Python ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора - подробная инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Python Π² список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… PATH? 🐍

Как ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ класс Π² Python? πŸ’»πŸ ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ” Как Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡŽ Π² Python: пошаговоС руководство

πŸ”„ Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ списку Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: простой ΠΈ понятный Π³Π°ΠΉΠ΄

πŸ”Ž Как ΡƒΠ·Π½Π°Ρ‚ΡŒ количСство Π·Π½Π°ΠΊΠΎΠ² Π² числС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python?

πŸ’‘ Как ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ тСкстового Ρ„Π°ΠΉΠ»Π° Π² Python? Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΈ инструкции 2021 πŸ’»