REGRESION POLINOMIAL POR MINIMOS CUADRADOS

INTRODUCCIÓN

En este documento se presenta la fundamentación teórica del método de regresión polinomial aplicando mínimos cuadrados, así como la solución de incógnitas resultantes como son el error absoluto y cuadrático, la definición adecuada de la función objetivo utilizada por el método y la obtención de un algoritmo matemático implementado en un lenguaje de programación de libre elección capaz de mostrar los polinomios de mínimos cuadrados y sus valores de aproximación. Para llegar al resultado final se encontraron las gráficas de la recta, la parábola y el polinomio de grado 3 de mínimos cuadrados para una tabla de datos, así como el error absoluto (E)1y el error relativo (Erms)2. Para las incógnitas mencionadas anteriormente [1][2] se determinó cual es la mejor aproximación. El documento pretende dar al estudiante de ingeniería en instrumentación y control, específicamente de la asignatura de procesos estocásticos una base sólida para la identificación de sistemas.
Palabras clave: regresión polinomial, mínimos cuadrados, error

1.            INTRODUCCIÓN

Cuando se tienen diversos problemas en el ámbito ingenieril sobre todo aquellos que son resultados experimentales, se hace necesario determinar una expresión matemática donde se relacione a la variable dependiente con la variable independiente. Se sabe que por definición general la variable dependiente es la X y la variable independiente es la Y.  La relación entre las variables es una función de la forma
En un experimento no se tiene una función sino un conjunto de datos. La idea es: para un conjunto de datos se hace necesario encontrar una función polinómica que puede ser un polinomio de grado 1, 2 y 3 que mejor se ajuste a los datos dados, es decir que se aproximen o bien pasen por los puntos.
Se puede trazar una curva que se aproxime a los datos, teniendo en cuenta que entre los datos y la curva existen unos errores apreciables como son (DISTANCIA DE LA CURVA AL PUNTO). Por ello se hace necesario hallar la curva que mejor se ajuste a dichos datos. El caso es que no existe una expresión matemática para la función sino una tabla de valores de la forma:
El objetivo consiste en encontrar una función que mejor se ajuste a los datos dados es decir una función cuya representación gráfica sea una curva que se acerque de la mejor manera a los datos dados. La figura 1 ilustra un conjunto de cinco puntos del plano y dos posibles curvas de aproximación una de las cuales es una recta y otra es una parábola. En el gráfico por ejemplo se puede observar que el dato está separado de la recta a una distancia la cual es considerada como error absoluto
 
El error absoluto es igual a la sumatoria de la diferencia entre la función modelada bien sea lineal, o polinómica y los valores de la variable independiente es decir los valores de y elevados todos al cuadrado.
 
 
Una de las condiciones es básicamente que 

esto lo que quiere decir es que el grado de la función no se puede pasar hasta tercer grado. En caso de que eso ocurra ya el polinomio no sería considerado de regresión sino de interpolación.

 
Para determinar los coeficientes del polinomio se procede minimizando la función de error la cual puede expresarse como:
 
 
Con los conceptos adquiridos en asignaturas como cálculo en varias variables se procede a minimizar la función derivando parcialmente respecto a cada una de las incógnitas e igualando a cero, resultando un sistema de m+1 ecuaciones lineales. Cabe mencionar que la más popular de las regresiones es la lineal. Esta regresión consiste en determinar la recta que mejor se ajusta en un conjunto de puntos. Cuando no hay mucha dispersión de datos se recurre a este tipo de regresión. Si hay mucha dispersión es conveniente aumentar el grado de la regresión.
 
Si se cancela el 2 en las ecuaciones anteriores y se desarrolla lo que está dentro del paréntesis y se usa que
 
Se obtiene lo siguiente.
 
 
 
El sistema anterior representa un sistema de m+1 ecuaciones con m+1 incógnitas  a1,a2,a3…… que se llama ECUACIONES NORMALES. Este sistema de ecuaciones normales se puede escribir de la siguiente forma.
 
 
Estas ecuaciones se pueden producir a partir de un polinomio de grado m denominado:
 
Multiplicando a ambos lados por
 
 
Sumando sobre k
Finalmente los datos se almacenan en una matriz de coeficientes del sistema de ecuaciones normales la cual es simétrica y no singular siempre que las , k=0,1,n sean distintas , por lo tanto el sistema tiene solución única aunque la matriz puede estar mal condicionada cuando m es grande.
 
a continuación, se describe el procedimiento matemático para resolver el problema planteado
Para la siguiente tabla de datos.
 
Se debe encontrar los siguientes ítems
a)    Recta de minimos cuadrados con sus respectivos errores E y E(rms)
b)    Parábola de minimos cuadrados con sus respectivos errores E y E(rms)
c)     Polinomio de grado 3 de minimos cuadrados con sus respectivos errores E y E(rms)
d)    Gráfica simultánea de los puntos y de los respectivos gráficos de los ítems (a, b, c).
e)    Mejor aproximación de acuerdo al valor de E
f)      Mejor aproximación de acuerdo al valor de E(rms)
g)    Algoritmo en lenguaje de programación de libre elección.
Inicialmente se procedió con el cálculo de variables adicionales para encontrar la matriz de coeficientes y agrupar los datos ordenadamente. Asimismo, estos datos ayudaron a determinar las ecuaciones de parábola y polinómica de grado 3. Los resultados se presentan a continuación.
 
A partir de los datos obtenidos se procedió a obtener la matriz de coeficientes y aplicar los métodos ya conocidos en cursos como álgebra lineal. Para este caso se empleó el método del determinante.
El modelo de la ecuación lineal es el siguiente:
 
Una vez obtenido los valores de  y  se reemplazaron los valores en el modelo y se obtuvo la siguiente ecuación:
Luego de haber obtenido la ecuación de la recta se procedió a calcular el error cuadrático E y el error relativo medio E(rms). Para el error cuadrático se empleó la ecuación ya mencionada (3). Posteriormente se reemplazaron cada uno de los datos de  provenientes de la tabla en la ecuación obtenida.
 
 
La parábola de regresión está dada por:
 
Luego de haber obtenido la ecuación de la recta se procedió a calcular el error cuadrático E y el error relativo medio E(rms). Para el error cuadrático se empleó la ecuación ya mencionada (3). Posteriormente se reemplazaron cada uno de los datos de  provenientes de la tabla en la ecuación obtenida.
 
 
Una vez modeladas todos los respectivos polinomios, se procedió a graficar de manera simultánea las ecuaciones de regresión en conjunto con la nube de puntos. Desde Excel es posible obtener las ecuaciones de forma experimental agregando líneas de tendencia y seleccionando el gráfico y el grado del polinomio. Se pudo observar claramente que la mejor aproximación gráfica es la del polinomio de grado 3
 
De acuerdo a los errores absolutos y relativos, se concluye que la mejor aproximación la tiene el gráfico 3 que es la correspondiente a la regresión polinómica.

 

Finalmente se procedió a realizar el código en C para encontrar los coeficientes de cada una de las ecuaciones de regresión lineal, parabólica y polinomial.
include <iostream>   //librerias
#include <cstdlib>
#include <cmath>
#include <iomanip>
#include <sstream>
using namespace std;
void coeficientes(double *x,double *y,double **matriz,int grado,int nDatos);//Matriz del sistema de ecuaciones de los coeficientes.
void recorrido(double **matriz, int n,bool &op);//Recorre la matriz para resolverla por gauss jordan.
void reduccion (double **matriz, int i, int j,int n);//Reducción gauss jordan a ceros.
bool mdiagonal(double **matriz, int n);//Valída la matriz digonal antes de reducirla a unos.
void rauno(double **matriz,int n);//Reduduccion de la matriz diagonal a unos.
void pedirdatos(double *x,double *y,int nDatos);//Llena los vectores X y Y con los pares de coordenadas.
void imp(double **matriz, int n,bool op);//Impresion de los resultados.
void coeficientes(double *x,double *y,double **matriz,int grado,int nDatos) //coeficientes de la matriz
{
            double *s=new double[(2*grado)+1];   //Se crea un nuevo vector añadiendole los campos necesarios
            double suma;                         //sumatoria de variables x
            for(int k=0; k < 2*grado+1; k++){      //dependiendo del grado del polinomio se crea for con un campo adicional
                        suma=0.0;                      //se inicializa suma
                        for(int i=0; i < nDatos; i++)  //for dependiendo los numeros de datos
                                    suma+=pow(x[i], k);    //se eleva la variable y se reliza la sumatoria
                        s[k]=suma;                     //se lleva la sumatoria al vector
            }
            for(int k=0; k<grado+1; k++){           //se crea for para llenar los coeficientes en la matriz
                        suma=0.0;                       //se inicializa suma
                        for(int i=0; i < nDatos; i++)     //se crea for con cuantos datos tenga
                                    suma+=pow(x[i], k)*y[i];  //se realiza la operacion
                        matriz[k][grado+1]=suma;          //se lleva la sumatoria a la matriz
            } 
            for(int i=0; i < grado+1; i++){           //se realiza for para agregar los coeficientes de la matriz restantes
                        for(int j=0; j < grado+1; j++)   
                                    matriz[i][j]=s[i+j];
            }
}
void recorrido(double **matriz, int n,bool &op) 
CONCLUSIONES
·         Después de haber hecho todas las estimaciones matemáticas correspondientes se concluye que la regresión polinomial tiene como objetivo encontrar la mejor gráfica de aproximación que se acerque a los datos con errores mínimos de acercamiento. Además, tiene alta aplicabilidad en ingeniería ciencias y en el diseño de experimentos.
·         La Regresión polinomial es una buena herramienta para ajustar unos datos a una curva. Este método permite observar los datos en diferentes grados de polinomios lo cual es muy útil para comparar cual es la mejor opción
·         La correlación simple expresa el grado o la cercanía de la relación entre las dos variables en términos de un coeficiente de correlación que proporciona una medida indirecta de la variabilidad de los puntos alrededor de la mejor línea de ajuste- Ni la regresión ni la correlación dan pruebas de relaciones
·         A partir de los métodos de regresión se pueden hacer predicciones a largo plazo sin que estas hayan ocurrido.
·         el métodos más adecuados para efectuar los cálculos matriciales es el conocido como gauss jordan. Este método se utilizó llevando una matriz a forma escalonada de unos y ceros para hacer más fácil la obtención de los coeficientes de las ecuaciones de regresión. También se utilizó el método del determinante para calcular los coeficientes de una ecuación lineal.


1.      Referencias Bibliográficas

 [1]  Gerald, C.F & wheatley, P.O.(1990). Applied numerical methods.(4a ed). Reading, MA: Addison-Wesley
[2] Metodos numéricos para ingenieros/chapra, Steven C.; Canale Raymond P.. –3a.ed México: McGraw-Hill, 1999.
 [3] INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL http://www.bdigital.unal.edu.co/4831/43/958-9352-12-X._1999_15.pdf
[4] estadistica para ingenieros y científicos /William Navidi Editorial McGraw Hill Interamericana colección 1 edición
 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *