regresión programación numérica. regresión lineal se desea ajustar un serie de puntos (x i, y i...
TRANSCRIPT
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.
n
iii
n
imodeloimedidai
n
iir xaayyyeS
1
210
1
2,,
1
2
Ajuste por mínimos cuadrados
n
iii
n
imodeloimedidai
n
iir xaayyyeS
1
210
1
2,,
1
2
iiir
iir
xxaayaS
xaayaS
101
100
2
2
Derivando respecto a a0 y a1.
Obtenemos
Igualando a 0
2
10
10
0
0
iiii
ii
xaxaxy
xaay
Resolviendo para a0 y a1
xaya
xxn
yxyxna
ii
iiii
10
221
EjemploAjustar 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ásicaPromedio:
Desviación estándar
Varianza:
Coeficiente de variación:
Estimado normal estándar:
1
/22
12
n
nyys i
y12
n
Ss t
y
1
nS
s ty
2yyS it
n
yy i
%100..y
svc y
ns
yt
y /
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
iiir xaayS
1
210
Medición
a0 + a1x
yi – a0 – a1x
Línea de re
gresió
n
2/
nS
S rxy
La desviación estándar de la línea de regresión es:
2yyS it
La magnitud del error residual antes de la regresión es:
El coeficiente de determinación es:
t
rt
SSS
r2
El coeficiente de correlación es:
2222
2
iiii
iiii
yynxxn
yxyxnrr
En ajuste perfecto Sr = 0 y r = r2 = 1.
Si r = r2 = 0, Sr = St, el ajuste no representa alguna mejora.
x
y
Linealización de relaciones no lineales
x
y
xey 11
x
y
22
xy
x
y
xx
y
3
3
x
ln y
log x
log y
1/x
1/y
Pendiente = 1
Pendiente = 2
Pendiente = 3/
Intersección = ln 1 Intersección = log 2
Intersección = 1/3
Ejemplo2
2 xy Ajustar los siguientes datos a
x y1 0.52 1.73 3.44 5.75 8.4
ejemplo
xx
y
3
3
Usar regresión de mínimos cuadrados para ajustar a una ecuación de taza de crecimiento de saturación.
x 5 10 15 20 25 30 35 40 45 50
y 17 24 31 33 37 37 40 40 42 41
33
33
3
1111
xx
xy
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 residuos es:
n
iiiir xaxaayS
1
22210
De aquí obtenemos:
2210
2
2
2210
1
2210
0
2
2
2
iiiir
iiiir
iiir
xaxaayxaS
xaxaayxaS
xaxaayaS
Reordenando se obtiene
iiiii
iiiii
iii
yxaxaxax
xyaxaxax
yaxaxna
22
41
30
2
23
12
0
22
10
3/
nS
S rxy
El error estándar es:
EjemploAjustar 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
TareaAjustar 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 Cvoid 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); gauss(b,3,a); for(j=0; j<3; j++) cout << a[j]<<"\n"; system("PAUSE");}
6 15 55 152.615 55 225 585.655 225 979 2488.8
2.478572.359291.86071
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
iirR
1
2
Igualando a cero las derivadas parciales respecto ai.
nkyxaxL
ii
knij
n
j
L
i
kjni ,...,2,0,
1
1
0 1
22