typestar

Predictores categóricos en Python

C() vuelve categórica una columna, y la fórmula construye las dummies.

import numpy as np
import pandas as pd
import statsmodels.formula.api as smf

rng = np.random.default_rng(3)
tabla = pd.DataFrame({
    "lenguaje": np.repeat(["python", "rust", "css"], 30),
    "practica": rng.integers(1, 60, size=90),
})
desfase = tabla["lenguaje"].map({"python": 10.0, "rust": 5.0, "css": 0.0})
tabla["tpm"] = 80 + desfase + 0.3 * tabla["practica"] + rng.normal(0, 3, 90)

modelo = smf.ols(
    "tpm ~ C(lenguaje, Treatment(reference='css')) + practica",
    data=tabla).fit()
for nombre, valor in modelo.params.round(2).items():
    print(f"{nombre[:44]:<46}{valor:>8}")

Cómo funciona

  1. Un nivel se vuelve la referencia; el resto recibe coeficientes.
  2. Treatment(reference=...) elige cuál nivel es ese.
  3. Los nombres en la salida dicen qué contraste es cada fila.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
570
Tokens
198
Ritmo de tres estrellas
110 tpm

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

Escribe este fragmento

Paso 1 de 3 en Diseño de modelos; paso 4 de 19 en Estadística con statsmodels.

← Anterior Siguiente →