MÍNIMOS cuadrados
¿En qué consiste el ajuste por mínimos cuadrados?
El ajuste por mínimos cuadrados es un método de análisis numérico que se trata de un proceso de optimización. Dados un conjunto de valores (x,y), se intenta encontrar la función continua que mejor se ajuste a los datos proporcionados de acuerdo con el criterio de mínimo error cuadrático, expuesto por el matemático Gauss.
La función continua a la que queremos aproximar los datos puede ser de distintos tipos: una recta, una parábola (o polinomios de grados mayores), una exponencial, una logarítmica, una trigonométrica, etc.
1. rECtA DE REGRESIóN
¿Qué Buscamos?
Buscamos determinar la recta (en azul) que mejor se adapte al conjunto de puntos. Como se trata de una recta, seguirá la siguiente expresión:
r(x) = a +bx
Para que la recta que buscamos se adapte mejor a los puntos la distancia entre la recta y los puntos (dj) debe ser mínima.
Por ello, se va a minimizar la distancia entre los puntos (dj). Así, esta distancia va a ser la diferencia el valor del punto en esa coordenada (yj) menos el valor de de la recta en esa coordenada (a + bsj).
Hablamos de sj e yj debido a que tenemos tantos puntos, que hemos creado dos vectores para almacenarlos. El vector sj guarda los valores de las x de todos lo puntos y el vector y hace los mismo con los valores en el eje de las y de los puntos.
PROCEDIMIENTO PARA DETERMINAR LA RECTA
1. Aplicamos el principio del mínimo cuadrado:
Elevamos la distancia entre la coordenada y de un punto y el valor de ese punto en la recta con el objetivo de minimizar la distancia:
(dj)^2 = [ yj - (a + b*sj)]^2
2. Empleamos sumatorios:
La expresión que acabamos de ver en el apartado anterior es aplicada sólo a un punto. Pero nosotros queremos minimizar las distancia de todos los puntos con la recta, por lo que es necesario emplear sumatorios. Además, como la expresión depende de dos variables (a y b), ya que yj y sj son conocidas, pues se puede expresar como una función. Por tanto, nos quedaría:
f(a,b) = ∑ [yj - (a + b*sj)]^2 (i=1,n)
siendo n el número de puntos.
3. Derivar parcialmente:
Debido a que el objetico es minimizar la distancia de los puntos a la recta de regresión, derivamos la función y la igualamos a 0 con el fin de encontrar el mínimo. Sin embargo, la función depende de dos variables, a y b, luego tendremos que derivar f respecto de a y de b. Si igualamos a 0 nos quedaría:
∂f/∂a = 2 ∑ [yj - (a + b*sj)] * (-1) = 0
∂f/∂b = 2 ∑ [yj - (a + b*sj)] * (-sj) = 0
4. Simplificar la expresión:
Una vez hemos derivado parcialmente, seguimos operando. Nos interesa dejar a la izquierda lo que depende de a y b y a la derecha el término independiente:
5. Adoptar una nomenclatura y expresarlo en forma matricial:
Nos ha quedado un sistema de ecuaciones con dos incógnitas. Simplificamos la notación para que nos sea más fácil operar:
SX = ∑sj SY = ∑yj SX2 = ∑(sj)^2 SXY = ∑yj*sj
A continuación escribimos el sistema en forma matricial:
6. Resolver el sistema por Cramer:
Por último, una vez que tenemos el sistema matricial, sólo queda resolverlo. Para ello, se pueden aplicar distintos métodos, pero el más sencillo será aplicando Cramer.
ORGANIGRAMA PARA CALCULAR A Y B
C
s, n, y
Se introducen los tres datos:
-
s: es un vector que contiene los valores de las x de todos los puntos
-
y: otro vector que contiene los valores de las y
-
n: indica el número de puntos
sx=0; sx2=0
sy=0; sxy=0
j = 1,n
sx=sx + s[j]
sx2= sx2 + (s[j]^2)
sy= sy + y[j]
sxy = sxy + s[j]*y[j]
Estas variables van a almacenar los 4 sumatorios necesarios para calcular a y b, como hemos visto antes
Se igualan a 0 para que cuando entren al bucle por primera vez valgan 0
Es un bucle que recorre todos los puntos, ya que va de 1 hasta n
a = (sx2*sy-sx*sxy)/(n*sx2-(sx)^2)
b = (n*sxy-sy*sx)/(n*sx2-(sx)^2)
Se resuelve el sistema de ecuaciones por Cramer
a, b
Se sacan los datos de a y b pudiéndose construir la recta que mejor se adapta a los puntos
F
2. Ajuste por funciones polinómicas y no polinómicas.
El procedimiento para estos ajustes es más complicado que el anterior. Por ello, hemos propuesto la realización de un vídeo que explique estos conceptos.
ORGANIGRAMA FUNCIÓN POLINÓMICA
C
s, y, m, n
A=0, B=0
i=1, m+1
k=1,m+1
j=1,n
A[i,k]=A[i,k]+s[j]^(i+k-2)
j=1,n
b[i] = b[i] +s[j]^(i-1)*y[j]