Correlación y regresión simple en Python
Pearson para lo lineal, Spearman para lo monótono, linregress para la recta.
import numpy as np
from scipy import stats
rng = np.random.default_rng(4)
practica = np.arange(1, 41)
tpm = 70 + practica * 0.8 + rng.normal(0, 4, size=40)
pearson = stats.pearsonr(practica, tpm)
print(round(pearson.statistic, 4), f"{pearson.pvalue:.2e}")
print(round(stats.spearmanr(practica, tpm).statistic, 4))
ajuste = stats.linregress(practica, tpm)
print(round(ajuste.slope, 3), round(ajuste.intercept, 2))
print(round(ajuste.rvalue ** 2, 4), round(ajuste.stderr, 4))
Cómo funciona
- Cada prueba devuelve el coeficiente y un valor p.
- Spearman trabaja sobre rangos, así los atípicos pesan menos.
linregressda pendiente, intercepto y el error estándar.
Palabras clave y builtins usados aquí
asprintround
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 476
- Tokens
- 151
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 86 segundos.
Paso 1 de 2 en Correlación y remuestreo; paso 8 de 23 en Computación científica con SciPy.