Ajuste programático
Funciones para modelos polinomiales de MATLAB
Dos funciones de MATLAB® pueden modelar sus datos con un polinomio.
Funciones de ajuste polinomial
Función | Descripción |
---|---|
| |
|
Si está intentando modelar una situación física, siempre es importante considerar si un modelo de un orden específico es significativo en su situación.
Modelo lineal con términos no polinómicos
En este ejemplo se muestra cómo ajustar los datos con un modelo lineal que contiene términos no polinómicos.
Cuando una función polinómica no produce un modelo satisfactorio de los datos, puede intentar utilizar un modelo lineal con términos no polinómicos. Por ejemplo, considere la siguiente función que es lineal en los parámetros , y , pero no lineal en los datos :
Puede calcular los coeficientes desconocidos , y construyendo y resolviendo un conjunto de ecuaciones simultáneas y resolviendo los parámetros. La sintaxis siguiente logra esto formando una matriz de diseño, donde cada columna representa una variable que se utiliza para predecir la respuesta (un término en el modelo) y cada fila corresponde a una observación de esas variables.
Introduzca t
e y
como vectores columna.
t = [0 0.3 0.8 1.1 1.6 2.3]'; y = [0.6 0.67 1.01 1.35 1.47 1.25]';
Forme la matriz de diseño.
X = [ones(size(t)) exp(-t) t.*exp(-t)];
Calcule los coeficientes del modelo.
a = X\y
a = 3×1
1.3983
-0.8860
0.3085
Por lo tanto, el modelo de los datos viene dado por
Ahora evalúe el modelo en puntos espaciados regularmente y represente el modelo con los datos originales.
T = (0:0.1:2.5)'; Y = [ones(size(T)) exp(-T) T.*exp(-T)]*a; plot(T,Y,'-',t,y,'o'), grid on title('Plot of Model and Original Data')
Regresión múltiple
En este ejemplo se muestra cómo utilizar la regresión múltiple para modelar datos que son una función de más de una variable predictora.
Cuando y es una función de más de una variable predictora, las ecuaciones de matriz que expresan las relaciones entre las variables deben expandirse para dar cabida a los datos adicionales. Esto se llama regresión múltiple.
Mida una cantidad para varios valores de y . Almacene estos valores en vectores x1
, x2
, e y
, respectivamente.
x1 = [.2 .5 .6 .8 1.0 1.1]'; x2 = [.1 .3 .4 .9 1.1 1.4]'; y = [.17 .26 .28 .23 .27 .24]';
Un modelo de estos datos es de la forma
La regresión múltiple resuelve los coeficientes desconocidos , , y minimizando la suma de los cuadrados de las desviaciones de los datos del modelo (ajuste de mínimos cuadrados).
Construya y resuelva el conjunto de ecuaciones simultáneas formando una matriz de diseño, X
.
X = [ones(size(x1)) x1 x2];
Resuelva los parámetros mediante el operador de barra invertida.
a = X\y
a = 3×1
0.1018
0.4844
-0.2847
El modelo de ajuste de mínimos cuadrados de los datos es
Para validar el modelo, busque el máximo del valor absoluto de la desviación de los datos del modelo.
Y = X*a; MaxErr = max(abs(Y - y))
MaxErr = 0.0038
Este valor es mucho menor que cualquiera de los valores de datos, lo que indica que este modelo sigue con precisión los datos.
Ajuste programático
En este ejemplo se muestra cómo utilizar las funciones de MATLAB para:
Cargue los datos del censo de muestra de census.mat
, que contiene datos de población de EE. UU. de los años 1790 a 1990.
load census
Esto añade las dos variables siguientes al área de trabajo de MATLAB.
cdate
es un vector columna que contiene los años 1790 a 1990 en incrementos de 10.pop
es un vector columna con los números de población de EE. UU. correspondientes a cada año encdate
.
Represente los datos.
plot(cdate,pop,'ro') title('U.S. Population from 1790 to 1990')
La gráfica muestra un patrón sólido, que indica una alta correlación entre las variables.
Calcular coeficientes de correlación
En esta porción del ejemplo, determinará la correlación estadística entre las variables cdate
y pop
para justificar el modelado de datos. Para obtener más información acerca de los coeficientes de correlación, consulte Correlación lineal.
Calcule la matriz correlación-coeficiente.
corrcoef(cdate,pop)
ans = 2×2
1.0000 0.9597
0.9597 1.0000
Los elementos en la diagonal de la matriz representan la correlación perfecta de cada variable consigo misma y son iguales a 1. Los elementos fuera de la diagonal están muy cerca de 1, lo que indica que hay una fuerte correlación estadística entre las variables cdate
y pop
.
Ajustar un polinomio a los datos
En esta parte del ejemplo se aplican las funciones polyfit
y polyval
de MATLAB para modelar los datos.
Calcule los parámetros de ajuste.
[p,ErrorEst] = polyfit(cdate,pop,2);
Evalúe el ajuste.
pop_fit = polyval(p,cdate,ErrorEst);
Represente los datos y el ajuste.
plot(cdate,pop_fit,'-',cdate,pop,'+'); title('U.S. Population from 1790 to 1990') legend('Polynomial Model','Data','Location','NorthWest'); xlabel('Census Year'); ylabel('Population (millions)');
La gráfica muestra que el ajuste polinomial cuadrático proporciona una buena aproximación a los datos.
Calcule los valores residuales para este ajuste.
res = pop - pop_fit; figure, plot(cdate,res,'+') title('Residuals for the Quadratic Polynomial Model')
Observe que la gráfica de los valores residuales muestra un patrón, lo que indica que un polinomio de segundo grado podría no ser adecuado para modelar estos datos.
Representar y calcular límites de confianza
Los límites de confianza son intervalos de confianza para una respuesta pronosticada. La anchura del intervalo indica el grado de certeza del ajuste.
En esta parte del ejemplo se aplican las funciones polyfit
y polyval
a los datos de muestra census
para producir límites de confianza de un modelo polinomial de segundo orden.
El código siguiente utiliza un intervalo de , que corresponde a un intervalo de confianza del 95% para muestras grandes.
Evalúe el ajuste y la estimación del error de predicción (delta).
[pop_fit,delta] = polyval(p,cdate,ErrorEst);
Represente los datos, el ajuste y los límites de confianza.
plot(cdate,pop,'+',... cdate,pop_fit,'g-',... cdate,pop_fit+2*delta,'r:',... cdate,pop_fit-2*delta,'r:'); xlabel('Census Year'); ylabel('Population (millions)'); title('Quadratic Polynomial Fit with Confidence Bounds') grid on
El intervalo del 95% indica que tiene un 95% de probabilidad de que una nueva observación caiga dentro de los límites.