FAQ  | Buscar  | Grupos  | Lista de Miembros  | Login / Logout  | Formulario de registro   Perfil de Usuario  |   Mensajes Privados
Un programa en Java. Series de tiempo Parte I , II y III
Ir a página Anterior  1, 2
 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foro de la Ribera -> Tutoriales Redribera Tutoriales Redribera
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
julio
Administrador
Administrador


Registrado: 01 Ene 1970
Mensajes: 1236
Ubicación: Troy

MensajePublicado: Jue Ago 20, 2009 10:35 pm    Título del mensaje: Responder citando

Hola yonosoyelmejor !

En cuanto a tu primera pregunta, lo unico que te puedo decir, es que probablemente los datos referidos a la fecha de tu base de datos access se puedan leer como un TIMESTAMP utilizando JDBC....al final para crear una observacion (que es el objeto principal que contiene los datos de las series de tiempo) necesitamos suministrar una cantidad y un objeto de tipo Date. Como obtener estos datos no es parte del tutorial, y depende de cada cual como quiera implementarlo.

De todos modos, posiblemente debas implementar las clases que te permitan leer registros de tu base de datos desde java y finlamente cuando leas los campos con contenido de tipo fecha, utilizar una instruccion del tipo

......
tst=resultado.getTimestamp("nombre_del_campo_de_fecha");
......
ts.addObservacion(tst,cantidad);

donde tst se declare como TimeStamp y resultado sea del tipo ResultSet (si utilizas JDBC)
Puesto que los objetos de la clase TimeStamp de Java son una especialización de la clase Date, esto no te generará problemas al utilizar el constructor de la clase Observacion !
Pero claro debes organizarte primero en como leearas registros de tu DB usando Java y como con esos datos, generarás series de tiempo.

En cuanto a la organización por trimestres, tan solo debes tener en cuenta dos puntos importantes:
1 Declarar el tipo de agrupacion en la inteface SeriesProperties, de la forma adecuada, en el tutorial lo puedes encontrar aquí: http://redribera.es/formacion/tutoriales/viewfile.html?file=javaSeries0108-2-1.xml#

2 Programar adecuadamente el tipo de agrupación, en el método getPeriodoByDate(Date fecha,int pGroup) de la clase Observacion, para devolver trimestres formateados de la forma que tu decidas (por ejemplo, T1-2009 , T2-2009....) . Para ello te debes valer de la clase calendar y tu imaginación para conseguirlo !

Espero haberte sino ayudado al menos podido orientar un poco!

Suerte !
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
yonosoyelmejor
Novato Total
Novato Total


Registrado: 18 Ago 2009
Mensajes: 6

MensajePublicado: Vie Ago 21, 2009 8:07 am    Título del mensaje: Responder citando

Hola Julio,

Muchas gracias por t respuesta.Mas o menos para lo de los trimestres tenia esa idea,pero claro habra que romperse la cabeza para ver como es esa agrupacion.Y lo de las fechas no me referia a la hora de adquirirlas sino poder cambiar el formato de presentacion...

Un saludo y muchas gracias por la atencion.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
julio
Administrador
Administrador


Registrado: 01 Ene 1970
Mensajes: 1236
Ubicación: Troy

MensajePublicado: Sab Ago 22, 2009 7:53 am    Título del mensaje: Responder citando

Hola yonosoyelmejor !

Para la presentación de las fechas yo utilizo siempr la clase SimpleDateFormat ( http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html ) en el constructor puedes expresaar de forma fácil diferentes formatos de fecha/hora y los metodos format y parse te ayudan a pasar de texto a Date de forma sencilla.
Dale un vistazo y a ver si consigues solucionar la forma de presentación.

Un saludo !
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
yonosoyelmejor
Novato Total
Novato Total


Registrado: 18 Ago 2009
Mensajes: 6

MensajePublicado: Mar Sep 08, 2009 9:33 am    Título del mensaje: Responder citando

julio escribió:
Hola yonosoyelmejor !

Para la presentación de las fechas yo utilizo siempr la clase SimpleDateFormat ( http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html ) en el constructor puedes expresaar de forma fácil diferentes formatos de fecha/hora y los metodos format y parse te ayudan a pasar de texto a Date de forma sencilla.
Dale un vistazo y a ver si consigues solucionar la forma de presentación.

Un saludo !

Hola Julio,

Pido disculpas por mi tardanza,pero he estado fuera.Queria comentarte que he solucionado lo de las fechas,se ve que no terminaba de funcionarme porque al cambiar el formato hay que cambiarlo en todos los lados sino pues no te funciona.Asi que he ido poniendo System.out para ver donde se atrancaba y como la mayoria de las veces pues era una tontería.Pero tengo dos dudas mas:

1ºA la hora de presentar el grafico y los datos con el Jfreechart,¿hay alguna manera de previsualizar como se va ha quedar todo?

2ºHe visto alfinal que forma parte de un proyecto mayor,yo necesito a partir de una serie temporal que cree realizar una predicción en el futuro,¿se puede implementar algun algortimo de prediccion?si es asi,¿donde puedo encontrar alguna guía?

Gracias y un saludo.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
julio
Administrador
Administrador


Registrado: 01 Ene 1970
Mensajes: 1236
Ubicación: Troy

MensajePublicado: Mar Sep 08, 2009 10:33 am    Título del mensaje: Responder citando

Hola yonosoyelmejor !

En primer lugar, no he entendido tu primera duda. No se a que te refieres con previsualizar todo. No obstante imagino que a la hora de poder previsualizar cualquier situación integrada en tu programa, necesitaras currartelo tu mismo mediante las clases adecuadas.

En segundo lugar, efectivamente este sencillo tutorial está extraido de un proyecto de mayor envergadura, basado en series temporales, precisamente para conseguir el mismo objetivo que tu persigues, el poder pronosticar periodos futuros en base a historicos estudiados. Lamentablemente no es nada fácil abordar esa cuestión, y no existe una guia mágica que nos explique algoritmos de pronostico. Si que existen algunos libros con los algoritmos estadísticos mas utilizados para el pronostico mediante el uso de series temporales, pero adaptarlos a un determinado modelo es una cuestión muy particular. Se de lo que hablo porque un dia yo mismo me vi en la misma situación de busqueda que tu.

Realmente existe mucha documentación diseminada por internet, y multitud de libros orientados a pronosticos, pronosticos para negocios, etc.... Yo compré varios de ellos, aunque la mayoría requieren un profundo conocimiento de la estadística.

En mi caso concreto, los métodos de pronosticos están basados en un porcentaje muy elevado en métodos cualitativos, conocimiento de la clientela, conocimiento de la historia y ciclos de vida de los productos y fuertes analisis de mercado, etc... es por ello que la utilización de gráficas es muy importante para ese desarrollo, así como un acceso muy rápido a la información pertinente.....comparativas con otras series temporales, agrupación de series por familias de producto, por caracteristicas similares, etc....., todo ello para orientarlo a un entorno de fabricación de productos terminados.

En mi caso el uso de métodos cuantitativos, no es tan importante, ni necesario, pues el coste de "hilar fino" con estos métodos no compensa los resultados obtenidos, en el entorno en que se desenvuelve el escenario para el que aplicamos nuestro software.
Nosotros utilizamos métodos cuantitativos muy sencillos, "Promedio móvil simple" y "Suavizado exponencial", cuyos algoritmos son muy sencillos.
La estacionalidad se aborda de una forma cualitativa, sin extraerla de las series temporales, como tendriamos con métodos mas complejos.

Sin embargo en función de lo que necesites te puedes plantear el uso de modelos mas complejos utilizando "Analisis de Regresión".
En particular, y aunque yo no lo he llegado a implementar, los modelos ARIMA son una de las opciones que mejor funcionan. Bien utilizados pueden dar lugar a una precisión espectacular en los entornos utilizados. Puedes utilizar estos modelos sin demasiada dificultad utilizando el paquete de software STATGRAPHICS, aunque, STATGRAPHICS no es muy viable que digamos cuando los datos que disponemos son abundantes y muy cambiantes, como imagino será tu caso. Para cualquier modelo o técnica de pronóstico, encontrarás multitud de libros y documentación.

Como último apunte, y valga mi experiencia como muestra, te aconsejo que no comiences a programar nada, hasta que dispongas de un profundo analisis de cual o cuales métodos son los mas convenientes en el entorno en el que se va a aplicar tu software.
Cuando todo ello lo tengas claro, implementar un modelo (incluso recursivos como ARIMA), te será mas sencillo.

Te deseo suerte en la busqueda. No puedo decirte mas.

Un saludo !


Ultima edición por julio el Mar Sep 08, 2009 10:44 am; editado 1 vez
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
yonosoyelmejor
Novato Total
Novato Total


Registrado: 18 Ago 2009
Mensajes: 6

MensajePublicado: Mar Sep 08, 2009 10:43 am    Título del mensaje: Responder citando

Hola Julio,

Muchas gracias por tu rápida contestación.Con respecto a la primera duda me refería que como puedo yo ver a la hora de diseñar el modo visual,es decir la clase TimeSerieResumen es donde se van introduciendo los elementos visuales,¿hay alguna opción que antes de compilarlo pueda ir viendo como se va quedando?es por si quiero cambiar algo el aspecto.

Y respecto a la segundo duda,si he visto que con el método medias móviles es un algirtmo de prección y luego otros mas complemos como el ARIMA.Mis datos vienen de unos sensores tomados durante 3 o 4 años.De todos modos seguiré mirando y cuando consiga implementarlo te lo mandaré por si quieres verlo.Además que implementaré una clase para que coja los datos directamente de un archivo Access que espero que pueda hacerse!xD

Un saludo.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
julio
Administrador
Administrador


Registrado: 01 Ene 1970
Mensajes: 1236
Ubicación: Troy

MensajePublicado: Mar Sep 08, 2009 11:24 am    Título del mensaje: Responder citando

Hola de nuevo !

De nuevo no se si te he entendido, si a lo que te refieres es a la hora de desarrollar el formulario (la clase TimeSerieResumen) en modo visual, antes de la compilación........

Yo utilizo como IDE de desarrollo en Java Eclipse, en esta URL está toda la información http://www.eclipse.org/ ( no se si ya lo conoces ).
Para eclipse, existe un plug-in llamado Visual Editor VE, http://www.eclipse.org/vep/ que permite desarrollar formularios de forma visual.

Así por ejemplo la clase TimeSerieResumen, que podría tener este aspecto:







mediante visual editor, trabajando desde Eclipse, me permite introducir controles de tipo Tabbed Panels, combos, Listas, etiquetas, inputs, etc....
Sin embargo esto sirve para los controles estandard de AWT y SWING, no así con el control de JFreeChart que deberás introducir a pelo, así como las propiedades y el código necesario para utilizar un tipo de gráfica u otra. Al menos desconozco si existe algo que me permita manipular este control igual que haría con un control ActiveX en Visual Basic o Access. De todos modos Visual Editor ayuda muchiiisimo en la confección de formularios.


Espero que te refirieras a eso !!!!

Un saludo !
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
yonosoyelmejor
Novato Total
Novato Total


Registrado: 18 Ago 2009
Mensajes: 6

MensajePublicado: Mar Sep 08, 2009 12:05 pm    Título del mensaje: Responder citando

Claro,me refería a eso.Yo tambien utilizo eclipse porque la verdad me parece muy intuitivo y muy fácil de utilizar para los programadores.Entonces lo que haré será poner el plugin.Yo para confeccionar las ventanas gráficas utilizaba Netbeans,pero claro yo lo que quiero es en tiempo real ver como se está quedando la ventana gráfica así que pondré el plugin este.


Un saludo y Gracias.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
julio
Administrador
Administrador


Registrado: 01 Ene 1970
Mensajes: 1236
Ubicación: Troy

MensajePublicado: Mar Sep 08, 2009 12:14 pm    Título del mensaje: Responder citando

Ok. Suerte con todo !

Ya contarás como evoluciona tu proyecto !

Un saludo.
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Diego
Invitado





MensajePublicado: Mar Oct 13, 2009 5:37 pm    Título del mensaje: migrado Responder citando

Como lograr tomar datos de un jtextfield y generar asi la serie
Volver arriba
Londoño
Invitado





MensajePublicado: Mie Oct 21, 2009 2:48 pm    Título del mensaje: migrado Responder citando

alguien me puede ayudar con un problema. Deseo crear un vector de datos, pero recibir esos datos de un circuito a traves de un textfield, como puedo hacerlo. Muchas gracias a quin pueda ayudarme

Volver arriba
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foro de la Ribera -> Tutoriales Redribera Todas las horas están en GMT
Ir a página Anterior  1, 2
Página 2 de 2

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas


Powered by phpBB © 2001, 2005 phpBB Group
Contactar -  Condiciones legales y política de privacidad -  Acerca de redribera   © 2007-2012 www.redribera.es. Todos los derechos reservados.