typestar

Modelos lineales generalizados en Python

Un solo marco y una familia por tipo de respuesta: binomial, Poisson, gaussiana.

import numpy as np
import statsmodels.api as sm

rng = np.random.default_rng(9)
sesiones = rng.uniform(1, 10, size=200)
errores = rng.poisson(np.exp(0.2 + 0.15 * sesiones))

X = sm.add_constant(sesiones)
poisson = sm.GLM(errores, X, family=sm.families.Poisson()).fit()

print(poisson.params.round(4))
print(round(poisson.deviance, 2), poisson.df_resid)
print(round(poisson.pearson_chi2 / poisson.df_resid, 3), "dispersión")

binomial = sm.GLM(rng.binomial(1, 0.4, 200), X,
                  family=sm.families.Binomial()).fit()
print(round(binomial.aic, 2))

Cómo funciona

  1. La familia fija el enlace y la función de varianza.
  2. Poisson va bien con conteos; binomial, con proporciones.
  3. La devianza y la chi-cuadrada de Pearson juzgan el ajuste.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
539
Tokens
172
Ritmo de tres estrellas
110 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →