Está en la página 1de 64

Interpolación y ajuste de curvas

”¡Cómo es posible que la matemática, un producto del pensamiento humano


independiente de la experiencia, se adapte tan admirablemente a los objetos de la
realidad!”

Albert Einstein (1879-1955)


Introducción

Con frecuencia es necesario estimar valores intermedios entre valores conocidos, y el método
más común empleado para este propósito es la interpolación polinomial.

Dados n + 1 puntos, existe uno y sólo un polinomio de grado n que pasa a través de todos los
puntos.
Pn (x) = a0 + a1 x + a2 x2 + · · · + an xn
La interpolación consiste en determinar el polinomio que pasa por los puntos dados y evaluarlo
en el punto intermedio deseado.

Aunque matemáticamente solo existe un polinomio de grado n que ajusta n + 1 puntos


existen varias formas de expresarlo, determinadas por las particularidades de los métodos
para obtenerlo. Se estudiarán dos métodos sencillos y eficientes a la hora de implementarse
en una computadora: los polinomios de Newton y de Lagrange. Finalmente se estudiará
la interpolación por splines y su implementación en MATLAB.
Intrerpolación lineal

El polinomio de interpolación de Newton en diferencias divididas es una forma


sencilla de expresar un polinomio. La interpolación más simple es la llamada interpolación
lineal.

Usando triángulos semejantes, se tiene:

f (x) − f (x0 ) f (x1 ) − f (x0 )


=
x − x0 x1 − x0
reordenándo se obtiene
f (x1 ) − f (x0 )
f (x) = f (x0 ) + (x − x0 )
x1 − x0
que es la fórmula de interpolación lineal.

Notar que se trata de un polinomio de grado uno, y que la pendiente de la recta es una
aproximación de diferencias divididas finitas de la primera derivada
En general, cuanto menor sea la distancia entre los puntos, más exacta será la aproximación
Ejemplo

Estimar el valor de ln(2) mediante interpolación lineal, primero usando


ln 1 = 0 y ln 6 = 1.7917595 y posteriormente usando ln 1 y ln 4 = 1.3862944. El
valor real es ln 2 = 0.69314718
El polinomio de interpolación de Newton entre x0 = 1 y x1 = 6 evaluado en x = 2 produce el
resultado
ln 6 − ln 1
P1 (x) = ln 1 + (2 − 1) =
6−1
1.7917595 − 0
0+ (2 − 1) = 0.3583519
6−1
que representa un error: εt = 48.3%. Con un intervalo
menor desde x0 = 1 hasta x1 = 4 se obtiene
ln 4 − ln 1
P1 (x) = ln 1 + (2 − 1) =
4−1
1.3862944 − 0
0+ (2 − 1) = 0.4620981
4−1
que en este caso representa un error de εt = 33.3%.
Interpolación cuadrática

Una estrategia para mejorar la aproximación es la de introducir cierta curvatura en la lı́nea


que conecta los puntos. Si se dispone de tres puntos lo anterior se puede llevar a cabo con un
polinomio de segundo grado. Una manera conveniente de escribirlo es:

P2 (x) = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 ) (1)

La ecuación (1) es equivalente a la expresión general de un polinomio (2)

P2 (x) = b0 + b1 x − b1 x0 + b2 x2 + b2 x0 x1 − b2 xx0 − b2 xx1

Agrupando términos:
P2 (x) = a0 + a1 x + a2 x2 (2)
donde

a0 = b0 − b1 x0 + b2 x0 x1
a1 = b1 − b2 x0 − b2 x1
a2 = b2
Interpolación cuadrática

Para encontrar b0 evaluamos la ecuación (1) en x = x0 y obtenemos que

b0 = f (x0 ).

Sustituimos este resultado en (1) y después se evalúa en x = x1 para tener

f (x1 ) − f (x0 )
b1 =
x1 − x0

Por último, los resultados obtenidos para b0 y b1 se sustituyen en la ecuación (1) y ésta se
evalúa en x = x2 y luego de algunas manipulaciones algebraicas se resuelve para b2 obteniendo
el resultado:
f (x2 ) − f (x1 ) f (x1 ) − f (x0 )

x2 − x1 x1 − x0
b2 =
x2 − x0
Nótese que, al igual que en el caso de interpolación lineal, b1 aún representa la pendiente
de la lı́nea que une los puntos x0 y x1 . El último término, b2 (x − x0 )(x − x1 ), introduce la
curvatura de segundo orden en la fórmula.
Interpolación cuadrática

Ajuste el polinomio de segundo grado a los tres puntos usados en el problema


anterior. Úse el polinomio para evaluar ln 2
Los valores de los coeficientes son:

b0 = 0
1.386294 − 0
b1 = = 0.4620981
4−1
1.791759 − 1.386294
− 0.4620981
6−4
b2 = = −0.0518731
6−1
Sustituyendo estos valores en la ecuación (1) se obtiene la fórmula cuadrática:

P2 (x) = 0 + 0.4620981(x − 1) − 0.0518731(x − 1)(x − 4)

P2 (2) = 0.5658444, lo que representa un error relativo de εt = 18.4%. La interpolación


cuadrática mejora los resultados de las dos aproximaciones lineales.
Interpolación cuadrática
Polinomios de interpolación de Newton de grado n

El análisis anterior se puede generalizar a un polinomio de grado n con n + 1 puntos

Pn (x) = b0 + b1 (x − x0 ) + · · · + bn (x − x0 ) · · · (x − xn−1 ) (3)

Como se hizo anteriormente con las interpolaciones lineales y cuadráticas, se usan los puntos en
la evaluación de los coeficientes b0 , b1 , · · · , bn . Se requieren n+1 puntos: [x0 , f (x0 )], [x1 , f (x1 )] · · · ,
Usamos estos datos y las siguientes ecuaciones para evaluar los coeficientes

b0 = f (x0 )
b1 = f [x1 , x0 ]
b2 = f [x2 , x1 , x0 ]
..
.
bn = f [xn , xn−1 , · · · , x1 , x0 ]

donde las evaluaciones de la función entre corchetes son diferencias divididas


Forma General de los polinomios de interpolación de Newton

Por ejemplo, la diferencia dividida de primer orden

f (xi ) − f (xj )
f [xi , xj ] = .
xi − xj

La diferencia dividida de segundo orden, es decir, la diferencia entre las dos diferencias
divididas de primer orden

f [xi , xj ] − f [xj , xk ]
f [xi , xj , xk ] = .
xi − xk
De manera similar, la diferencia dividida de orden n

f [xn , xn−1 , · · · , x1 ] − f [xn−1 , xn−2 , · · · , x0 ]


f [xn , xn−1 , · · · , x1 , x0 ] = .
xn − x0
De esta forma se obtiene

Pn (x) = f (x0 ) + f [x1 , x0 ](x − x0 ) + f [x2 , x1 , x0 ](x − x1 )(x − x0 )


+ · · · + f [xn , xn−1 , · · · , x0 ](x − xn−1 ) · · · (x − x1 )(x − x0 )

que se llama polinomio de interpolación de Newton en diferencias divididas.


Forma general de los polinomios de interpolación de Newton

Se debe notar que no es necesario que los datos usados en la última ecuación estén igualmente
espaciados o que los valores de la abscisa necesariamente se encuentren en orden ascendente.
Todas las diferencias pueden arreglarse en una tabla de diferencias divididas, en donde cada
diferencia se indica entre los elementos que la producen

i xi f (xi ) Primera Segunda Tercera


0 x0 f (x0 ) f [x1 , x0 ] f [x2 , x1 , x0 ] f [x3 , x2 , x1 , x0 ]
1 x1 f (x1 ) f [x2 , x1 ] f [x3 , x2 , x1 ]
2 x2 f (x2 ) f [x3 , x2 ]
3 x3 f (x3 )

Los coeficientes del polinomio de interpolación de Newton son los elementos de la primera fila
de la tabla.
Forma general de los polinomios de interpolación de Newton

Ajuste el polinomio de tercer grado en el problema anterior agregando un


punto más x3 = 5, f (x3 ) = ln 5 = 1.609438. Utilice este polinomio para evaluar
ln 2
Las diferencias divididas de orden 1
1.3862294 − 0
f [x1 , x0 ] = = 0.4620981
4−1
1.791759 − 1.3862294
f [x2 , x1 ] = = 0.2027326
6−4
1.609438 − 1.791759
f [x3 , x2 ] = = 0.1823216
5−6
Las de orden 2 y 3
0.2027326 − 0.4620981
f [x2 , x1 , x0 ] = = −0.05187311
6−1
0.1823216 − 0.2027326
f [x3 , x2 , x1 ] = = −0.02041100
5−4

−0.02041100 − (−0.05187311)
f [x3 , x2 , x1 , x0 ] = = 0.007865529
5−1
Forma general de los polinomios de interpolación de Newton

Ordenamos los valores de los coeficientes en la tabla de diferencias divididas de Newton:

i xi f (xi ) Primera Segunda Tercera


0 1 0 0.4620981 -0.05187311 0.007865529
1 4 1.386294 0.2027326 -0.02041100
2 6 1.791759 0.1823216
3 5 1.609438

Escribimos el polinomio de interpolación de Newton:

P3 (x) = 0 + 0.4620981(x − 1) − 0.05187311(x − 4)(x − 1)


+ 0.007865529(x − 6)(x − 4)(x − 1)

Calculamos el valor de ln 2 = P3 (2) = 0.6287686, que representa un error relativo εt = 9.3%.


Cálculo del error en la interpolación polinomial de Newton

El polinomio de interpolación de Newton tiene una estructura similar a la expresión de la


serie de Taylor, pero sustituyendo las derivadas de la función por diferencias divididas.
Como sucede con la serie de Taylor, si la función a interpolar fuera un polinomio de n-ésimo
grado, el polinomio interpolante de n-ésimo grado basado en n+1 llevará a resultados exactos.
El error por truncamiento de la serie de Taylor es

f (n+1) (ξ)
Rn = (xi+1 − xi )n+1
(n + 1)!

donde ξ ∈ [xi , xi+1 ]


Una relación análoga del error en un polinomio interpolante de n-ésimo grado está dado por

f (n+1) (ξ)
Rn = (x − x0 )(x − x1 ) · · · (x − xn )
(n + 1)!

donde ξ está en alguna parte del intervalo que contiene la incógnita y los datos
Cálculo del error en la interpolación polinomial de Newton
Al ser desconocida la derivada de la función, se usa una diferencia dividida finita que aproxima
la (n + 1)-ésima derivada:

Rn = f [x, xn , xn−1 , · · · , x0 ](x − x0 )(x − x1 ) · · · (x − xn )

donde f [x, xn , xn−1 , · · · , x0 ] es la (n + 1)-ésima diferencia dividida finita. Debido a que la


última ecuación contiene la incógnita f (x), no permite obtener el error. Sin embargo, si se
cuenta con un dato más, f (xn+1 ), la última ecuación puede usarse para estimar el error

Rn ∼
= f [xn+1 , nn , xn−1 , · · · , x0 ](x − x0 )(x − x1 ) · · · (x − xn ) (4)

Estime el error en la interpolación polinomial de segundo grado del Problema


2. Use el dato adicional f (5) = 1.609438
La estimación obtenida anteriormente P2 (2) = 0.5658444 representa un error real de 0.6931472−
0.5658444 = 0.1273028. Este error se ha podido calcular por ser conocido el valor verdadero.
Cuando éste no es conocido se puede estimar el error utilizando el residuo

R2 = f [x3 , x2 , x1 , x0 ](x − x0 )(x − x1 )(x − x0 )


= 0.007865529(x − 1)(x − 4)(x − 6)

donde el valor de la diferencias divididas finita de tercer orden se calculó en el problema


anterior. Evaluando esta expresión en x = 2 se obtiene R2 = 0.0629242 que es del mismo
orden de magnitud que el error verdadero.
Polinonio de Lagrange

El polinomio de interpolación de Lagrange se obtiene de manera directa a partir de la


formulación del polinomio de Newton, escribiendo la diferencia dividida

f (x1 ) − f (x0 )
f [x1 , x0 ] =
x1 − x0
como
f (x1 ) f (x0 )
f [x1 , x0 ] = +
x1 − x0 x0 − x1
en lo que se conoce como forma simétrica. Sustituyendo esta expresión en el polinomio de
interpolación de Newton de grado 1 se obtiene
x − x0 x − x0
P1 (x) = f (x0 ) + f (x1 ) + f (x0 )
x1 − x0 x0 − x1
Simplificando se obtiene el polinomio de Lagrange de primer grado
x − x1 x − x0
P1 (x) = f (x0 ) + f (x1 )
x0 − x1 x1 − x0
Forma general del polinomio de interpolación de Lagrange

El polinomio de interpolación de Lagrange, simplemente es una reformulación del polinomio


de Newton que evita los cálculos de las diferencias divididas. Este se puede representar
concretamente como:
n
X
Pn (x) = Li (x)f (xi )
i=0

donde
n
Y x − xj
Li (x) =
x
j=0 i
− xj
j6=i
Q
donde designa el ”producto de”.
Forma general del polinomio de interpolación de Lagrange

El caso cuadrático corresponde al polinomio de Lagrange para n = 2

(x − x1 )(x − x2 ) (x − x0 )(x − x2 )
P2 (x) = f (x0 ) + f (x1 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 )
(x − x0 )(x − x1 )
+ f (x2 )
(x2 − x0 )(x2 − x1 )

Se puede ver que el polinomio de Lagrange está compuesto por la


suma de tres polinomios de grado 2, cada uno de ellos pasa por
uno de los puntos que se tienen como datos y es cero en los otros
dos. La suma de los tres polinomios es un polinomio de segundo
grado P2 (x) que pasa exactamente por los tres puntos.
Al igual que el de Newton, el polinomio de Lagrange tiene un
error dado por:

Rn ∼
= f [xn+1 , nn , xn−1 , · · · , x0 ](x − x0 )(x − x1 ) · · · (x − xn )
Polinomio de interpolación de Lagrange

Utilice un polinomio de interpolación de Lagrange de primer y segundo grado


para evaluar ln 2 en base a los datos ln 1 = 0, ln 4 = 1.386294 y ln 6 = 1.791759
Evaluando el polinomio de grado 1 en x = 2
2−4 2−1
P1 (x) = 0+ 1.386294 = 0.4620981
1−4 4−1
De manera similar, el polinomio de segundo grado

(2 − 4)(2 − 6) (2 − 1)(2 − 6)
P2 (x) = 0+ 1.386294
(1 − 4)(1 − 6) (4 − 1)(4 − 6)
(2 − 1)(2 − 4)
+ 1.791760 = 0.5658444
(6 − 1)(6 − 4)

Como se esperaba, ambos resultados concuerdan con los que se obtuvieron al usar el polinomio
de interpolación de Newton.
Interpolación con interp1

El comando interp1 realiza una interpolación unidimensional. Recibe cuatro parámetros, x y


v, que son los valores de x y de y, xq, que son los puntos en que se va a interpolar, y method,
que especifica el método de interpolación a utilizar∗ vq = interp1(x,v,xq,method)

% d e f i n i c i o n de l o s d a t o s
t =(0: pi / 4 : 2 ∗ pi ) ’
y = sin ( t )
% puntos a evaluar
Xq=(0: pi / 1 2 : 2 ∗ pi ) ’

% metodos a u t i l i z a r
Y q l i n = interp1 ( t , y , Xq , ’ l i n e a r ’ )
Yq cub = interp1 ( t , y , Xq , ’ c u b i c ’ )
Y q s p l = interp1 ( t , y , Xq , ’ s p l i n e ’ )

% grafica
plot ( t , y , ’ o ’ ,Xq , Y q l i n , Xq , Yq cub , Xq , Y q s p l ) ;
legend ( ’ ’ , ’ l i n e a l ’ , ’ c u b i c a ’ , ’ s p l i n e ’ )


se pueden utilizar diferentes métodos de interpolación, en este caso usaremos interpolación lineal,
cúbica o mediante splines cúbicos, que es una interpolación usando trazadores, es decir, polinomios de
grado 3 definidos por partes
Interpolación con interp1

En la gráfica se puede observar como la interpolación que más se ajusta a la función es la


interpolación mediante splines.
Interpolación con polyfit

El comando polyfit realiza un ajuste polinomial de un conjunto de datos. El comando devuelve


un polinomio del grado especificado en la llamada al comando. Para evaluar el polinomio
obtenido en el punto o puntos deseados se puede usar el comando polyval.
1
y
y1
0.9

0.8
x = linspace ( 0 , 6 , 1 5 ) ;
0.7
y = 1 . / ( x +1);
p = polyfit (x , y , 2 ) 0.6

y1 = polyval ( p , x ) ; 0.5

plot ( x , y , ’ o ’ , x , y1 , ’− ’ ) ; 0.4
legend ( ’ y ’ , ’ y1 ’ )
0.3

0.2

0.1
0 1 2 3 4 5 6

En el ejemplo se ajusta un conjunto de puntos obtenidos de evaluar la función con un polinomio


de grado 2∗


Notar que el polinomio de grado 2 no pasa por los puntos de la función original, matemáticamente el
polinomio que ajusta perfectamente un conjunto de 15 puntos es un polinomio de grado 14
Interpolación inversa

Los valores de f (x) y x son las variables dependiente e independiente, respectivamente. Los
valores de x con frecuencia están espaciados uniformemente. Un ejemplo simple es una tabla
de valores obtenida para la función f (x) = 1/x

x 1 2 3 4 5 6 7
f (x) 1 0.5 0.3333 0.25 0.2 0.1667 0.1429

Si se deben usar los mismos datos, pero se tiene un valor de f (x) y se desea determinar el
valor de x correspondiente, tenemos un caso de interpolación inversa.
Por ejemplo, para los datos anteriores, suponga que se le pide determinar el valor de x que
corresponda a f (x) = 0.3. En tal caso, como la función es conocida la respuesta correcta se
determina directamente, x = 1/0.3 = 3.3333.
En caso de no conocerse la forma de la función se podrı́an intercambiar los valores f (x) y
x (es decir, tan sólo graficar x contra f (x)) e interpolar. Por desgracia, cuando se invierten
las variables no hay garantı́a de que los valores de la nueva abscisa (f (x)) estén espaciados
uniformemente. Por ejemplo, para f(x) = 1/x el resultado es

x 0.1429 0.1667 0.2 0.25 0.3333 0.5 1


f (x) 7 6 5 4 3 2 1

Tal espaciamiento no uniforme en las abscisas a menudo lleva a oscilaciones en el resultado


del polinomio de interpolación. Esto puede ocurrir incluso para polinomios de bajo grado.
Interpolación inversa

Una estrategia alternativa que da mejor resultado es ajustar un polinomio de interpolación


de grado n-ésimo, Pn (x), a los datos originales. Al estar las x uniformemente espaciadas, este
polinomio no estará mal condicionado. La solución consistirá en encontrar el valor de x que
haga el polinomio igual a f (x). Ası́, el problema de interpolación se reduce a un problema de
cálculo de raı́ces.
En el problema anterior se podrı́an ajustar tres puntos con un polinomio cuadrático: (2, 0.5),
(3, 0.3333) y (4, 0.25), cuyo resultado será

P2 (x) = 1.08333 − 0.375x + 0.041667x2 .

Para determinar x es necesario determinar las raı́ces de

0.3 = 1.08333 − 0.375x + 0.041667x2

que son p
0.375 ± (−0.375)2 − 4(0.041667)0.78333 5.704158
x= =
2(0.041667) 3.295842
Ası́, la segunda raı́z, 3.296, es una buena aproximación al valor verdadero: 3.333. Si se desea
una exactitud adicional, entonces podrı́a emplear un polinomio de tercer o cuarto grado junto
con uno de los métodos para la resolución de ecuaciones no lineales.
Extrapolación

La extrapolación es un proceso en el que se estima mediante un polinomio un valor de f (x)


para una x que se encuentra fuera del dominio de los valores conocidos, x0 , x1 , · · · , xn . El
proceso de interpolación extiende la curva más allá de la región conocida. Como tal, la curva
real podrá ser muy diferente de la predicción. Por lo tanto, se debe extrapolar con cautela.
Desventajas de la interpolación polinomial

Aunque en general cuanto mayor es el grado mejor es la interpolación, a veces los polinomios
de orden superior tienden a ser mal condicionados, es decir, a ser muy sensibles a los errores
de redondeo.
En 1901, Carl Runge publicó un estudio sobre las desventajas de la interpolación polinómica
de orden superior. Dada
1
f (x) =
1 + 25x2
que ahora se llama la función de Runge. Tomó valores de la función uniformemente espaciados
en el intervalo [-1, 1]. A continuación, utilizó la interpolación de polinomios de orden creciente
y encontró que al tomar más puntos, los polinomios y la curva original diferı́a considerablemente.
Además, la situación se deterioró considerablemente a medida que aumentaba el orden.
Desventajas de la interpolación polinomial

x = linspace ( − 1 , 1 , 5 ) ;
y = 1./(1+25∗ x . ˆ 2 )
xx = linspace ( − 1 , 1 ) ;
p = polyfit (x , y , 4 ) ;
yp = polyval ( p , xx ) ;
y r = 1 . / ( 1 + 2 5 ∗ xx . ˆ 2 )
plot ( x , y , ’ o ’ , xx , yp , xx , yr , ’−− ’ )
axis ([ −1 1 −0.5 2 ] )
legend ( ’ ’ , ’ p o l i n o m i o ’ , ’ runge ’ )

x = linspace ( − 1 , 1 , 1 1 ) ;
y = 1./(1+25∗ x . ˆ 2 )
xx = linspace ( − 1 , 1 ) ;
p = polyfit (x , y , 1 0 ) ;
yp = polyval ( p , xx ) ;
y r = 1 . / ( 1 + 2 5 ∗ xx . ˆ 2 )
plot ( x , y , ’ o ’ , xx , yp , xx , yr , ’−− ’ )
axis ([ −1 1 −0.5 2 ] )
legend ( ’ ’ , ’ p o l i n o m i o ’ , ’ runge ’ )

A pesar de usar un polinomio de grado mayor el ajuste se ha vuelto peor en los extremos del
intervalo.
Actividades

I El esfuerzo, en kips por pie cuadrado (kpc) de nueve muestras tomadas a distintas
profundidades en un estrato de arcilla son:
Profundidad, m 1.9 3.1 4.2 5.1 5.8 6.9 8.1 9.3 10.0
Esfuerzo, kpc 0.3 0.6 0.4 0.9 0.7 1.1 1.5 1.3 1.6
Utilice un polinomio de interpolación de Newton de grado 3 para obtener el esfuerzo
cortante a 3.8 m. Confirmar el resultado usando polyfit.
I Dada la siguiente tabla de vapor sobrecalentado:

Utilizar un polinomio de interpolación de Lagrange de grado 3 para calcular la entalpia


H a una presión absoluta de 1213kPa y una temperatura de 70◦ C. Repetir el cálculo
usando interpolación por splines.
Regresión lineal

En caso de que exista un error sustancial en los datos, la mejor estrategia para el ajuste de
curvas es encontrar una función de aproximación que se adapte a la forma o la tendencia
general de los datos, sin que necesariamente pase por todos los puntos individuales.
La forma más sencilla de hacer esto es trazar una lı́nea recta que ajuste mejor los puntos
(x1 , y1 ), (x2 , y2 ), ..., (xn , yn )

y = mx + b
donde m y b son coeficientes que representan la pendiente y el origen, respectivamente. Si los
puntos (x1 , y1 ), (x2 , y2 ), ..., (xn , yn ) estuvieran exactamente sobre la recta tendrı́amos

yi = mxi + b
Regresión lineal

Como los puntos no están necesariamente sobre


la recta, tenemos

yi = mxi + b + di

donde di es la desviación vertical del punto


(xi , yi ) a la recta deseada (error residual).
La cantidad di puede ser positiva, negativa o
cero.

di = yi − mxi − b

Por lo tanto, el valor residual es la diferencia entre el valor real de y, y el valor aproximado,
mx + b, predicho por la ecuación lineal.
Criterios para un ajuste “mejor”

Una de las estrategias para la obtención de la mejor lı́nea a través de los datos serı́a minimizar
la suma de los errores residuales para todos los datos disponibles, como en
n
X n
X
di = (yi − mxi − b)
i=1 i=1

donde n es número de puntos.


Sin embargo, este es un criterio inadecuado. Dados dos puntos, la mejor opción es la lı́nea
que une los dos puntos. Sin embargo, cualquier recta que pase por el punto medio de la lı́nea
de conexión (a excepción de una lı́nea perfectamente vertical) da lugar a un valor de la suma
de las distancias igual a cero, ya que los errores positivos y negativos se cancelan.
Criterios para un ajuste “mejor”

Una forma de eliminar el efecto de los signos podrı́a ser minimizar la suma de los valores
absolutos de las divergencias, como en
n
X n
X
|di | = |yi − mxi − b|
i=1 i=1

Este criterio puede producir un ajuste no único: cualquier lı́nea recta que cae dentro de las
lı́neas discontinuas reducirá al mı́nimo la suma de los valores absolutos de los residuos.
Criterios para un ajuste ”mejor”

La tercera estrategia para obtención de la mejor lı́nea es el criterio minimax. En esta técnica,
se elige la lı́nea que minimiza la distancia máxima que un punto concreto está de la lı́nea.
Esta estrategia es poco adecuada ya que da la influencia muy grande a un valor atı́pico, es
decir, un solo punto con un gran error.

Una estrategia que supera las deficiencias de los enfoques mencionados anteriormente es
reducir al mı́nimo la suma de los cuadrados de los residuos:
n
X n
X
Sr = d2i = (yi − mxi − b)2
i=1 i=1

Este criterio, de mı́nimos cuadrados, produce una lı́nea única para un conjunto dado de
datos.
Ajuste por mı́nimos cuadrados de una lı́nea recta

Para determinar los valores de los coeficientes m y b, derivamos la expresión de Sr con respecto
a cada coeficiente:
n
∂Sr X
= −2 (yi − mxi − b)
∂b i=1
n
∂Sr X
= −2 [(yi − mxi − b)xi ]
∂m i=1

Igualando las derivadas a cero se obtiene el mı́nimo de Sr


n
X n
X n
X
yi − mxi − b=0
i=1 i=1 i=1
Xn Xn n
X
yi xi − mx2i − bxi = 0
i=1 i=1 i=1
Ajuste por mı́nimos cuadrados de una lı́nea recta

X
Como b = nb, y se tiene un sistema de dos ecuaciones lineales simultáneas con dos
incógnita, m y b
n n
!
X X
yi = xi m + nb
i=1 i=1
n n n
! !
X X X
yi xi = x2i m+ xi b
i=1 i=1 i=1

En lo que se conoce como ecuaciones normales. Al resolverlas se obtiene

n n
P Pn Pn
i=1 xi yi − i=1 xi i=1 yi
m= Pn n 2 (1)
n i=1 x2i −
P
i=1 x i

y usando este último resultado


b = ȳ − mx̄ (2)
donde x̄ y ȳ son los promedios de x y y, respectivamente.
Ajuste por mı́nimos cuadrados de una lı́nea recta

Ejemplo
En la fabricación del producto XXX, la cantidad de compuesto β presente es controlada
por la cantidad del ingrediente α utilizada en el proceso. Al fabricar un galón de XXX,
se registraron la cantidad de α usada y la cantidad de β presente, obteniéndose los datos
mostrados en la tabla.

α 3 4 5 6 7 8 9 10 11 12
β 4.5 5.4 5.7 6.6 7.0 7.7 8.5 8.7 9.5 9.7
Ajuste por mı́nimos cuadrados de una lı́nea recta

Solución del problema


i xi yi x2i xi yi
1 3 4.5 9 13.5
2 4 5.5 16 22
3 5 5.7 25 28.5
4 6 6.6 36 39.6
5 7 7.0 49 49
6 8 7.7 64 61.4
7 9 8.5 81 76.5
8 10 8.7 100 87
9 11 9.5 121 104.5
10
P 12 9.7 144 116.4
75 73.4 645 598.6
Ajuste por mı́nimos cuadrados de una lı́nea recta

Solución del problema (continuación)


Las medias son x̄ = 75/10 = 7.5 y ȳ = 73.4/10 = 7.34. La pendiente m y la intersección b se
pueden calcular como

n n
P Pn Pn
i=1 xi yi − i=1 xi i=1 yi 10(598.6) − 75(73.4)
m= 2 = = 0.583
10(645) − 752
Pn n
n i=1 x2i −
P
i=1 x i

b = ȳ − mx̄ = 7.34 − 0.583(7.5) = 2.967


La ecuación de la lı́nea recta que mejor se ajusta a los datos es

y = mx + b = 0.583x + 2.967

Utilizando esta ecuación podemos estimar el valor de β presente en el producto XXX. Por
ejemplo, si la α utilizada es 30 onzas/galón, entonces la β presente en el producto XXX
será 0.583(30) + 2.967 = 20.457 onzas/galón.
Ajuste por mı́nimos cuadrados de una lı́nea recta

Solución del problema (continuación)


La figura muestra la gráfica de los puntos de la tabla y la mejor lı́nea obtenida
Cuantificación del error de regresión lineal

La suma de los errores al cuadrados es


n
X
Sr = (yi − mxi − b)2
i=1

Se puede notar la similitud entre la última expresión y


n
X
St = (yi − ȳ)2
i=1

St es la desviación estándard, una medida de


tendencia central que representa la dispersión de los
datos, es decir, una medida de qué tan separados
están los datos de su promedio.
Cuantificación del error de regresión lineal

La analogı́a se puede ampliar más en caso que:

a) la difusión de los puntos alrededor de la lı́nea es de magnitud similar a lo largo de toda


la gama de los datos
b) la distribución de estos puntos sobre la lı́nea es normal.

Se puede demostrar que si se cumplen estos criterios, la regresión por mı́nimos cuadrados
proporcionará la mejor estimación de m y b. Esto se conoce en estadı́stica como principio de
máxima verosimilitud.
Además, si se cumplen estos criterios, la desviación estándar respecto la lı́nea de regresión se
puede determinar como s
Sr
sy/x = (3)
n−2
donde sy/x se denomina el error estándar de la estimación.
Cuantificación del error de regresión lineal

El subı́ndice de la notación de sy/x indica que el error es un valor predicho de y correspondiente


a un valor particular de x. También, observamos que ahora dividimos por n − 2, ya que se
utilizaron dos estimaciones de derivadas para calcular Sr , por lo que hemos perdido dos grados
de libertad.
sy/x cuantifica la dispersión alrededor de la lı́nea de regresión, mientras que la desviación
estándar sy cuantifica la dispersión alrededor de la media.
Estos conceptos se pueden utilizar para calcular la bondad de nuestro ajuste. Esto es
particularmente útil para la comparación de diferentes regresiones.
Cuantificación del error de regresión lineal

Para ello, volvemos a los datos originales y determinamos la suma total de los cuadrados
alrededor de la media de la variable dependiente (en nuestro caso, β) St que representa la
magnitud del error residual asociado con la variable dependiente antes del ajuste. Después
de realizar el ajuste, podemos calcular Sr , la suma de los cuadrados de los residuos alrededor
de la lı́nea de regresión que caracteriza el error residual que queda después del ajuste. La
diferencia entre las dos cantidades, St − Sr , cuantifica la reducción de error.
Debido a que la magnitud de esta cantidad es dependiente de la escala, la diferencia se
normaliza respecto a St para producir

St − Sr
r2 = (4)
St

donde r2 se llama coeficiente de determinación y r es el coeficiente de correlación. Para un


ajuste perfecto, Sr = 0 y r2 = 1, lo que significa que todos los datos se encuentran sobre la
recta. En caso de que St = Sr y r2 = 0 significa que el ajuste no representa ninguna mejora.
Cuantificación del error de regresión lineal

Ejemplo
Calcule la desviación total estándar, el error estándar de la estimación, y el coeficiente de
correlación para el ajuste.

i xi yi (y − ȳ)2 (yi − mxi − b)2


1 3 4.5 8.0656 0.046656
2 4 5.5 3.3856 0.040401
3 5 5.7 2.6896 0.033124
4 6 6.6 0.5476 0.018225
5 7 7.0 0.1156 0.002304
6 8 7.7 0.1296 0.004761
7 9 8.5 1.3456 0.081796
8 10 8.7 1.8496 0.09409
9 11 9.5 4.6656 0.01440
10
P 12 9.7 5.5696 0.069169
75 73.4 St = 28.364 Sr = 0.404926
Cuantificación del error de regresión lineal

Calculamos la desvisión estándar sy


s r
St 28.364
sy = = = 2.8364
n−1 10

y el error estándar de la estimación


s r
Sr 0.404926
sy/x = = = 0.0404926
n−2 10

Por lo tanto, debido sy/x < sy , el modelo de regresión lineal tiene mérito. La medida de la
mejora se cuantifica por
28.364 − 0.404926
r2 = = 0.985723945
28.364

o r = 0.985723945 = 0.992836313. Estos resultados indican que 98.57% de la
incertidumbre original ha sido explicada por el modelo lineal.
Modelo lineal general

La regresión lineal es una poderosa técnica para el mejor ajuste lineal de un conjunto de
datos. Sin embargo, se basa en el hecho de que la relación entre las variables dependientes e
independientes sea lineal. Este no siempre es el caso, y el primer paso en cualquier análisis
de regresión deberı́a ser una inspección visual de los datos para determinar si se aplica un
modelo lineal.
A menudo un modelo lineal no es suficiente y es necesario una regresión polinómial. En otros
casos, se pueden utilizar transformaciones para expresar los datos de forma que sea aplicable
un modelo lineal.
El modelo lineal general de mı́nimos cuadrados es

y = b0 + b1 x + b2 x2 + b3 x3 + · · · + bm xm + d
Modelo lineal general

Esta ecuación se puede expresar en notación matricial como

[Y ] = [X][B] + [D] (1)

donde la matriz [X] es una matriz generalmente no cuadrada que se forma utilizando los
valores de la variable independiente de la manera siguiente:

xn ··· x21 x1 1
 
1
 xn2 ··· x22 x2 1 
[X] = 

.. .. .. .. ..


 . . . . . 
xnm ··· x22 x2 1

El vector columna [Y ] contiene los valores observados de la variable dependiente

[Y ]T = y1 y2 · · · ym
 
Modelo lineal general

El vector columna [B] contiene los coeficientes, es decir, las incógnitas del ajuste

[B]T = b0 b1 · · · bn
 

y el vector columna [D] contiene los residuos

[D]T = d1 d2
 
··· dm
Pn Pn 2
La suma de los cuadrados de los residuos es Sr = i=1 yi − i=1 bj xj

Esta cantidad se minimiza tomando las derivadas parciales con respecto a cada uno de los
coeficientes e igualando a cero la ecuación resultante.

[[X]T [X]][B] = [[X]T [Y ]]

Se puede demostrar que esta última ecuación es equivalente a las ecuaciones normales desarrolladas
para la regresión lineal.
Este sistema de ecuaciones lineales se puede resolver utilizando cualquiera de las técnicas ya
estudiadas. Por ejemplo, podemos utilizar la matriz inversa para resolver este sistema:

[B] = [[X]T [X]]−1 [[X]T [Y ]]


Modelo lineal general

Ejemplo
Los siguientes datos muestran los contaminantes atmosféricos yi (respecto de cierta norma
de calidad del aire) en intervalos de media hora, ti .

ti 1 1.5 2 2.5 3 3.5 4 4.5 5


yi -0.15 0.24 0.68 1.04 1.21 1.15 0.86 0.41 -0.08
Modelo lineal general

Determine el polinomio de segundo grado que mejor se ajusta a datos dados. Resolvemos
este problema utilizando MATLAB. Primero introducimos los datos:

t = [1 1.5 2 2.5 3 3.5 4 4.5 5 ] ’ ;


y = [ −0.15 0 . 2 4 0 . 6 8 1 . 0 4 1 . 2 1 1 . 1 5 0 . 8 6 0 . 4 1 −0.08];

X = [ ones ( size ( t ) ) t t . ˆ 2 ]

X =
1.0000 1.0000 1.0000
1.0000 1.5000 2.2500
1.0000 2.0000 4.0000
1.0000 2.5000 6.2500
1.0000 3.0000 9.0000
1.0000 3.5000 12.2500
1.0000 4.0000 16.0000
1.0000 4.5000 20.2500
1.0000 5.0000 25.0000
Modelo lineal general

>> X’*X
ans =
1.0e+03 *
0.0090 0.0270 0.0960
0.0270 0.0960 0.3780
0.0960 0.3780 1.5833
>> b=inv((X’*X))*(X’*y)
b =

−1.9317
2.0067
−0.3274
El polinomio cuadrático que mejor se ajusta a los datos es: y = −0.3274t2 + 2.0067t − 1.9317
Modelo lineal general

>> Sr = sum((y - X*b).^


2)
Sr =
0.0422
>> r2 = 1 - Sr/sum((y - mean(y)).^
2)
r2 =
0.9802
>> syx = sqrt(Sr/(length(t) - length(b)))
syx =
0.0838
>> r = sqrt(r2)
r =
0.9901
Modelo exponencial

Cuando las técnicas de regresión polinomial directa no son apropiadas, en algunos de estos
casos se pueden utilizar transformaciones para expresar los datos en una forma que sea
compatible con la regresión lineal.
Un ejemplo es el modelo exponencial
y = aebx
donde a y b son constantes.
Este modelo se emplea en muchos campos de la ingenierı́a para caracterizar cantidades que
aumentan o disminuyen a una velocidad que es directamente proporcional a sus propias
magnitudes,por ejemplo el crecimiento poblacional o el decaimiento radioactivo.
Manipulando algebraicamente las expresiones como la anterior a menudo se pueden linealizar
Modelo exponencial

Para linealizar el modelo se puede aplicar el logaritmo


natural a ambos lados de la ecuación

y = aebx
 
ln y = ln aebx

ln y = ln a + ln ebx
ln y = ln a + bx ln e
ln y = ln a + bx

Ası́, una gráfica de ln y respecto x dará una lı́nea recta


con pendiente b1 y una intersección con el eje de las
ordenadas igual a ln a1 .
Ecuación de potencias

Otro ejemplo de modelo no lineal es la ecuación de


potencias
y = axb
donde a y b son constantes. Este modelo tiene muchas
aplicaciones en varios campos de la ingenierı́a. Esta
ecuación se linealiza aplicando el logaritmo en base 10

log y = b log x + log a

De este modo, una gráfica de log y respecto log x dará


una lı́nea recta con pendiente b e intersección con el eje
de las ordenadas log a.
Ecuación de razón del crecimiento

Otro ejemplo de modelo no lineal es la ecuación de razón


del crecimiento. Un ejemplo es la ecuación:
ax
y=
b+x
donde a y b son coeficientes constantes.

Este modelo particularmente es adecuado para


caracterizar la razón de crecimiento poblacional bajo
condiciones limitantes. Esta ecuación se linealiza al
invertirla para dar:

1 b1 1
= +
y ax a

De esta forma, una gráfica de 1/y respecto 1/x será


lineal, con pendiente b/a y una intersección con el eje
de las ordenadas 1/a.
Ajuste de curvas con cftool

Problema
Con los datos

x 5 10 15 20 25 30 35 40 45 50
y 16 25 32 33 38 36 39 40 42 42

utilice regresión por mı́nimos cuadrados para ajustar una


(a) lı́nea recta,
(b) ecuación de potencias,
(c) ecuación de razón de crecimiento y
(d) parábola.
(e) ¿Es mejor alguna de las curvas? Si es ası́, justifique.
Introducimos los datos en MATLAB
>> x = [5 10 15 20 25 30 35 40 45 50]’;
>> y = [16 25 32 33 38 36 39 40 42 42]’;
Vamos a utilizar Curve Fitting Tool de MATLAB
Ajuste de curvas con cftool

Problema
Ajuste de curvas con cftool

Problema: solución de (a).


Ajuste de curvas con cftool

Problema: solución de (b).


Ajuste de curvas con cftool

Problema: solución de (c).


Ajuste de curvas con cftool

Problema: solución de (d).


Ajuste de curvas con cftool

Problema: solución de (e).

función r2 r
lı́nea recta 82% 0.7976
potencia 93% 0.9241
razón de crecimiento 98% 0.9781
parábola 94% 0.9327

Según los datos obtenidos el mejor ajuste se obtiene con la ecuación de la razón de
crecimiento.
Actividades

I Dados los datos


x 5 10 15 20 25 30 35 40 45 50
y 17 24 31 33 37 37 40 40 42 41
usar el método de mı́nimos cuadrados para ajustar a) una lı́nea recta, b) una ecuación
de potencias y c) una parábola. Graficar los datos junto con todas las curvas. ¿Cúal es
el mejor ajuste?
I Linealizar la ecuación para obtener los coeficientes k y m0 del modelo del decaimiento
radioactivo m(t) = m0 e−kt , y ası́ estimar la masa que quedará después de 70 dı́as:
dı́as (d) 10 20 30 45 60
masa (g) 8.18 6.70 5.48 4.62 3.01
I Dada la siguiente relación
kmáx c2
k=
cs + c2
donde cs y kmáx son parámetros. Linealizar la ecuación y utilizar una regresión lineal
para estimar cs y kmáx , y pronosticar el valor de k para c = 2 mg/L.
c 0.5 0.8 1.5 2.5 4
k 1.1 2.4 5.3 7.6 8.9