La API de fórmulas en Python
Una fórmula de patsy se lee como el modelo que escribirías en papel.
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
rng = np.random.default_rng(1)
tabla = pd.DataFrame({
"practica": np.arange(1, 81),
"horas": rng.uniform(0.5, 3.0, size=80),
})
tabla["tpm"] = (70 + 0.6 * tabla["practica"] + 4 * tabla["horas"]
+ rng.normal(0, 3, size=80))
modelo = smf.ols("tpm ~ practica + horas", data=tabla).fit()
print(modelo.params.round(3).to_dict())
print(round(modelo.fvalue, 2), f"{modelo.f_pvalue:.2e}")
print(modelo.summary().tables[0].data[0])
Cómo funciona
y ~ x1 + x2nombra la respuesta y los predictores.- El intercepto viene incluido salvo que lo restes.
- El argumento data es un DataFrame, y las columnas se buscan por nombre.
Palabras clave y builtins usados aquí
asprintround
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 501
- Tokens
- 179
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 102 segundos.
Paso 2 de 3 en Modelos lineales; paso 2 de 19 en Estadística con statsmodels.