Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Ajuste paramétrico

R2023b

Ajuste paramétrico con modelos de la biblioteca

El ajuste paramétrico implica encontrar coeficientes (parámetros) para uno o más modelos que se ajustan a datos. Se asume que los datos son estadísticos por naturaleza y se dividen en dos componentes:

datos = componente determinista + componente aleatorio

Un modelo paramétrico proporciona el componente determinista, y el componente aleatorio suele describirse como un error asociado con los datos:

datos = modelo paramétrico + error

El modelo es una función de la variable independiente (predictor) y uno o más coeficientes. El error representa variaciones aleatorias en los datos que siguen una distribución de probabilidad específica (normalmente gaussiana). Las variaciones pueden provenir de muchas fuentes distintas, pero siempre están presentes a cierto nivel cuando aborda datos medidos. También pueden darse variaciones sistemáticas, pero pueden derivar en un modelo ajustado que no representa bien los datos.

Los coeficientes del modelo suelen tener significado físico. Por ejemplo, supongamos que ha recopilado datos que se corresponden con un único modo de desintegración de un nucleido radiactivo y desea estimar el periodo de semidesintegración (T1/2) de la desintegración. La ley de desintegración radiactiva establece que la actividad de una sustancia radiactiva cae exponencialmente con el tiempo. Por lo tanto, el modelo que se va a utilizar en el ajuste viene dado por

y=y0e−λt

donde y0 es el número de núcleos en el momento t = 0, y λ es la constante de desintegración. Los datos se pueden describir con

data=y0e−λt+error

Tanto y0 como λ son coeficientes estimados por el ajuste. Debido a que T1/2 = ln(2)/λ, el valor ajustado de la constante de desintegración proporciona el periodo de semidesintegración ajustado. Sin embargo, puesto que los datos contienen errores, el componente determinista de la ecuación no puede determinarse exactamente a partir de los datos. Por lo tanto, los coeficientes y el cálculo del periodo de semidesintegración llevarán asociada cierta incertidumbre. Si la incertidumbre es aceptable, habrá terminado de ajustar los datos. Si la incertidumbre no es aceptable, puede que tenga que tomar medidas para reducirla recopilando más datos o reduciendo el error de la medición y recopilando nuevos datos y repitiendo el ajuste del modelo.

Con otros problemas en los que no existe una teoría para dictar un modelo, también podría modificar el modelo añadiendo o eliminando términos, o sustituirlo por un modelo completamente diferente.

Los modelos paramétricos de la biblioteca de Curve Fitting Toolbox™ se describen en las siguientes secciones.

Seleccionar tipo de modelo

Seleccionar tipo de modelo de forma interactiva

Abra la app Curve Fitter escribiendo curveFitter en la línea de comandos de MATLAB®. También puede hacer clic en Curve Fitter dentro del grupo Math, Statistics and Optimization de la pestaña Apps.

En la app Curve Fitter, vaya a la sección Fit Type de la pestaña Curve Fitter. Puede seleccionar un tipo de modelo de la galería de ajustes. Haga clic en la flecha para abrir la galería.

Fit Type model gallery

Esta tabla describe los modelos que puede ajustar para curvas y superficies.

Grupo de ajusteCategoría de ajusteCurvasSuperficies
Regression ModelsPolinómicoSí (hasta noveno grado)Sí (hasta quinto grado)
ExponencialSíNo
LogarítmicoSíNo
Serie de FourierSíNo
Modelos de GaussSíNo
Serie de potenciasSíNo
RacionalSíNo
Suma de senosSíNo
Distribución de WeibullSíNo
SigmoideSíNo
InterpolationInterpolación

Sí, con métodos:

  • Vecino más cercano

  • Lineal

  • Cúbico

  • Que conserva la forma (PCHIP)

Sí, con métodos:

  • Vecino más cercano

  • Lineal

  • Cúbico

  • Biarmónico

  • Splines de thin-plate

SmoothingSpline de suavizadoSíNo
LowessNoSí
CustomEcuación personalizadaSíSí
Fit Custom Linear ModelsSíNo

El panel Results muestra las especificaciones del modelo, los valores de los coeficientes y las estadísticas de bondad del ajuste.

Sugerencia

Si su ajuste tiene problemas, los mensajes del panel Results ayudan a identificar mejor la configuración.

La app Curve Fitter proporciona una selección de tipos de ajustes y configuraciones en el panel Fit Options que puede cambiar para intentar mejorar su ajuste. Pruebe primero con los valores predeterminados y, a continuación, experimente con otras configuraciones. Para obtener más detalles sobre cómo utilizar las opciones de ajuste disponibles, consulte Especificar las opciones de ajuste y los puntos de partida optimizados.

Puede probar varias configuraciones para un solo ajuste y puede crear varios ajustes que desee comparar. Cuando crea varios ajustes en la app Curve Fitter, puede comparar distintos tipos de ajustes y configuraciones unos al lado de los otros. Para obtener más información, consulte Create Multiple Fits in Curve Fitter App.

Seleccionar el tipo de modelo de forma programática

Puede especificar el nombre de un modelo de biblioteca como vector de caracteres o escalar de cadena cuando llama a la función fit. Por ejemplo, puede especificar un modelo poly2 cuadrático:

f = fit(x,y,"poly2")

Para ver todos los nombres de modelos de biblioteca disponibles, consulte Lista de modelos de biblioteca para ajuste de curvas y de superficie.

También puede utilizar la función fittype para construir un objeto fittype para un modelo de biblioteca, y utilizar fittype como entrada para la función fit.

Utilice la función fitoptions para averiguar qué parámetros puede establecer; por ejemplo:

fitoptions(poly2)

Para ver ejemplos, consulte las secciones para cada tipo de modelo, enumeradas en la tabla en Seleccionar tipo de modelo de forma interactiva. Para obtener más detalles sobre todas las funciones para crear y analizar modelos, consulte Ajuste de curvas y superficies.

Centrar y escalar datos

La mayoría de ajustes de la app Curve Fitter ofrecen la opción Center and scale en el panel Fit Options. Cuando selecciona esta opción, la app reajusta el modelo con los datos centrados y escalados. En la línea de comandos, utilice la función fitoptions con la opción Normalize establecida en 'on'.

Para mitigar los problemas numéricos con variables de distintas escalas, normalice los datos de entrada (también conocidos como datos predictores). Por ejemplo, supongamos que las entradas del ajuste de superficie son regímenes de motor con un intervalo de 500–4500 r/min y el porcentaje de carga del motor con un intervalo de 0–1. Center and scale mejora generalmente el ajuste debido a la gran diferencia de escala entre las dos entradas. Sin embargo, si las entradas están en las mismas unidades o en una escala similar (por ejemplo, las referencias al este y al norte para datos geográficos), Center and scale resulta menos útil. Cuando normaliza entradas con esta opción, los valores de los coeficientes ajustados cambian cuando se comparan con los datos originales.

Si va a ajustar una curva o superficie para estimar coeficientes, o si los coeficientes tienen significado físico, desmarque la casilla de verificación Center and scale. Las gráficas de la app Curve Fitter siempre utilizan la escala original, independientemente del estado de Center and scale.

En la línea de comandos, para centrar y escalar los datos antes del ajuste, cree la estructura options utilizando la función fitoptions con options.Normal especificado como 'on'. A continuación, utilice la función fit con las opciones especificadas.

options = fitoptions;
options.Normal = 'on';
options
options = 

  basefitoptions with properties:

    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'None'

load census
f1 = fit(cdate,pop,"poly3",options)

Especificar las opciones de ajuste y los puntos de partida optimizados

Opciones de ajuste en la app Curve Fitter

En la app Curve Fitter, puede especificar opciones de ajuste de forma interactiva en el panel Fit Options. Todos los ajustes excepto Interpolant, Smoothing Spline y Lowess tienen opciones de ajuste configurables. Las opciones disponibles dependen del ajuste que seleccione (es decir, ajuste lineal, no lineal o no paramétrico).

  • Las opciones aquí descritas están disponibles para modelos no lineales.

  • Las restricciones de coeficiente inferior y superior son las únicas opciones de ajuste disponibles en el panel Fit Options para los ajustes Polynomial.

  • Los ajustes no paramétricos (es decir, los ajustes Interpolant, Smoothing Spline y Lowess) no tienen Advanced Options.

El panel Fit Options para el ajuste Exponential de un solo término se muestra aquí. Los valores Coefficient Constraints son para los datos census.

Fit Options pane showing Advanced Options for exponential fit

  • Method: método de ajuste

    La app selecciona automáticamente el valor Method basándose en el ajuste que utilice. Para ajustes lineales y no lineales, el valor Method es LinearLeastSquares y NonlinearLeastSquares, respectivamente.

  • Robust: opción para utilizar el método de ajuste robusto por mínimos cuadrados

    • Off: no usar el ajuste robusto (valor predeterminado).

    • On: ajustar con el método robusto predeterminado (ponderaciones bicuadradas).

    • LAR: ajustar minimizando el mínimo de valores residuales absoluto (LAR).

    • Bisquare: ajustar minimizando la suma de cuadrados de los valores residuales, y reducir la ponderación de los valores atípicos utilizando ponderaciones bicuadradas. En la mayoría de los casos, esta opción es la mejor elección para el ajuste robusto.

  • Algorithm: algoritmo utilizado para el ajuste

    • trust-region: esta opción es el algoritmo predeterminado y debe usarse si especifica restricciones de coeficiente inferior o superior.

    • Levenberg-Marquardt: si el algoritmo trust-region no produce un ajuste razonable, y no dispone de restricciones de coeficiente, pruebe el algoritmo Levenberg-Marquardt.

  • DiffMinChange: cambio mínimo en los coeficientes para matrices jacobianas por diferencias finitas. El valor predeterminado es 10-8.

  • DiffMaxChange: cambio máximo en los coeficientes para matrices jacobianas por diferencias finitas. El valor predeterminado es 0.1.

Observe que DiffMinChange y DiffMaxChange se aplican a:

  • Cualquier ecuación personalizada no lineal, es decir, una ecuación no lineal que escriba

  • Algunas de las ecuaciones no lineales proporcionadas con Curve Fitting Toolbox

DiffMinChange y DiffMaxChange no se aplican a ecuaciones lineales.

  • MaxFunEvals: número máximo de evaluaciones de función (modelo) permitidas. El valor predeterminado es 600.

  • MaxIter: número máximo de iteraciones permitidas para el ajuste. El valor predeterminado es 400.

  • TolFun: tolerancia de terminación utilizada en condiciones de detención que incluyen el valor de la función (modelo). El valor predeterminado es 10-6.

  • TolX: tolerancia de terminación utilizada en condiciones de detención que incluyen los coeficientes. El valor predeterminado es 10-6.

  • Coefficients: símbolos para los coeficientes desconocidos que se van a ajustar.

  • StartPoint: los valores iniciales del coeficiente. Los valores predeterminados dependen del ajuste. En el caso de los ajustes Rational, Weibull y personalizados, los valores predeterminados se seleccionan aleatoriamente dentro del intervalo [0 1]. En el caso de todos los demás modelos no lineales de la galería Fit Type, los valores de partida dependen del conjunto de datos y se calculan de forma heurística.

  • Lower: límites inferiores de los coeficientes ajustados. La app utiliza estos límites solo con el algoritmo de ajuste trust-region. Los límites inferiores predeterminados para la mayoría de ajustes en el panel Fit Options son -Inf, lo que indica que los coeficientes están desacotados. Sin embargo, algunos modelos tienen límites inferiores predeterminados que son finitos. Por ejemplo, en el caso de los ajustes Gaussian, la app restringe el parámetro de anchura para que no pueda ser inferior a 0.

  • Upper: límites superiores de los coeficientes ajustados. La app utiliza estos límites solo con el algoritmo de ajuste trust-region. Los límites superiores predeterminados para todos los ajustes en el panel Fit Options son Inf, lo que indica que los coeficientes están desacotados.

Para obtener más detalles, consulte Puntos de partida optimizados y restricciones predeterminados.

Para obtener más información sobre estas opciones de ajuste, consulte la función lsqcurvefit (Optimization Toolbox).

Puntos de partida optimizados y restricciones predeterminados

Los puntos de partida y las restricciones predeterminados de los coeficientes para los ajustes en el panel Fit Type se muestran en la siguiente tabla. Si los puntos de partida están optimizados, se calculan de forma heurística basándose en el conjunto de datos actual. Los puntos de partida aleatorios se definen en el intervalo [0 1] y los modelos lineales no requieren puntos de partida. Si un modelo no tiene restricciones, los coeficientes no tienen ni un límite inferior ni un límite superior. Puede anular los puntos de partida y las restricciones predeterminados proporcionando los valores que desee en el panel Fit Options.

Ajuste

Puntos de partida

Restricciones

Linear Fitting

N/A

Ninguna

Custom Equation

Aleatorio

Ninguna

Exponential

Optimizado

Ninguna

Logarithmic

N/A

Ninguna

Fourier

Optimizado

Ninguna

Gaussian

Optimizado

ci > 0

Polynomial

N/A

Ninguna

Power

Optimizado

Ninguna

Rational

Aleatorio

Ninguna

Sum of Sine

Optimizado

bi > 0

Weibull

Aleatorio

a, b > 0

Sigmoidal

Optimizado

x/c>0

Los ajustes Sum of Sine y Fourier son especialmente susceptibles a los puntos de partida y puede que los valores optimizados resulten precisos solo para algunos términos en las ecuaciones asociadas.

Especificar opciones de ajuste en la línea de comandos

Cree la estructura de opciones de ajuste predeterminado y defina la opción para centrar y escalar los datos antes del ajuste:

options = fitoptions;
options.Normal = 'on';
options
options = 

  basefitoptions with properties:

    Normalize: 'on'
      Exclude: []
      Weights: []
       Method: 'None'

Modificar la estructura de las opciones de ajuste predeterminadas es útil cuando desea definir los campos Normalize, Exclude o Weights y luego ajustar los datos con las mismas opciones, pero con distintos métodos de ajuste. Por ejemplo:

load census
f1 = fit(cdate,pop,"poly3",options);
f2 = fit(cdate,pop,"exp1",options);
f3 = fit(cdate,pop,"cubicsp",options);

Las opciones de ajuste que dependen de datos se devuelven en el tercer argumento de salida de la función fit. Por ejemplo, el parámetro de suavizado para un spline de suavizado depende de datos:

[f,gof,out] = fit(cdate,pop,"smooth");
smoothparam = out.p
smoothparam =
    0.0089

Utilice opciones de ajuste para modificar el parámetro de suavizado para un nuevo ajuste:

options = fitoptions("Method","Smooth","SmoothingParam",0.0098);
[f,gof,out] = fit(cdate,pop,"smooth",options);

Para obtener más detalles sobre cómo usar las opciones de ajuste, consulte la función fitoptions.

Consulte también

Apps

Funciones

Temas