typestar

Regresión logística en Python

Logit modela una probabilidad; los coeficientes son log odds.

import numpy as np
import statsmodels.api as sm

rng = np.random.default_rng(8)
practica = rng.uniform(0, 60, size=300)
logits = -3 + 0.09 * practica
aprobado = rng.binomial(1, 1 / (1 + np.exp(-logits)))

X = sm.add_constant(practica)
modelo = sm.Logit(aprobado, X).fit(disp=False)

print(modelo.params.round(4))
print("odds ratio por sesión:", round(float(np.exp(modelo.params[1])), 4))
print(round(modelo.prsquared, 4), round(modelo.llf, 2))
print(modelo.pred_table().astype(int))

Cómo funciona

  1. np.exp(params) convierte un coeficiente en un odds ratio.
  2. predict devuelve probabilidades, no clases.
  3. pred_table es la matriz de confusión con umbral de 0.5.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
482
Tokens
159
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 87 segundos.

Escribe este fragmento

Paso 1 de 4 en Más allá de mínimos cuadrados; paso 9 de 19 en Estadística con statsmodels.

← Anterior Siguiente →