typestar

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

  1. predict sobre datos nuevos necesita los mismos nombres de columna.
  2. conf_int sobre la predicción es el intervalo para la media.
  3. obs_ci es el intervalo más ancho para una sola observación nueva.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

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

← Anterior Siguiente →