NU "AJUSTE DE CUADRADOS MlNlMOS PARA POLINOMIOS" Fís. Francisco Cervantes de la Torre Dr. José Luis Fernández Chapou Fís. Roberto Tito Hernández Fís. Carlos Alejandro Vargas hE!AUNIVERSIDAD AUTBNOMA METROPOLITANA Casaabatadtarpo UNIDA0 AZCAPOTZALCO. Oivisión de Ciencias Básicas e Ingeniería Departamento de Ciencias Básicas ISBN-970-620-257-9 Abril de 1992 Francisco Cervantes de la Torre*,JoseLuis Ferndndez Chapoub Roberto Tito Hernández". Carlos Alejandro Vargasb. (a)Departamento de Sistemas, Area de Sistemas Computacionales. (b)Departamento de Ciencias Básicas, Area de Física. (c)Departamento de Materiales, Area Ciencia de Materiales. División de Ciencias Básicas e Ingeniería'. Universidad Autónoma Metropolitana-Azcapotzalco. Resumen. En este trabajo se discuten los principios fundamentales para un ajuste polinomial, dado un conjunto de datos. Se presenta un análisis matricial del problema de cuadrados mínimos, desarrollando así mismo una evaluación de la varianza, y de los errores asociados a los parametros ajustados; en lugar de la evaluación del coeficiente r2 que es muy común. Se presenta el programa basado en el algoritmo desarrollado, y se aplica a un problema específico. 'Este trabajo aparece como parte del proyecto FIMAS, un proyecto sobre la enseñanza de la Física para estudiantes de ciencias e ingeniería de la división de Ciencias Básicas e ingeniería. 3 1. FORMULACION GENERAL. En muchos experimentos se obtiene un conjunto de valores experimentales {YkrXk} donde k es el. número de datos. LOS valores de X corresponden a la variable independiente, esto es, la variable de control, con Y la variable dependiente, sus valores dependen de los de X. Con el conjunto de datos experimentales {YkJXk}, es posible en muchos casos encontrar una relación funcional entre Y y X. Consideremos el siguiente modelo matemático que se expresa por la relación general entre Y y X Y = EAi fi(x), i en el cual las A, son parámetros por determinar, I'i" un indice que varía de 1 a n, y flnll el número total de datos. La f i ( x ) es la funcional propuesta como hipótesis de trabajo. Yk representa a las variables observables, mientras que las Y ( Y , ) que aparecen en la relación (1.1) muestran los valores determinados una vez calculadas las 4, entonces Yobservable k ' cxk) ' = 1 Para determinar las A, utilizaremos el método de cuadrados mínimos, por ello es necesario establecer una hipótesis básica; l o s valores calculados (desconocidos) Y, difieren mínimamente de los valores observables Y,; esto puede expresarse por la correlación de cada una de sus diferencia cuadráticas, tal y como 5 se muestra en la siguiente relación sustituyendo la expresión para Y, llegamos a Y Ya que el cuadrado de la diferencia debe ser mínimo, minimizamos con respecto a l o s parámetros A,. c j por tanto la condición de mínimo implica que es la suma del sistema de ecuaciones para las 4. 2. REPRESENTACION MATRICIAL. A continuación interpretaremos matricialmente la ec.(1.3); observemos que las variables i i Y i i tienen un s o l o índice, esto es, se puede ver como una matriz columna Ó renglón. Matriz columna Ó renglón. Y, las funcionales = las podemos denotar por f,(XJ k = f j fjk donde las i i - j i l indican renglón y las i i k i i indican columna. Por lo tanto la relación (1.3) se puede expresar como: Ykfjk = k ,j 6 Aifffj” k.i.j por lo tanto tenemos: sea luego entonces tomando la transpuesta de fj, entonces por lo tanto obtenemos: y el cuál puede reescribirse como 7 por lo tanto TY donde A = ntA, (2.2) es la matriz de interés ya que incluye a los parámetros A desconocidos. Por tanto despejando de la ec.(2.2) tenemos: A = (!W)-lTY; (2.3) y con ello nuestro problema está resuelto. 3. Ejemplo de Aplicación. Supongamos que la variables observables es relación funcional X;$fi~$al, de entre nuestras la forma Y = a X + b ; el problema radica en la determinación de los coeficientes A,, con i = 1 , 2 ; dado que existen dos coeficientes: a y b. Los parámetros a y b son respecticvamente la pendiente y la ordenada al origen. La forma general de expresar la relación lineal es, y, = A1 fik donde los f, -+ A2 f2kr son elementos de una matriz de , con el número total de datos, entonces comparando las expresiones anteriores se tiene que fik 8 = k' A, = a & b. = Por lo tanto luego entonces Efectuando el producto de las dos matrices anteriormente definidas. n 1 1 N ,k=l c x k y corno el método \ - x 2 T Tt n J' ..................... obtener TQTp$$?, ............. . . . . . ..:,: para ............. ........ requiere de necesario calcular el determinante del producto n n k=l k=1 ello e,esto .............. ..... es es 2 luego entonces -% (TTt)-'= 1 n n - calculando el producto 9 x 2 TY 1 r. 2 y2 .. 7): * . xkyk yk la relación (2.3) se reduce a: finalmente llegamos Y n b = k=i xiE n n 'k-x x k C xkyk k=l k=l k=l n n k=l k=l nC xi- 2 xk) Como se esperaba se determinaron los parámetros 4, pero ¿Cuáles son los errores estadísticos asociados a las % ? . Para responder a esta pregunta, es necesario efectuar un análisis sobre los errores y su cuantificación. io 4. CALCULO DE ERRORES. Partiendo de un conjunto de datos experimentales . . . . I y dado que con el método de cuadrados mínimos obtenemos los .:..... ...-:........ donde las @&&@ ............... ... denotan al modelo establecido. Es posible ....... . .: .< determinar los errores asociados al método de ajuste realizado. Ya que contamos con dos conjuntos de valores de la variable dependiente Y ; las Y observables YE y, las Y calculadas Y,, la desviación estandard asociada a la variable dependiente Y está expresada por la siguiente relaciíjn el índice 4 indica el número de parámetros a ajustar. El problema ahora es el de determinar que tan confiable es el ajuste que se ha realizado; esto es, ¿cuál es el error asociado a los parámetros & ? . Por ello es necesario determinar la variancia asociada a los parámetros Ai. Si suponemos que a los universos de X , Y y 8 se les asocia una distribución Gaussiana (condición que se satisface en muchos casos Ó al invocar el teorema central del límite), la cantidad 11 indicará que cualquier r: tiene un 6 8 % de posibilidad de estar dentro del intervalo definido e s función de entonces una variación en 62 = aZ ax -6x ecesariamente que: 4- aZ --&y, aY (4.2) y como entonces puesto que ax y 6y pueden considerarse como perturbaciones independientes, entonces .. .... . .. .. ........ .... ...... .. . I por lo que la relación se reduce a: (4.3) y dado que La relación (4.3) no es más que la expresión de la variancia asociada a 5. Por lo tanto para determinar la variancia de los parámetros J+ recordemos que luego entonces la variancia asociada a los $+viene expresada por la relación: 12 si consideramos oyl=ay2 = . . . =ayn, obtenemos que : aA. u2 ( A i ) = u ; c (2) . (4.4) k-1 Ahora bien las no son mas que los elementos de la matriz .... ..:... de coeficientes ( 2 . 3 ) y si definimos por - - a j,s ~ tenemos jiT j,, s Y s , entonces por tanto (4.5) Sustituyendo esta Última expresión (4.5) en (4.4) tenemos lo cuál puede reducirse a 13 Sustituyendo esta expresión en la relación (4.4) obtenemos ff2(Ai) = c J ~ ( T T ~ ) ~ ~ . (4.6) Esta ecuación ( 4 . 6 ) determina la varianza de l o s parámetros A,, de forma tal que el error absoluto asociado a dichos parámetros se reduce a la siguiente expresión (4.7) donde l o s índices (ii) denotan a los elementos de la diagonal principal. 5. EJEMPLO : ERRORES ASOCIADOS AL PROBLEMA LINEAL. En estos párrafos evaluaremos los errores absolutos, asociados a un ajuste lineal; lo cuál se reduce a estudiar funciones del tipo Y=aX+b - xAifi(Xk); para este caso es simple comprobar que Por lo tanto de acuerdo a la relación asociada a los parhetros (4.6) la varianza a determinar, se reduce a las expresiones Y De la relación (4.7) se deduce que los errores absolutos asociados a los parámetros ( a y h) son 6 ( a )=- (J ( a ) fi Y 15 6. PROGRAMA DE AJUSTE DE CUADRADOS MINIMOS PARA UN POLINOMIO DE GRADO n, ESCRITO EN C. En los siguientes párrafos mostramos el programa del algoritmo discutido anteriormente, este se escribió en Turbo C. La explicación del programa aparece en los comentarios del listado2 / * PROGRAMA DE AJUSTE DE CUADRADOS MINIMOS */ PARA UN POLINOMIO DE GRADO N #include cstdio.h> #include cmath.h> / * DECLARACION DE VARIABLES GLOBALES * / float x[iOOl ,y[iOOI ; float T [401 [lo01 ,TT [lo01 [401; double TY [40],yc[iOOI ,multTTT[401 [40],A[1001, error[i001 ,yp,errorp[1001; int grado,ndatos; main (void) { / * DECLARACION DE FUNCIONES * / void lectura ( ) ,matrizT( ) ,transpT ( ) ,inversaT O , multipli TTT(),inversa TTT0,multipli T Y O , coeficieñtes ( 1 ,calculo-Y ( 1 ,va.rianza-cZicuio( 1 ; / * SE INVOCAN FUNCIONES *7 lectura ( 1 ; matrizT ( ) ; transpT ( 1 ; multipli TTTO ; inversa-FTT ( ) ; multipli-TY O ; coeficientes ( 1 ; calculo-Y ( ) ; varianza-calculo ( 1 ; 1 / * LECTUFU DE DATOS DE ENTRADA */' void lectura ( 1 { register int i; comentarios en caracteres / * .... * / *LOS c . aparecen entre los siguientes 17 int j; clrscr ( 1 ; / * LECTURA DEL GRADO DEL POLINOMIO A AJUSTAR Y DEL NUMERO TOTAL DE DATOS. */ printf(Il\n\n\n\n\t\t\aProporciona Grado de Polinomio a Ajustar: ; scanf ( Il%dtf, &grado) ; printf ("\n\n\t\t\a# total de datos = ; scanf ( Ii%d1l, &ndatos) ; / * LECTURA DE DATOS EXPERIMENTALES */ clrscr ( 1 ; for(i=O;icndatos;++i) { j=i+i; printf ( "\t\t\b\a X [%dl = U , j ) ; scanf ( %g &x[il) ; printf ( I'\t\t\aY[%dl = I ! , j 1 ; scanf ( Il%gIl,&y [il 1 ; 'I I 1 1 / * DETERMINACION DE LA MATRIZ T * / void matrizT ( ) { 1 register int i,j; int k; k=grado; for(i=O;ic=grado;++i) { for ( j =O ;jendatos ;++j { T[il [jl=pow(x[jl,k); J / * CALCULO DE LA TRANSPUESTA DE T * / void transpT ( ) { register int i,j; for (i=O;ic=grado;++i) for (j=O; jcndatos;++j) TT [jl [il =T[il [jl ; 1 / * DETERMINACION DEL PRODUCTO DE T POR SU TRANSPUESTA * / void multipli-TTTO { register int i,j,k; double suma=O.; for(i=O;i<=grado;++i) c for ( j=O ;j<=grado;++j) { for(k=O;kcndatos;++k) { suma+=T[il Ekl *TT[kI [jl ; 1 18 multTTT[il [j]=suma; suma=o.; 1 / * CALCULO DE LA INVERSA * / void inversa-TTT ( ) { register int ifj k; for (k=O;k<=grado;++k) { for ( j=O ;j<=grado;++j) { if (j!=k) multTTT[kl [jl=multTTT[k] [jl/multTTT[kl [kl ; 1 multTTT [kl [kl=l/multTTT[kl [kl ; for(i=O;ic=grado;++i) { if(i ! = k) { for ( j=O ;j <=grado;++j) { if (j ! = k) multTTT[i] [jl=multTTT[il[jlmultTTT [kl [jI *multTTT [il [kl ; for(i=O;i<=grado;++i) { if (i != k) multTTT [il [kl=-multTTT[il [kl*multTTT [kl [kl ; / * DETERMINACION DE LA MATRIZ T void multipli-TY() { register int i,j; double suma=O.; for (i=O;i<=grado;++i) { for( j =O ;j cndatos;+ + j) { suma+=T[il j1 * y [ j 1 1 POR EL VECTOR Y */ ; TY [i]=suma; suma=O.; 1 I / * DETERMINACION DE LOS COEFICIENTES A(i) * / void coeficientes ( ) { register int ifj; double suma=O.; for(i=O;i<=grado;++i) { for ( j=O; jendatos;++j ) 19 { 1 suma+=multTTT[i][J]*TY[j]; A[il =suma; suma=O.; 1 1 / * DETERMINACION DE LAS Y TEORICAS * / void calculo-Y() { register int i,j; float suma=O.; double sumay=O.; for(i=O;icndatos;++i) { for( j=O ;j<=grado;++ j) { suma+=A[jl*pow(x[il ,grado-j); 1 yc [il=suma; sumay+=y[il ; - }suma=o ; yp-sumay/ndatos; } / * CALCULO DE LOS ERRORES * / void varianza-calculo() { register int irj; double varianza,difer,diferp,r2,r; float suma=O.,sumap=O.; for (i=O;iadatos;++i) { difer=yc [il-y[il; diferp=y[il -yp; suma+=pow(difer,2 ) ; sumap+=pow(diferp,2); > r2= (sumap-suma)/sumap; r=sqrt(r2); varianza=suma/(ndatos-(grado+l)) ; printf ( "\nvarianza=%g rA2=%g r=%gtt,varianza,r2,r) ; for (j=O;jc=grado;++j) { error[j]=sqrt ( (varianza*multTTT[jl[jl) /ndatos); if (A[jl ! = O ) errorp [j]=fabs (error[j1 /A [jI *loo) ; printf ( "\n\n\t\a A[%ul =%g ERROR [%u1=%g", j,A[jl rj,error[Jl); printf ( tt\n\t\tERROR-PORCentual [%u]= % g t j t ,,errorp [ j1 ; getch0 ; 1 > ' 20 Como puede observarse en las Últimas lineas del programa, en el se determinan los errores asociados a los parámetros A,, este proporciona como datos de salida además, a la varianza y al coeficiente de correlación r. 7. USO DEL ALGORITMO DE CUADRADOS MINIMOS PARA UN POLINOMI0 DE GRADO n. A continuación ilustramos el uso de las ecuaciones (2.31, (4.6) y (4.7), para realizar un ajuste a un conjunto de datos; los cuáles se muestran en la Fig.(l) 21 K X Y 1 0.05 O. 956 2 0.11 O. 890 3 0.15 O . 832 4 0.31 O. 717 5 0.46 O. 571 6 0.52 O . 539 7 0.70 O. 378 8 0.74 0.370 9 0.82 0.306 10 0.98 0.242 11 1.17 O. 104 TABLA I. DATOS A AJUSTAR. L o s datos mostrados son en realidad una perturbación de la relación Y=1-x+o. 2x2 será de gran interés mostrar, que tambien se aproximan l o s datos a esta función, con el algoritmo desarrollado en párrafos anteriores. Si consideramos un ajuste de un polinomio cuadrático, el programa nos proporciona la siguiente relación, 22 con un coeficiente de correlación ~ 1 0 . 9 9 8 8 3 5 y una varianza de 0.000233439; además con los siguientes errores absolutos y porcentuales asociados a los parámetros 4, A,=O. 2 2 4 6 8 2 1 0 . 0 1 2 1 3 2 2 A,=-1.01804210.0144573 A 3 = 0 .9 9 7 9 6 8 + - O . 0 0 3 5 5 4 9 4 Es E% ( A l )=5.39973. E% (A,) = 1 . 4 2 0 1 1 ; E% (A,) =O. 3 5 6 2 1 8 . obvio que no esperábamos reproducir exactamente los coeficientes del polinomio, debiüo a las fluctuaciones que agregamos a los datos. En un problema real en general se puede tener duda acerca del grado del polinomio a usar en el ajuste. A continuación mostramos una tabla, en la cuál aparecen las ecuaciones de polinomios ajustados a través del programa. Se realizaron ajustes para grados üe polinomios del 1 al 9, mostrándose también l o s resultados del coeficiente de correlación r y de la varianza. 23 -I G ECUACION 1 Y=-O .760407X+O.952277 2 3 VARIANZA r , Y=0.224682X2-1.018042X+0.99'7968 Y=-O.0689352X3+0. 351375X2 O. 99428 I . 00101622 0.998835 I . 000233439 O. 998869 1 - 000259017 0.998973 3.000274359 0.999582 0.000134044 -l.O7945X+l 0037 e Y=-O .456351X4+1. 04613X3 4 + O . 526798X2-O.836902XcO .9881 5 Y=-3.6594X5+10. 5369X4-10.75:!8X3 +4.89533X2-1.82415X+1.03693 ~ 6 Y=l 11277X6-7. 60024X5+15. 81!39X4 I o,ggg5?4 0.000166578 0.999601 0.000213434 -14.0824X3+5. 88685X2-1.94654X1 +1.04145 7 Y=-14.6168X7+59.4856X6-99.7648X5 446X2 +89.0282X4-44.8402X3+12. -2.56226X+l. 05986 ~~ 8 Y=-160,251Xs+723.392X7-1336 28X6 n 0.999649 0.000281756 o.ggg706 0.000471941 ~ 1 2 9 907X5-709 . .769X4+214. 813X3 -37 .7713X2+1.08704X+0.961559 Y=927.848X9-4717.73X8+10069.3X7 25 Es importante notar de los datos del coeficiente de corelación r (Tabla I), que este aumenta a medida gue el orden del polinomio G crece; esto se puede apreciar con mayor detalle en la fig.(2). Es obvio que este coeficiente no nos proporciona una medida apropiada para la determinación del polinomio de ajuste. Es necesario entonces, contar con coeficientes apropiados que nos describan en cualquier situación el mejor polinomio ajustado. Si analizamos con detalle el comportamiento de la varianza con respecto al grado del polinomio G, notamos fig. ( 3 1 , que existen dos cambios bruscos en el comportamiento de la varianza, esto ocurre para G=2 y G=5. Para estos valores se obtuvieron valores mínimos de la varianza, luego entonces ¿cuál será nuestro mejor polinomio?. Para dar una respuesta apropiada, mostramos a continuación los valores de los errores absolutos asociados a cada uno de los parámetros A;, así como, sus errores porcentuales. 27 9 + - 6% A,= -0.760407 + - 0.0082092 1.08 0.56 ?$= 0.952277 +- Al= 0.224682 + - 0.0121322 5.40 &= -1.018042 +- 0.0144573 1.42 A3= 0.997968 +- 0.00355494 0.36 0.00534 Ai= -0.0689352 + - 0.0453554 65.79 +- 0.0843307 24.00 A3= -1.07945 +- 0.0431753 4.00 &= +- 0.00531291 0.53 %= 0.351375 1.0037 Ai= -0.456351 + - 0,176383 38.65 &= 1.04613 +- 0.433502 41.42 A3= 0.526798 +- 0.350341 66.50 &= -0.836902 +- 0.103743 12.40 +- 0.00813875 A,= -3.6594 +- 0.408907 11.17 A2= 10.5369 +- 1.23458 11.72 A,=-10.7528 +- 1.3528 12.58 &= 4.89533 +- 0.653493 13.35 Is= -1.82415 +- 0.132015 7.24 %= 1.03693 &= 0.9881 + - 0.00788217 O. 8 2 0.76 29 6 7 8 + - 2.19232 197.01 &= -7.60024 + - 7.7774 102.33 A3= 15.8199 + - 10.4989 66.37 &=-14.0824 + - 6.73083 47.80 As= + - 2.08485 35.42 %= -1.94654 + - 0.282503 14.51 A,= + - 0.0125154 1.20 A,=-14.6168 + - 12.6142 86.30 &= 59.4856 + - 50.4363 84.79 AS=-99.7648 + - 80.023 80.21 &= 89.0282 + - 64.2862 72.21 As=- 44.8402 + - 27.6155 61.59 &= 12.446 + - 6.31275 49.27 A7= -2.56226 + - 0.620157 24.20 A,= + - 0.0212855 2.01 A,=-160.251 + - 92.8649 57.95 &= 723.392 +- 427.919 59.15 A3=-1336.28 + - 810.917 60.68 %= 1299.07 + - 815.817 62.80 %=-709.769 + - 468.757 66.04 &= 214.813 + - 153.777 71.59 A7= -37.7713 + - 27.1342 82.80 A,= 1.08704 + - 2.23157 205.29 €+,= 0.961559 + - 0.0619926 Al= 1.11277 5.88685 1.04145 1.05986 6.45 31 9 AI= 927.848 + - 650.252 70.08 &=-4717.73 + - 3192.72 67.75 A40069.3 + - 6573.18 65.28 &=-11779.9 + - 7393.91 62.76 + - 4965.27 60.39 %= -3493.79 + - 2043.24 58.48 A,= + - 508.301 57.62 + - 72.1349 58.80 &= 7.07401 + - 5.09372 72.01 Alp 0.81844 + - 0.128442 15.69 AS= &= 8222 882.201 -122.68 8. CONCLUSIONES. Es claro que para el ajuste de curvas, el coeficiente de correlación r no es un buen indicador de la tendencia de los datos. Por el contrario, la variaaza es un indicador apropiado, siempre y cuando, vaya acompañado de la evaluación de los errores asociados a los parámetros determimados. 33 9. BIBLIOGRAFIA. 1. W. Mendenhall, R.L. Schaffer & D.D. Wackerly. Estadística Matemática con aplicaciones. Edit. Iberoamérica 2. Draper, J.O. & 1986. Smith. H. Applied Regression Analysis. John Wiley 3. Dunn, J.0 Sons & & 1981. Clark. Anal. of Var. and Reg. John Wiley 4. & Sons 1987. Mood, M.A., Graybill, A.F. & Boes. C. D. INT. To Theory of Statistics. Mc. Graw Hill 5. 1974. Pearson Notes of History Correlation. Biométrica 13-34; 1920. 6. Siegel. Statistics and Data Analysis. John Wiley 7. & Sons 1988. Wittink. The Application of Regression Analysis. Allyn and Bacon, INC. 1988. 35 Pies de Figuras Figura 1. Gráfica de los datos experimentales y del polinomio de ajuste correspondiente. Figura 2. Comportamiento del coeficiente de correlación respecto al grado del polinomio de ajuste. Figura 3. Se muestra el cambio en la varianza como función del grado del polinomio a ajustar. Figura 4. Comparación gráfica del polinomio de grado cinco con el polinomio de grado dos. 37 1 39 41 i I i I 43 - r-- Ij x i I I i I i I 1 45