πŸ€¨ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΠΈΡˆΠ΅Ρ€Π° для ΠΎΡ†Π΅Π½ΠΊΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° коррСляции ΠŸΠΈΡ€ΡΠΎΠ½Π°

ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ строим ΠΌΠΎΠ΄Π΅Π»ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ рСгрСссии, ΠΎΡ‚Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈΠ»ΠΈ бизнСсово смотрим ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ связаны ⛓️

ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ np.corrcoef(a, b)[0,1] достаточно.

Ну ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ Π½ΠΈΠΆΠ΅ πŸ”½ `import numpy as np r = (np.cov([a,b], bias=True) / np.sqrt(np.var(a) * np.var(b)))[0][1]

Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅. Но! ΠœΡ‹ ΠΆΠ΅ Π½Π΅ Π·Π½Π°Π΅ΠΌ истинного значСния коэффициСнта коррСляции Π³Π΅Π½Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ совокупности (Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ срСдниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€). Π’Ρ‹Ρ…ΠΎΠ΄: ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ строим Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ значимости alpha.

ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ 0.8 Π·Π²ΡƒΡ‡ΠΈΡ‚ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ, Π½ΠΎ насколько ΠΌΡ‹ Π² Π½Π΅ΠΉ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ статистичСски?

Когда это Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ?

1. АналитичСскиС исслСдования: насколько сильно Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ связаны ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅, для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ поиску прокси-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² πŸ†Ž 2. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ коррСляций ΠΌΠ΅ΠΆΠ΄Ρƒ сСгмСнтами. 3. Π’ πŸ’» насколько Ρ„ΠΈΡ‡Π° связана с Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ... 4. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Если Π½Π°Ρ‡Π°Π»Π° связь Ρ€Π°Π·ΡŠΠ΅Π·ΠΆΠ°Ρ‚ΡŒΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ помСнялось.

НиТС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΠΈΡˆΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ распрСдСлСниС Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π²Π΅ случайныС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ с коррСляциСй, Ρ€Π°Π²Π½ΠΎΠΉ 0.8. Для Π½ΠΈΡ… посчитаСм Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π€ΠΈΡˆΠ΅Ρ€Π° Π½Π° Python 🐍 `from scipy.stats import norm import numpy as np

np.random.seed(42)

n = 10000 rho = 0.8

mean = [0, 0] cov = [[1, rho], [rho, 1]]

x, y = np.random.multivariate_normal(mean, cov, size=n).T

r = np.corrcoef(x, y)[0, 1]

def fisher_ci(r, n, alpha=0.05): z = np.arctanh(r) se = 1/np.sqrt(n-3) z_crit = norm.ppf(1-alpha/2) lo = np.tanh(z - z_critse) hi = np.tanh(z + z_critse) return lo, hi

lo, hi = fisher_ci(r, n) print(f"Π”ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» коррСляции ΠŸΠΈΡ€ΡΠΎΠ½Π°: [{lo:.3f}, {hi:.3f}]")

Для Π‘ΠΏΠΈΡ€ΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ КСндалла ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бутстрап ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ приблиТСния...

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π±ΠΎΡ€ β€” ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ тСсты (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для πŸ†Ž) Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€” ΡΡ‚Π°Π²ΡŒΡ‚Π΅ 100 πŸ•Ί****, собСру ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΡƒ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ А Π΅Ρ‰Π΅ Π½Π΅Π΄Π°Π²Π½ΠΎ Ρƒ мСня закончился ИБ Π² πŸ›, Ссли Π²Π°ΠΌ интСрСсно ΠΏΡ€ΠΎ это ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΡΡ‚Π°Π²ΡŒΡ‚Π΅ 100 😎 @zasql_python``

πŸ€¨ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΠΈΡˆΠ΅Ρ€Π° для ΠΎΡ†Π΅Π½ΠΊΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° коррСляции ΠŸΠΈΡ€ΡΠΎΠ½Π°
ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ строим ΠΌΠΎΠ΄Π΅Π»ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ рСгрСссии, ΠΎΡ‚Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈΠ»... | Π‘Π΅Ρ‚ΠΊΠ° β€” ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ hh.ru πŸ€¨ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΠΈΡˆΠ΅Ρ€Π° для ΠΎΡ†Π΅Π½ΠΊΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° коррСляции ΠŸΠΈΡ€ΡΠΎΠ½Π°
ΠšΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ строим ΠΌΠΎΠ΄Π΅Π»ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ рСгрСссии, ΠΎΡ‚Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈΠ»... | Π‘Π΅Ρ‚ΠΊΠ° β€” ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ hh.ru