Predecir con intervalos en Python
get_prediction da la media y ambos intervalos, cosa que predict solo no hace.
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
rng = np.random.default_rng(5)
tabla = pd.DataFrame({"practica": np.arange(1, 51)})
tabla["tpm"] = 72 + 0.65 * tabla["practica"] + rng.normal(0, 3, size=50)
modelo = smf.ols("tpm ~ practica", data=tabla).fit()
futuro = pd.DataFrame({"practica": [60, 90]})
print(modelo.predict(futuro).round(2).tolist())
prediccion = modelo.get_prediction(futuro).summary_frame(alpha=0.05)
print(prediccion.columns.tolist())
print(prediccion[["mean", "mean_ci_lower", "obs_ci_upper"]].round(2))
Cómo funciona
predictsobre datos nuevos necesita los mismos nombres de columna.conf_intsobre la predicción es el intervalo para la media.obs_cies el intervalo más ancho para una sola observación nueva.
Palabras clave y builtins usados aquí
asprint
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 558
- Tokens
- 180
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 98 segundos.
Paso 3 de 3 en Diseño de modelos; paso 6 de 19 en Estadística con statsmodels.