Transcript Regresíon
Regresión
Programación Numérica
Regresión Lineal
Se desea ajustar un serie de puntos (xi, yi) a una línea recta dada
por:
y = a0 + a1x + e
Donde a0 y a1 son coeficientes que representan la intersección
con el eje y la pendiente, y e es el error, o diferencia, entre el
modelo y las observaciones.
e = y – a0 – a1x
Criterio del mejor ajuste
En el método de mínimos cuadrados se desea minimizar la
suma de los cuadrados de los residuos.
S r e yi ,medida yi ,modelo yi a0 a1 xi
n
i 1
n
2
i
i 1
2
n
i 1
2
Ajuste por mínimos cuadrados
Derivando respecto a a0 y a1.
S r e yi ,medida yi ,modelo yi a0 a1 xi
n
n
i 1
Obtenemos
2
i
2
i 1
n
i 1
S r
2 yi a0 a1 xi
a0
S r
2 yi a0 a1 xi xi
a1
Igualando a 0
0 yi a0 a1 xi
0 yi xi a0 xi a1 xi2
Resolviendo para a0 y a1
a1
n xi yi xi yi
n xi2 xi
a0 y a1 x
2
2
Ejemplo
Ajustar con mínimos cuadrados los siguientes datos
X
Y
1
0.5
2
2.5
3
2.0
4
4.0
5
3.5
6
6.0
7
5.5
Tarea
Ajustar con mínimos cuadrados los siguientes datos
X
Y
0
5
2
6
4
7
6
6
9
9
11
8
12
7
15
10
17
12
19
12
Estadística básica
Promedio:
y
n
Desviación estándar
St
sy
n 1
Varianza:
yi
St yi y
2
2
y
yi / n
1
2
sy
n 1
2
S
s t
n 1
Coeficiente de variación:
Estimado normal estándar:
2
y
c.v.
t
sy
y
100%
y
sy / n
Tarea
Escriba un archivo M para graficar la recta del mejor ajuste
utilizando mínimos cuadrados. Deberá aceptar como
parámetros los valores de X y Y. Grafique los puntos con
círculos y la línea de regresión con una recta.
Error en la regresión lineal
n
S r yi a0 a1 xi
2
y
Medición
i 1
La desviación estándar de la línea de
regresión es:
Sy/ x
Sr
n2
yi – a0 – a1x
a0 + a1x
La magnitud del error residual antes de la
regresión es:
St yi y
x
2
El coeficiente de determinación es:
St S r
r
St
2
2
El coeficiente de correlación es: r r
En ajuste perfecto Sr = 0 y r = r2 = 1.
Si r = r2 = 0, Sr = St, el ajuste no representa
alguna mejora.
n xi yi xi yi
n xi2 xi
2
n yi2 yi
2
Linealización de relaciones no
lineales
y
y
y 1e
1x
y 2 x
x
ln y
y
y 3
2
x
log y
x
3 x
x
1/y
Pendiente = 3/3
Pendiente = 1
Pendiente = 2
x
Intersección = ln 1
log x
Intersección = log 2
Intersección = 1/3
1/x
Ejemplo
Ajustar los siguientes datos a
x
y 2 x
y
1
2
3
4
5
0.5
1.7
3.4
5.7
8.4
2
ejemplo
Usar regresión de mínimos cuadrados para ajustar a una
ecuación de taza de crecimiento de saturación.
x
y 3
3 x
x
5
10
15
20
25
30
35
40
45
50
y
17
24
31
33
37
37
40
40
42
41
1 1 3 x 3 1 1
y 3 x
3 x 3
Tarea
Dados los datos siguientes use regresión por mínimos cuadrados
para ajustar a) una línea recta, b) una ecuación exponencial, c)
una ecuación de potencias.
x 5
10 15 20 25 30 35 40 45 50
y 17 24 31 33 37 37 40 40 42 41
Regresión Polinomial
Ajuste a un polinomio cuadrático
y = a0 + a1x + a2x2 + e
La suma de los cuadrados de los
n
2
residuos es:
S r yi a0 a1 xi a2 xi2
i 1
De aquí obtenemos:
S r
2 yi a0 a1 xi a2 xi2
a0
S r
2 xi yi a0 a1 xi a2 xi2
a1
S r
2 xi2 yi a0 a1 xi a2 xi2
a2
Reordenando se obtiene
na0 xi a1 xi2 a2 yi
x a
x a
i
2
i
0
xi2 a1 xi3 a2 yi xi
3
4
2
x
a
x
a
x
0
i
1
i
2
i yi
El error estándar es:
Sy/x
Sr
n3
Ejemplo
Ajustar a un polinomio de segundo grado.
x 5
10 15 20 25 30 35 40 45 50
y 17 24 31 33 37 37 40 40 42 41
Tarea
Ajustar a un polinomio de segundo grado.
x 5
10 15 20 25 30 35 40 45 50
y 17 24 31 33 37 37 40 40 42 41
Escriba una función en C que calcule el polinomio de segundo
grado del mejor ajuste utilizando mínimos cuadrados.
Escriba un archivo M para graficar el polinomio de segundo
grado del mejor ajuste utilizando mínimos cuadrados.
Regresión polinomial en C
void regrePoly(double x[],double y[],int n,int m,double
a[][20])
{
int i,j,k,l;
double sum;
for(i = 0; i<m+1; i++){
for(j = 0; j<=i; j++){
k = i+j;
sum = 0;
for(l = 0; l<n; l++)
sum += pow(x[l],k);
a[i][j] = sum;
a[j][i] = sum;
}
sum = 0;
for(l = 0; l<n; l++)
sum += y[l]*pow(x[l],i);
a[i][m+1] = sum;
}
}
Ejemplo de corrida
main(){
int j;
double a[20],b[20][20];
double x[]={0,1,2,3,4,5};
double y[]={2.1,7.7,13.6,27.2,40.9,61.1};
int n=6;
regrePoly(x,y,6,2,b);
print(b,3);
6
15 55
gauss(b,3,a);
15 55 225
for(j=0; j<3; j++)
55 225 979
cout << a[j]<<"\n";
system("PAUSE");
}
2.47857
2.35929
1.86071
152.6
585.6
2488.8
Ajuste a polinomios de orden
superior
Sea el polinomio de ajuste dado por
p(x) = a0 + a1 x + a2 x2 +… + an xn
La desviación de la curva respecto a cada punto es
ri = yi – p(xi)
La suma de las desviaciones al cuadrado es
L
R ri 2
i 1
Igualando a cero las derivadas parciales respecto ai.
L
L 2 n 2 j k
n 1 k
x
a
x
yi , k 0,2,...,n
i
j
i
j 0 i 1
i 1
n