Ajuste interactivo
Interfaz de usuario de ajuste básico
La interfaz de usuario de ajuste básico de MATLAB® le permite:
Modelar datos mediante una interpolación por splines, una interpolación que conserva la forma, o un polinomio hasta el décimo grado
Representar uno o más ajustes junto con datos
Representar los valores residuales de los ajustes
Calcular los coeficientes del modelo
Calcular la norma de los valores residuales (una estadística que puede utilizar para analizar cómo de bien se ajusta un modelo a sus datos)
Utilizar el modelo para interpolar o extrapolar fuera de los datos
Guardar los coeficientes y los valores calculados en el área de trabajo de MATLAB para utilizarlos fuera del cuadro de diálogo
Generar código de MATLAB para recalcular los ajustes y reproducir las gráficas con nuevos datos
Nota
La interfaz de usuario de ajuste básico solo está disponible para gráficas en dos dimensiones. Para obtener un análisis de regresión y ajuste más avanzado, consulte la documentación de Curve Fitting Toolbox™ y Statistics and Machine Learning Toolbox™.
Preparar el ajuste básico
La interfaz de usuario de ajuste básico ordena los datos en orden ascendente antes del ajuste. Si el conjunto de datos es grande y los valores no se ordenan en orden ascendente, la interfaz de usuario de ajuste básico tardará más en procesar los datos antes de ajustarlos.
Puede acelerar la interfaz de usuario de ajuste básico ordenando primero los datos. Para crear vectores ordenados x_sorted
e y_sorted
a partir de vectores x
e y
, utilice la función sort
de MATLAB:
[x_sorted, i] = sort(x); y_sorted = y(i);
Abrir la interfaz de usuario de ajuste básico
Para utilizar la interfaz de usuario de ajuste básico, primero debe representar los datos en una ventana utilizando cualquier comando de representación gráfica de MATLAB que produce (solo) datos x e y.
Para abrir la interfaz de usuario de ajuste básico, seleccione Tools > Basic Fitting de los menús en la parte superior de la ventana.
Ejemplo: Usar la interfaz de usuario de ajuste básico
En este ejemplo se muestra cómo utilizar la interfaz de usuario de ajuste básico para ajustar, visualizar, analizar, guardar y generar código para las regresiones polinomiales.
Cargar y representar datos de censos
El archivo census.mat
contiene datos de población de los EE. UU. de los años 1790 a 1990 en intervalos de 10 años.
Para cargar y representar los datos, escriba los siguientes comandos en la línea de comandos de MATLAB:
load census plot(cdate,pop,'ro')
El comando load
añade las variables al área de trabajo de MATLAB:
cdate
: un vector columna que contiene los años de 1790 a 1990 en incrementos de 10. Es la variable predictora.pop
: un vector columna con población de EE. UU. para cada año encdate
. Es la variable de respuesta.
Los vectores de datos se ordenan en orden ascendente, por año. La gráfica muestra la población como una función de año.
Ahora puede ajustar en una ecuación los datos para modelar el crecimiento de la población a lo largo del tiempo.
Predecir los datos del censo con un ajuste polinomial cúbico
Abra el cuadro de diálogo Ajuste básico seleccionando Tools > Basic Fitting en la ventana de la figura.
En el área TYPES OF FIT del cuadro de diálogo Ajuste básico, active la casilla de verificación Cubic para ajustar un polinomio cúbico a los datos.
MATLAB utiliza la selección para ajustar los datos y añade la línea de regresión cúbica a la gráfica de la siguiente manera.
En el cálculo del ajuste, MATLAB encuentra problemas y genera la siguiente advertencia:
Esta advertencia indica que los coeficientes calculados para el modelo son sensibles a errores aleatorios en la respuesta (la población medida). También sugiere algunas cosas que puede hacer para obtener un mejor ajuste.
Continúe utilizando un ajuste cúbico. Como no puede añadir nuevas observaciones a los datos del censo, mejore el ajuste transformando los valores que tiene en puntuaciones z antes de volver a calcular un ajuste. Active la casilla de verificación Center and scale x-axis data en la esquina superior derecha del cuadro de diálogo para que la herramienta de ajuste básico realice la transformación.
Para saber cómo funcionan el centrado y escalado de datos, consulte Cómo calcula los ajustes la herramienta de ajuste básico.
En ERROR ESTIMATION (RESIDUALS), seleccione la casilla de verificación Norm of residuals. Seleccione Bar como Plot Style.
Al seleccionar estas opciones se crea una subgráfica de valores residuales como una gráfica de barras.
El ajuste cúbico es un mal predictor antes del año 1790, donde indica una disminución de la población. El modelo parece aproximarse a los datos razonablemente bien después de 1790. Sin embargo, un patrón en los valores residuales muestra que el modelo no cumple con la suposición de error normal, que es una base para el ajuste de mínimos cuadrados. La línea identificada data 1 en la leyenda son los valores de los datos observados x (cdate
) e y (pop
). La línea de regresión Cubic presenta el ajuste después de centrar y escalar los valores de los datos. Observe que la figura muestra las unidades de datos originales, aunque la herramienta calcula el ajuste mediante puntuaciones z transformadas.
Para comparar, intente ajustar otra ecuación polinómica a los datos del censo seleccionándola en el área TYPES OF FIT.
Visualizar y guardar los parámetros de ajuste cúbico
En el cuadro de diálogo Ajuste básico, haga clic en el botón Expand Results para mostrar los coeficientes estimados y la norma de los valores residuales.
Guarde los datos de ajuste en el área de trabajo de MATLAB haciendo clic en el botón Export to Workspace en el panel de resultados numéricos. Se abre el cuadro de diálogo Guardar ajuste en el área de trabajo.
Con todas las casillas de verificación seleccionadas, haga clic en OK para guardar los parámetros de ajustes como una estructura fit
de MATLAB:
fit
fit = struct with fields: type: 'polynomial degree 3' coeff: [0.9210 25.1834 73.8598 61.7444]
Ahora, puede usar los resultados de ajuste en la programación de MATLAB, fuera de la interfaz de usuario de ajuste básico.
R2, el coeficiente de determinación
Puede obtener una indicación de lo bien que una regresión polinomial predice los datos observados calculando el coeficiente de determinación o R-cuadrado (escrito como R2). La estadística R2, que oscila entre 0 y 1, mide lo útil que es la variable independiente en la predicción de los valores de la variable dependiente:
Un valor de R2 cercano a 0 indica que el ajuste no es mucho mejor que el modelo
y = constant
.Un valor de R2 cercano a 1 indica que la variable independiente explica la mayor parte de la variabilidad en la variable dependiente.
R2 se calcula a partir de los valores residuales, las diferencias con signo entre un valor dependiente observado y el valor que su ajuste predice para él.
valores residuales = yobservada - yajustada | (1) |
El número R2 para el ajuste cúbico en este ejemplo, 0,9988, se ubica en FIT RESULTS en el cuadro de diálogo Ajuste básico.
Para comparar el número R2 para el ajuste cúbico con un ajuste lineal de mínimos cuadrados, seleccione Linear en TYPES OF FIT y obtenga el número R2, 0,921. Este resultado indica que un ajuste lineal de mínimos cuadrados de los datos de población explica el 92,1% de su varianza. Como el ajuste cúbico de estos datos explica el 99,9% de esa varianza, esta última parece ser un mejor predictor. Sin embargo, debido a que un ajuste cúbico predice utilizando tres variables (x, x2 y x3), un valor R2 básico no refleja completamente lo robusto que es el ajuste. Una medida más apropiada para evaluar la bondad de los ajustes multivariados es R2 ajustado. Para obtener información sobre el cálculo y el uso de R2 ajustado, consulte Valores residuales y bondad del ajuste.
Interpolar y extrapolar los valores de población
Supongamos que desea utilizar el modelo cúbico para interpolar la población de EE. UU. en 1965 (una fecha no proporcionada en los datos originales).
En el cuadro de diálogo Ajuste básico en INTERPOLATE / EXTRAPOLATE DATA, introduzca el valor de X 1965 y marque la casilla Plot evaluated data.
Nota
Utilice los valores de X
sin escala y sin centrar. No es necesario centrar y escalar primero, a pesar de que ha seleccionado escalar los valores de X
para obtener los coeficientes en Predecir los datos del censo con un ajuste polinomial cúbico. La herramienta Ajuste básico realiza los ajustes necesarios en segundo plano.
Los valores de X
y los valores correspondientes para f(X)
se calculan a partir del ajuste y se representan de la siguiente manera:
Generar un archivo de código para reproducir el resultado
Después de completar una sesión de ajuste básico, puede generar código de MATLAB que vuelva a calcular ajustes y reproduzca gráficas con nuevos datos.
En la ventana Figura, seleccione File > Generate Code.
Esto crea una función y la muestra en el editor de MATLAB. El código muestra cómo reproducir mediante programación lo que hizo de forma interactiva con el cuadro de diálogo Ajuste básico.
Cambie el nombre de la función en la primera línea de
createfigure
a algo más específico, comocensusplot
. Guarde el archivo de código en la carpeta actual con el nombre del archivocensusplot.m
. La función comienza con:function censusplot(X1, Y1, valuesToEvaluate1)
Genere algunos datos nuevos del censo, alterados aleatoriamente:
rng('default') randpop = pop + 10*randn(size(pop));
Reproduzca la gráfica con los nuevos datos y vuelva a calcular el ajuste:
censusplot(cdate,randpop,1965)
Necesita tres argumentos de entrada: los valores de x,y (
data 1
) representados en la gráfica original, además de un valor de x para un marcador.En la siguiente ilustración se muestra la gráfica que crea el código generado. La nueva gráfica coincide con la apariencia de la figura a partir de la cual se generó el código, excepto por los valores de los datos de y, la ecuación para el ajuste cúbico y los valores residuales en la gráfica de barras, como se esperaba.
Cómo calcula los ajustes la herramienta de ajuste básico
La herramienta Ajuste básico llama a la función polyfit
para calcular ajustes polinomiales. Llama a la función polyval
para evaluar los ajustes. polyfit
analiza sus entradas para determinar si los datos están bien acondicionados para el grado de ajuste solicitado.
Cuando encuentra datos mal condicionados, polyfit
calcula la mejor regresión que puede, pero también devuelve una advertencia de que el ajuste podría mejorarse. La sección de ejemplo de ajuste básico Predecir los datos del censo con un ajuste polinomial cúbico muestra esta advertencia.
Una forma de mejorar la fiabilidad del modelo es añadir puntos de datos. Sin embargo, añadir observaciones a un conjunto de datos no siempre es factible. Una estrategia alternativa es transformar la variable predictora para normalizar su centro y escala. (En el ejemplo, el predictor es el vector de las fechas del censo).
La función polyfit
normaliza calculando las puntuaciones z:
donde x es el predictor, μ es la media de x y σ es la desviación estándar de x. Las puntuaciones z dan a los datos una media de 0 y una desviación estándar de 1. En la interfaz de usuario de ajuste básico, se transforman los datos del predictor a puntuaciones z seleccionando la casilla de verificación Center and scale x-axis data.
Después de centrar y escalar, los coeficientes del modelo se calculan para los datos de y como una función de z. Estos son diferentes (y más robustos) que los coeficientes calculados para y como función de x. La forma del modelo y la norma de los valores residuales no cambian. La interfaz de usuario de ajuste básico cambia automáticamente las puntuaciones z para que el ajuste se represente en la misma escala que los datos x originales.
Para comprender la forma en que se utilizan los datos centrados y escalados como intermediarios para crear la gráfica final, ejecute el código siguiente en la ventana de comandos:
close load census x = cdate; y = pop; z = (x-mean(x))/std(x); % Compute z-scores of x data plot(x,y,'ro') % Plot data as red markers hold on % Prepare axes to accept new graph on top zfit = linspace(z(1),z(end),100); pz = polyfit(z,y,3); % Compute conditioned fit yfit = polyval(pz,zfit); xfit = linspace(x(1),x(end),100); plot(xfit,yfit,'b-') % Plot conditioned fit vs. x data
Las gráficas polinomiales cúbicas centradas y escaladas se representan como una línea azul, como se muestra aquí:
En el código, el cálculo de z
ilustra cómo normalizar los datos. La función polyfit
realiza la transformación en sí misma si proporciona tres argumentos de retorno al llamarla:
[p,S,mu] = polyfit(x,y,n)
p
se basan ahora en la normalización de x
. El vector devuelto mu
contiene la media y la desviación estándar de x
. Para obtener más información, consulte la página de referencia de polyfit
.