Sunteți pe pagina 1din 12

MDULO 4 - REGRESIN

INTRODUCCIN


La regresin es una tcnica utilizada para investigar y modelar la relacin entre variables; tiene
aplicacin en varios campos tales como la ingeniera, fsica, ciencias econmicas, ciencias
biolgicas as como en las ciencias sociales. Aqu se utilizan ecuaciones para resumir un
conjunto de datos, de tal forma que luego se pueda utilizar el anlisis de la regresin para
describir el comportamiento de los datos. De igual forma tiene aplicacin en la prediccin de
algn evento o fenmeno, cuyo estudio ha permitido tomar una serie de datos que lo
describen bajo ciertos parmetros, pero fuera de ellos no hay forma de conocerlo; con la
regresin lineal se puede realizar una prediccin del comportamiento de este fenmeno, sin
necesidad de recurrir a la prctica experimental.


OBJETIVOS

Disear un programa que utilice el mtodo de mnimos cuadrados para hallar la mejor
aproximacin de varias parejas de puntos como una funcin.

Aprender a utilizar el mtodo de mnimos cuadrados para disear diferentes
aproximaciones conforme se tiene la tendencia de las parejas de puntos.

Evaluar el error obtenido y comprender el significado del mismo acorde al tipo de
aproximacin realizada.

Aplicar el mtodo de Linerizacin para encontrar aproximaciones a funciones de otro tipo
(exponencial o potencial), vindolas como funciones lineales.
























REGRESIN

1. El siguiente programa est diseado para obtener los coeficientes A y B por medio de la
tcnica de regresin lineal de un conjunto de datos que describen una recta (aproximacin o
tendencia a esa recta) de la forma .

Nota: dentro de los datos proporcionados para Y se repite el 0.75, por lo cual hicimos el
cambio del segundo de ellos por 0.85 para elaborar el programa (cualquier resultado
obtenido tiene en cuenta esta consideracin).

clc;
disp(" ** Laboratorio Cuatro ** ")
disp("Codigos: 245176 245049 245335")
ww=getdate();
mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d
",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9));

//Mtodo de mnimos cuadrados
function [A,B]=lsline(X,Y)
// Datos
// - X es el vector de abscisas de 1 x n
// - Y es el vector de ordenadas de 1 x n
// Resultados
// - A es el coeficiente de x en Ax + B
// - B es trmino independiente en Ax + B
xmean=mean(X);
ymean=mean(Y);
sumx2=(X-xmean)*(X-xmean)';
sumxy=(Y-ymean)*(X-xmean)';
A=sumxy/sumx2;
B=ymean-A*xmean;
endfunction

X = [0.15 0.45 0.55 0.75 0.85 0.95]
Y = [0.612 0.922 0.992 1.522 1.472 2.032]
[A,B]=lsline(X,Y)






A continuacin el programa ser modificado para tambin calcular el error cuadrtico medio,
debido a la aproximacin realizada al considerar el conjunto de datos como una tendencia a
una funcin lineal.

Nota: los resultados obtenidos a continuacin tienen en cuenta la modificacin que se
menciono anteriormente.

clc;
disp(" ** Laboratorio Cuatro ** ")
disp("Codigos: 245176 245049 245335")
ww=getdate();
mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d
",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9));

//Mtodo de mnimos cuadrados
function [A,B]=lsline(X,Y)
// Datos
// - X es el vector de abscisas de 1 x n
// - Y es el vector de ordenadas de 1 x n
// Resultados
// - A es el coeficiente de x en Ax + B
// - B es trmino independiente en Ax + B
xmean=mean(X);
ymean=mean(Y);
sumx2=(X-xmean)*(X-xmean)';
sumxy=(Y-ymean)*(X-xmean)';
A=sumxy/sumx2;
B=ymean-A*xmean;
endfunction

//Funcion lineal
function Fy=fun(x)
Fy=A*x + B;
endfunction

//Error cuadratico medio
function E=ecmedio(Y,Fy,N)
[M,N]=size(Y);
R=(abs(Fy-Y))*(abs(Fy-Y))';
E=(R/N)^(1/2);
endfunction

X = [0.15 0.45 0.55 0.75 0.85 0.95]
Y = [0.612 0.922 0.992 1.522 1.472 2.032]
[A,B]=lsline(X,Y)

Fy=fun(X)
disp("El error cuadrtico medio es:")
E=ecmedio(Y,Fy,N)







Los resultados obtenidos como se dijo anteriormente, corresponden a los coeficientes de la
funcin . El programa trabaja con el promedio de los datos, haciendo alusin a
una pequea modificacin en la forma de ver la solucin en el sistema matricial, que se puede
calcular tanto por el mtodo de Gauss o usando la Regla de Kramer. Efectivamente los
resultados obtenidos corresponden a los coeficientes de la ecuacin en la regresin, adems
de presentar esta aproximacin una baja dispersin de los datos respecto a la tendencia lineal
presentada por la ecuacin (hecho fcilmente observable por el valor del error cuadrtico
medio).


MTODO MNIMOS CUADRADOS
Ecuacin de la parbola

2. Esta regresin es de la forma

y el sistema matricial asociado para hallar


el valor de los coeficientes es:

[

]
[



clc;
disp(" ** Laboratorio Cuatro ** ")
disp("Codigos: 245176 245049 245335")
ww=getdate();
mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d
",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9));

// Ecuacin de la parabola de mnimos cuadrados
function [C,B,A]=rgcuad(X,Y)
// Entrada: Las matrices de valores X e Y
// Salida: El valor de los coeficientes de la ecuacin de mnimos
// cuadrados de la forma A + BX + CX^2

// Devuelve la cantidad de datos presentes para Y
[M,N]=size(Y);

// Sx,Sx2,SX3,SX4 - Son las sumatorias de la forma X, X^2, X^3 y X^4
// SY,SXY,SX2Y - Son las sumatorias de la forma Y, XY y X^2*Y
SX=sum(X);
SX2=sum(X^2);
SX3=sum(X^3);
SX4=sum(X^4);
SY=sum(Y);
SXY=sum(X*Y');
SX2Y=sum((X^2)*Y');

// R y S son las matrices asociadas para resolver el sistema matricial
// de la forma AX = B y obtener la solucin de X.
// Siendo X el vector con el valor de los coeficientes A,B y C.
R=[N SX SX2;SX SX2 SX3;SX2 SX3 SX4];
S=[SY;SXY;SX2Y];

// Funcin que resuelve el sistema matricial de R y S y muestra
// el vector de soluciones llamado T
T=linsolve(R,-S);

// Busca su respectivo lugar en el vector T y regresa el valor que
// le corresponde a cada variable.
A=T(1);
B=T(2);
C=T(3);
endfunction

//Funcin cuadratica
function Fy=fun(x)
Fy= A + B*X + C*X^2;
endfunction

// Coeficiente de correlacin
function r=cfcor(Fy,X,Y)
[M,N]=size(Y);
SY=sum(Y);
Sr=(abs(Fy-Y))*(abs(Fy-Y))';
St=(abs((SY/N)-Y))*(abs((SY/N)-Y))';

r=(((St-Sr)/St))^(1/2);
endfunction

X=[1.2 2.3 3.5 4.6 5.7 6.8 7.7 8.2]
Y=[10.1 15.5 8.3 5.4 7.6 8.9 15.5 18.4]

[C,B,A]=rgcuad(X,Y)
Fy=fun(X);
r=cfcor(Fy,X,Y)








El sistema de ecuaciones planteado para realizar la regresin por la cuadrtica de mnimos
cuadrados es diferente al planteado implcitamente en el anterior programa, aqu se tiene una
matriz de 2x2 cuya resolucin es mas laboriosa, siendo as que fue necesario calcular cada uno
de los elementos que componan la matriz en su posicin ij. Para hallar el vector solucin del
sistema matricial con los valores de los coeficientes A, B y C, se empleo el mtodo de la matriz
inversa, ya que el programa Scilab contiene una funcin propia que facilita obtener la misma.
Se logr obtener una aproximacin del conjunto de datos cuyo coeficiente de correlacin nos
demuestra que esta no es muy buena ya que su valor se encuentra alejado de 1, siendo este
ltimo el ajuste ideal. En este caso se debe considerar otro tipo de regresin para obtener
mejores resultados, por lo tano, siempre es recomendable realizar una grafica a priori que nos
ayude a observar la tendencia de las parejas de datos, seguido de una toma de decisin con el
camino a elegir (segn la regresin que se deba realizar); as se garantiza un mejor trabajo y sin
prdidas de tiempo innecesarias.

3)
El comando length(x), determina el tamao de un vector.
El comando sum(x), calcula la suma de los componentes del vector x.
El comando sum(x2), permite determinar la suma de los componentes del vector x
elevados al cuadrado.

Ejemplo:
//Se determina el tamao y los valores del vector x//
x=[146;609;111;392]
//Clculo del tamao del vector x
length(x)
//Clculo de la suma de los componentes del vector x
sum(x)
//Clculo de la suma de los componentes del vector x elevados al cuadrado
sum(x^2)



El comando x.*y, facilita el calculo de la multiplicacin de dos vectores (x y y).
El comando sum(x.*y), permite calcular la suma de la multiplicacin de los dos
vectores.
El comando (x2).*y, permite calcular la multiplicacin cada componente del vector x
al cuadrado por cada componente del vector y.
El comando sum((x2).*y), halla la suma de los componentes que resulta al calcular
(x2).*y.

Ejemplo:
//Se determinan los valores y tamaos de dos vectores x y y
x=[146;609;111;392] , y=[619;743;901;324]
//Clculo de la multiplicacin de los componentes correspondientes de los vectores x
y y
x.*y
//Clculo de la suma de la multiplicacin de los vectores x y y
sum(x.*y)
//Clculo de la multiplicacin de los componentes del vector x al cuadrado por los
del vector y
(x^2).*y
//Clculo de la suma de la multiplicacin del vector x al cuadrado por el vectro y
sum((x^2).*y)



El comando mean(x), Para un vector devuelve la escalar y la media de todas las
entradas de x.
El comando sum(y-mean(y)2), calcula la suma que resulta al restarle a cada
componente del vector y la media al cuadrado.
Ejemplo:
x=[146;609;111;392] , y=[619;743;901;324]
//Clculo de la media de todas las entradas del vector x
mean(x)
//Clculo de la suma que resulta al restarle a cada componente del vector y la
media al cuadrado.
sum(y-mean(y)^2)




CONCLUSIONES

La regresin, como tcnica para analizar el comportamiento de un conjunto de datos, nos
ayuda en diferentes campos y tiene diversas aplicaciones.

Se debe tener un apoyo (como una grfica) sobre el conjunto de datos que vamos a poner
bajo el proceso de regresin para tener clara idea de cul tcnica se va a utilizar.

Un conjunto de datos cuya tendencia no se aproxime a una funcin lineal, se pueden
Linerizar para obtener una funcin con una estructura similar a la primera y as resolver
esta ltima con las tcnicas de regresin lineal.

El coeficiente de correlacin es un criterio para determinar que tan buena es la
aproximacin de la funcin obtenida de la regresin a partir del conjunto de datos.

Si la dispersin de los datos es baja en relacin con la curva obtenida por la funcin, se
tiene una buena tendencia que nos facilitar el camino para analizar esos datos y realizar
predicciones.