typestar

Ajustar un modelo a datos en Python

curve_fit encuentra los parámetros, y la covarianza da su error.

import numpy as np
from scipy import optimize


def learning(x, techo, tasa):
    return techo * (1 - np.exp(-tasa * x))


rng = np.random.default_rng(6)
dias = np.arange(1, 31)
observed = learning(dias, 120, 0.12) + rng.normal(0, 3, size=30)

params, covariance = optimize.curve_fit(learning, dias, observed,
                                        p0=[100.0, 0.1])
fallas = np.sqrt(np.diag(covariance))
print(params.round(3), fallas.round(3))

residuos = observed - learning(dias, *params)
print(round(np.std(residuos), 3))

Cómo funciona

  1. El primer argumento del modelo es x; el resto son parámetros.
  2. p0 es la conjetura inicial; una mala puede no converger.
  3. La diagonal de la covarianza da los errores a una sigma.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
481
Tokens
153
Ritmo de tres estrellas
110 tpm

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

Escribe este fragmento

Paso 3 de 4 en Optimización; paso 12 de 23 en Computación científica con SciPy.

← Anterior Siguiente →