typestar

Interacciones y transformaciones en Python

El lenguaje de fórmulas cubre productos, potencias y funciones en línea.

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

rng = np.random.default_rng(4)
tabla = pd.DataFrame({
    "practica": rng.uniform(1, 60, size=120),
    "editor": rng.integers(0, 2, size=120),
})
tabla["tpm"] = (70 + 0.5 * tabla["practica"]
                + 6 * tabla["editor"]
                + 0.1 * tabla["practica"] * tabla["editor"]
                + rng.normal(0, 3, size=120))

modelo = smf.ols("tpm ~ practica * editor", data=tabla).fit()
print(sorted(modelo.params.index.tolist()))
print(modelo.params.round(3).to_dict())

curvo = smf.ols("tpm ~ practica + I(practica ** 2)", data=tabla).fit()
print(round(curvo.rsquared, 4), round(modelo.rsquared, 4))

Cómo funciona

  1. a:b es la interacción sola; a*b es ambos más la interacción.
  2. I(x ** 2) protege la aritmética del parser de fórmulas.
  3. np.log(x) funciona directo dentro de una fórmula.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
635
Tokens
212
Ritmo de tres estrellas
110 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →