sábado, 12 de noviembre de 2011

Regresión Lineal

Autor: Felipe Andres Lagos Morapasten
Competencia: Aplica las Ciencias de la ingeniería. (Nivel 1)
Palabras Clave: Base de Datos, SQL, Curvas, Ajustes.
 
Descripción de la Actividad

Finalizando con la competencia de Aplica las Ciencias de la Ingeniería , quiero  compartir con ustedes mi trabajo de Regresión Lineal, este trabajo corresponde al curso de Introducción a las Bases de Datos que consiste en realizar un lanzamiento de proyecto, almacenando su recorrido en un video para después analizar el movimiento del cuerpo(pelota) mediante varias herramientas como lo son los softwares Tracker y MySql, finalizando con la realización del ajuste de curva para el movimiento(cálculos de a. b y r2), sacando rectas principales y rectas alternativas.


Solución:

Este trabajo de regresión lineal, consta de varios puntos, los cuales son grabar el video del movimiento, mediante el software Tracker se debían obtener las coordenadas x e y para luego pasarlas a una base de datos de la actividad, todo esto evidenciar mediante imágenes, es en la base de datos creada donde  se realizan todo lo que tiene que ver con cálculos de la calidad de ajuste, las rectas ( a, b y r^2), además de todo lo anterior establecer tres rectas alternativas mediante mínimos cuadrados y la calidad de ajuste mediante el r^2.

Lo primero es realizar la grabación del video con la trayectoria del cuerpo(movimiento,desplazamiento), en este caso una pelota de color azul,
la cual nos arrojó 108 puntos.

Luego mediante el software Tracker se debía ingresar el video, este video se
obtenía al menos 100 puntos , esos puntos son las coordenadas X e Y, la nube de puntos.




Estas coordenadas obtenidas son las que se ingresan en la base de datos 

Estructura de la base de datos, "datos".

create table datos( NoPunto int(3) auto_increment, x float(10), y float(10), PRIMARY KEY(NoPunto));



Inserción de puntos en la base de datos.


Al tener todos los datos de los puntos en la tabla, podemos continuar con los cálculos para las rectas, ya que la estructura de la tabla solo fue hecha para los puntos X e Y, se tuvo que alternar la tabla, creándole nuevas columnas donde estarán los cálculos almacenados.
Se le agregó las columnas Promedio X, Promedio Y, X1- Promedio X, Y1 – Promedio Y, X1- Promedio X * Y1-Promedio Y, el cuadrado de X1- Promedio X y el cuadrado de Y1- Promedio Y.

Sentencias SQL
- alter table datos add column PromX float(10);
- update datos set PromX = “292.347”;
- alter table datos add column PromY float(10);
- update datos set PromX = “161.514”;
- alter table datos add column XImenosXPROM float(10);
- update datos set XImenosXPROM = x-PromX;
- alter table datos add column YImenosYPROM float(10);
- update datos set YImenosYPROM = y-PromY;
- alter table datos add column XImenosXPROMporYImenosYPROM float(10);
- update datos set XImenosXPROMporYImenosYPROM = XImenosXPROM*YImenosYPROM;
- alter table datos add column Cuadrado_de_XImenosXPROM  float(10);
- update datos set Cuadrado_de_XImenosXPROM = XImenosXPROM* XImenosXPROM;
- alter table datos add column Cuadrado_de_YImenosYPROM  float(10);
- update datos set Cuadrado_de_YImenosYPROM = YImenosYPROM* YImenosYPROM;

 Cálculos de la regresión lineal (a ,b y r2)



select ( (select sum(XImenosXPROMporYImenosYPROM) from datos) / (select sum(Cuadrado_de_XImenosXPROM) from datos) )as resultado_a from datos;





select( (select PromY from datos where NoPunto=1) – ( (select sum(XImenosXPROMporYImenosYPROM) from datos) / (select sum(Cuadardo_de_XImenosXPROM) from datos)) *(select PromX from datos where NoPunto=1) ) as Resultado_b from datos;




Select (((select sum(XImenosXPROMporYImenosYPROM) from datos)*(select sum(XImenosXPROMporYImenosYPROM) from datos))/((select sum(Cuadrado_de_XImenosXPROM) from datos)*(select sum(Cuadrado_de_YImenosYPROM) from datos))) as R_cuadrado from datos;



Para revisar estos cálculos de las rectas (a, b y r2) que solo eran consultas select, es necesario usar las vistas, así es posible verlos con una mayor facilidad o rapidez.

VISTA A

create view A as select ( (select sum(XImenosXPROMporYImenosYPROM) from datos) / (select sum(Cuadrado_de XImenosXPROM) from datos) )as Resultado_A from datos;

 VISTA B

create view B as  select( (select PromY from datos where NoPunto=1) – ( (select sum(XImenosXPROMporYImenosYPROM) from datos) / (select sum(Cuadrado_de_XImenosXPROM) from datos)) * (select PromX from datos where NoPunto=1)) as Resultado_De_B from datos;

VISTA R2

create view R2 as select(((select sum(XImenosXPROMporYImenosYPROM) from datos)*(select sum(XImenosXPROMporYImenosYPROM) from datos)) / ((select sum(Cuadrado_de_XImenosXPROM) from datos)*(select sum (Cuadrado_de_YImenosYPROM) from datos))) as R_Cuadrado from datos;


Finalizando todo esto a continuación se establecerán tres rectas alternativas mediante mínimos cuadrados y la calidad de ajuste mediante el r^2.


Calidad de ajuste de las rectas alternativas


Al momento de seleccionar los diferentes puntos como por ejemplo (1,108) (54,55)  que nos servirán como nuevas rectas para medir su calidad de ajuste, al calcular sus a, b y r2 correspondientes nos encontramos con un resultado muy positivo ya que la mayoría de las rectas se igualo a 1 lo que quiere decir que la calidad de ajuste está en lo correcto concluyendo que la recta principal que luego será modelada, también su calidad de ajuste será muy aproximado a 1 lo que demuestra que los datos que se han obtenido y fueron usados para las diferentes consultas, vistas con el software de MySql serán muy confiables lo que nos arroja que nuestro modelado de eventos (trayectorias) llegará a un buen resultado.


Para complementar más el trabajo he graficado la recta principal y las rectas alternativas y calculadas los a, b y R2.

Recta principal

  



Rectas alternativas



Recta 1: Puntos 1 y 108
 

Recta 2: Puntos 54 y 55



Recta 3: Puntos 36 y 72
 

Reflexión:

Este trabajo de Regresión Lineal está orientado principalmente al uso de funciones para aplicar a la recta, al entender esto sobre a, b y r2, la problemática se vuelve más entendible, siendo las  consultas en lenguaje SQL una opción viable, confiable para realizar los cálculos, siendo "utilizables" estos datos mediante una comprobación de datos(numerica al igual), se puede iniciar los análisis de las rectas.

Te invito a que si tienes dudas o quieres complementar esta actividades mediante opiniones, otras informaciones no tengas miedo de emitir tus comentarios, a participar donde cada comentario hará que se haga más interactivo este espacio.




No hay comentarios:

Publicar un comentario