viernes, 9 de diciembre de 2011

Ajuste de Curva (Regresión Lineal MySQL)

  • Autor: Patricio Ignacio Bello Villalobos
  • Competencia: Trabajo en equipo.
  • Palabras clave: 
-SELECT: Utilizado para realizar consultas a una base de datos.
La sintaxis SQL para SELECT es
SELECT "nombre_columna" FROM "nombre_tabla"

-ALTER TABLE: Utilizado para realizar cambios luego de haber creado una tabla.
La sintaxis SQL para ALTER TABLE es
ALTER TABLE "nombre_tabla"
[modificar especificación]

-UPDATE: Utilizado para realizar cambios en la información de la tabla.
La sintaxis SQL para UPDATE es
UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE {condición}




-Ya que hemos comenzado trabajando con números, la siguiente pregunta natural a realizarse es si es posible hace cálculos matemáticos con aquellos números, tales como sumas, o sacar unpromedio. ¡La respuestaes sí! SQL tiene varias funciones aritméticas, y estas son:
La sintaxis para el uso de funciones es,
SELECT "tipo de función"("nombre_columna") 
FROM "nombre_tabla"




Descripción de la actividad:                                                                     


   En este informe trataremos de llevar un experimento mas allá de eso, trabajando con formulas matemáticas que nos puedan aportar datos concretos, además usando lo aprendido con My SQL.
Para introducir  el tema, empezaremos definiendo:


-Trayectoria rectilínea de objetos móviles: una trayectoria rectilínea, como la palabra lo dice, es cuando el recorrido que posee un móvil es ejercido en línea recta.
Todo comienza con la grabación de un video de una pelota recorriendo un espacio, gracias al programa Tracker pusimos obtener los puntos X e Y del recorrido de dicha pelota, con estos puntos debemos obtener a, b y , aquí es donde entra en juego las bases de datos, ya que todos los cálculos debemos ejecutarlos mediando MySQL, con el diseño de una tabla y sus posteriores consultas.
  • Solución: 

Para comenzar este trabajo tuvimos que grabar un video, de una pelota recorriendo un espacio determinado:
Luego de grabar el video, debimos usar el programa tracker:
Gracias al programa tracker obtuvimos 133 puntos X e Y, estos los ingresaremos en una tabla en MySQL por medio de la siguiente sintaxis:

Create Table datos (x double, y double);
insert into datos (x,y) values ( 1.7 , 1.2);
insert into datos (x,y) values ( 3.051 , 2.315);
insert into datos (x,y) values ( 4.339 , 3.462);
….y asi con todos los puntos que obtuvimos del tracker.

Obtuvimos la siguiente tabla:
Una vez que tenemos los puntos en nuestra tabla debemos calcular los coeficientes a y b mediante el método de los mínimos cuadrados.
Las formulas para calcular a, es las siguiente:
A= sumatoria (x1- promX)(y1-promY)
      --------------------------------------------
           sumatoria (x1-promX)^2


Para realizar esto en MySQL primero debemos descomponer la ecuación en partes:

promX: esto lo guardaremos en la columna promedioX
Creamos la columna: ALTER TABLE datos ADD promedioX double;
Y agregamos los datos: UPDATE datos SET promedioX=AVG(x);

promY :esto lo guardaremos en la columna promedioY
Creamos la columna: ALTER TABLE datos ADD promedioY double;
Y agregamos los datos: UPDATE datos SET promedioY=AVG(y);

(x1- promX): esto lo guardaremos en la columna XmenosPromX
Creamos la columna: ALTER TABLE datos ADD XmenosPromX double;
Y agregamos los datos: UPDATE datos SET XmenosPromX =x- promedioX;

(y1-promY): esto lo guardaremos en la columna YmenosPromY
Creamos la columna: ALTER TABLE datos ADD YmenosPromY double;
Y agregamos los datos: UPDATE datos SET YmenosPromY =y- promedioY;

(x1- promX)(y1-promY): esto lo guardaremos en la columna XmenosPromXporYmenosPromY
Creamos la columna: ALTER TABLE datos ADD XmenPromXporYmenPromY double;
Y agregamos los datos: UPDATE datos SET XmenPromXporYmenPromY = XmenosPromX* XmenosPromX;

Luego tendremos nuestra tabla así:



Ya tenemos todos los valores necesarios para calcular A.
Para esto usaremos la siguiente sintaxis que remplaza la formula:
SELECT ((SELECT SUM(XmenPromXporYmenPromY) FROM datos) / (SELECT SUM(XmenosPromX* XmenosPromX) FROM DATOS)) AS resultado_a FROM datos;
Así obtenemos el valor de a=0.3782 y lo guardamos en una columna:
Creamos la columna: ALTER TABLE datos ADD Valor_a double;
Y agregamos los datos: UPDATE datos SET Valor_a=0.3782;

Con esto ya podemos calcular b:

b = promY -a* promX
Creamos la columna: ALTER TABLE datos ADD Valor_B double;
Y agregamos los datos: UPDATE datos SET Valor_B=promedioY-Valor_a*promedioX;

Y obtenemos la siguiente tabla:  B=1,8829
Ya podemos calcular el valor de   :

R =  sumatoria(x1 - promX)(y1- promY)
        ----------------------------------
       sumatoria (x-promX)^2 sumatoria (y1-promY)^2

Calculamos por medio de la sintaxis:
SELECT (((SELECT SUM(XmenPromXporYmenPromY) FROM datos) / (SELECT SUM(XmenosPromX* XmenosPromX) FROM DATOS)* (SELECT SUM(YmenosPromY* YmenosPromY) FROM DATOS))) AS resultado_Rcuadrado  FROM datos;


Creamos la columna: ALTER TABLE datos ADD Valor_Rcuadrado double;
Y agregamos los datos: UPDATE datos SET Valor_Rcuadrado=0,77134;

Y obtenemos la siguiente tabla:
Luego Realizamos el mismo procedimiento para tres rectas más:
Con los siguientes puntos:

(6.2 - 4.098) (4.24 - 2.76)         Recta numero1
Obteniendo:
(2.26 - 1.427) (4.04 -  2.62)      Recta numero2
Obteniendo:
(6.13 -  4.039) (6.053 -  3.986)  Recta numero3
Obteniendo:


Conclusiones con respecto a la calidad del ajuste para cada recta.

Los ajustes de las rectas de solo 2 puntos (Rectas numero1, 2 y 3) fueron muy diferentes entre sí, en el caso de la recta numero2 muy cercano al de la recta principal y en el caso de la recta numero3 muy alejada, obtuvimos el lado más cercano, el más lejano y el medio, esto nos confirma la importancia del número de puntos para un correcto ajuste.

Conclusiones generales de la experiencia.

En este trabajo, pusimos en práctica todo lo aprendido en el semestre, lo relacionado en matemáticas y también en My SQL  en lo que son el desarrollo de tablas y los comandos, también aprendimos a usar otros componentes que nos ayudaron a establecer los puntos a través de videos (tracker).
También pudimos evidenciar la importancia de cada dato en el cálculo de las formulas y de los múltiples usos de MySQL, jamás hubiéramos pensado que sería útil en ajustes de curvas, pero nos sorprendió, con lo versátil que es, de ahí su importancia en la informática de hoy en día.
  • Reflexión: 
   En esta actividad cumplimos la competencia de trabajo en equipo, ya que pudimos desarrollarla completamente en grupo, repartiendo tareas entre los integrantes de este. Ademas nos permitió realizar un plan previo para efectuar el trabajo,  teniendo en cuenta horarios, tareas, fechas, etc.








Finalmente puedo afirmar que un correcto trabajo en equipo es algo indispensable, mas aun a la hora de trabajar en proyectos extensos.

No hay comentarios:

Publicar un comentario