martes, 9 de marzo de 2010

Distribuciones de Probabilidad relacionadas

Me gustaria hacer un inciso a lo dificil que resulta para ciertos alumnos (de segundo de Bachiller o de primero de carrera) entender conceptos y resultados de la estadística matemática que llevan propuestos más de dos siglos. A veces no es fácil entenderlos pq no se ha dedicado el tiempo o interés suficiente y me parece una de las ramas de las matemáticas más interesantes.

Primer resultado: Tres distribuciones.
Un primer resultado estaría en demostrar lo estrechamente ligadas que están las distribuciones más conocidas:
Binomial, la de Poisson, la normal , Student y Chi-Cuadrado.
En contra de lo que podamos pensar o nuestra primera impresión sugiera, estas distribuciones aparecen en nuestras vidas desde que nos levantamos y estamos rodeados de experimentos o variables aleatorias que tienen por distribucion alguna de estas distribuciones.
El hecho de que esten más o menos ligadas y se puedan aproximar vá en función de los parámetros utilizados.
.

Ejemplo 1:
Se dice que la Peste en europa en los siglos XIV y XV tenía un índice de mortandad de 25 por cada 100 habitantes.
Se podía decir (por desgracia) que el suceso de 'tener peste' era equiprobable cada año de esos dos siglos (se repetía el mismo índice) y además se ajustaba perfectamente a una distribución binomial de p = 25/100= 0,25.

Supongamos que pudieramos tomar un muestra de n=10 individuos de esa epoca y pintemos la curva de distribución asociada al hecho de contraer o no peste..


Grafica 1

A continuación, y siguiendo la teoría que las relaciona, pintemos la distribucion de Poisson P(k) y la Normal asociada N(u,s).
La Poisson tendrá como parámetro su media que será n*p = 2,5 y la normal tendrá por parámetros su media y varianza u = 2,5 y s = n*p*q en el resultado
que se conoce como el Teorema de Moivre.


Grafica 2
Dos siglos después la peste comenzó a erradicarse y se hablaba de un p = 0,02. Véase en el dibujo que las tres distriuciones ya se confunden..

Grafica 3


Hoy en día esta complentamete erradicada y hablamos entonces de 1 cada 10000 habitantes p = 0,0001. Se dice entonces que el suceso de 'tener peste' es 'raro' entre una población y es por ello que el buscar una distribución inicial que ajuste a este modelo es buscar una Poisson de parámetro n*p siendo n el tamaño
de la muestra escogida.

Si ahora volvemos al siglo XV y aumentamos la muestra n=35 (para que me quepa en el hoja excel) vemos que la aproximación es 'grande'.
En resumen, existe una relacion estrecha entre estas distribuciones cuando n tiende a infinito y bajo una varianza finita.
Eso es todo.
Puedes bajarte el archivo excel aqui..



martes, 17 de noviembre de 2009

Sobre los valores morales

El otro día iba montado en el Cercanias y cuando llegue a la parada de Getafe Central vi que querían subirse una madre con su niño pequeño (de unos 2 años)
que iba montado en el cochecito.
Dado que había más personas para subirse y que estaban delante, una vez abiertas las puertas no dudaron en subir y dejar a la madre para el final.
La madre cogió el cochecito en brazos y cuando se dispuso a subir, las puertas se cerraron subitamente y cogieron a los brazos de la madre que grito dolorida
aunque no pasó nada mas (gracias que el niño no tenía las manos fuera que sino ..).
Esta situación es cada vez más habitual, y no, no me quejo de los conductores de los trenes de cercanías de que cierren antes de tiempo,
o de lo mal adaptados que están la mayoría de los trenes, sino de la falta de educación y valores que cada vez con más frecuencia vengo observando.
Que hay del dicho 'Las mujeres y los niños primero', ¿hace falta que nos peguen carteles informativos para recordarlo?

En general, hay una falta de valores considerable. ¿Que hay del 'buenos días' (o 'buenas tardes' o simplemente 'buenas') cuando se llega a un sitio? y al revés,
¡llegar a un sitio, decir buenos días y que nadie te conteste!.
Solemos pensar en nosotros mismos, lo 'bueno' es lo que es bueno para nosotros, sin pensar en que puede ser malo para los demás.

Si vemos un pastel delante, lo cogemos sin dudar, no reflexionamos en las consecuencias que tiene coger ese pastel o en el daño que esa acción pueda causar a los demás.
Por ejemplo, ¿cuantos de nosotros defrauda a su empresa en las notas de gastos metiendo X kms en vez de los Y kms que realmente hay? y al revés,
¿que empresario o jefe no intenta apañarselas con el papeleo para evitar tener que pagar de más a sus empleados?
..Y cuando vamos conduciendo ya no quiero ni contar!!
En definitiva, nos faltan esos valores y esa conciencia moral que se nos viene transmitiendo desde antaño.
En fin y ya acabo, que este mensaje haga reflexionar alguna conciencia al menos y que por lo menos mañana, nos levantemos siendo más corteses,
más educados y con más juicio moral.

viernes, 12 de junio de 2009

The East countries in their irruption in Eurovision!!

In many cases,during the Eurovision celebration, people and mainly the Festival organization is worried about the closed relations between the participants countries in their votations. "All East countries vote among them!!", use to say.
Well, this natural perception is the subject of my purpose. I'll try to demonstrate (statistically of course) the difference between the forecast trend line and the real line for each country in the last 5 editions in the votations to the other countries.

First of all, data has been extracted from the eurovision web page and any failure in the votations will be attributed to the web page creators because of the copy/paste from the same page to the spreadsheet.

Let's start!

The question in the study case is: Based in the last 3 historic years(2005-2007) , what could be the trend for the 2008 year?

We'll analyze first the trend lines for a country in the center of East-Europe like 'Latvia'.
The example is shown in the graphic.

In the graphic are relevant these two lines:
The black line is the cubic average real line for the votations from the 2005 year.
The green line is based in the 2005-2007 range years and try to make a forecast for the 2008 years.

As you can see, the solution show a difference very small between the two lines in 2008, but this, in this way, not say nothing if we don't compare with the difference in other countries.




Choose now the example of Spain, in the sud-west of the europe and only surrounded by three countries: Portugal, France and Andorra.



The objective is the same:
The black line is the cubic average real line for the votations from the 2005 year.
The green line is based in the 2005-2007 range years and try to make a forecast for the 2008 years.
As you can see,the difference here is relevant, in other words, in most difficult to forecast the 2008 year for Spain than for Latvia (even for next years).





In fact, this is due to the votations system used. From 2005 to 2008 the votations were 100% choose by the people in each country. There are several factors which contribute to these votations but is not the purpose of this document.

viernes, 22 de mayo de 2009

Despacio, quiero ir por el arcen

Anuncio publicado en la direccion: http://www.20minutos.es/carta/473098/0/#comentarios

El otro día me multaron cuando iba con mi scooter de 125 por el arcén en la M-40, en Madrid. Como todos los días por la mañana la M-40 está igual de atascada que siempre y hace unos años decidí comprarme la scooter para evitar atascos. El caso es que suelo ir (cuando está atascada) por el arcén y a una velocidad que no supera los 40 km/h y con prudencia, pero para el código de circulación y la DGT eso no vale. 'Las motos no pueden ir en autovía por arcén", me dijo el guardia, 'solamente en casos excepcionales'. El dinero de la multa (60 euros) es lo de menos, lo que de verdad es frustrante es el hecho de tener que ir detrás de los coches, parado, a una velocidad anormalmente reducida sabiendo que tú puedes ir por el arcén (un arcén amplio según mi opinión) respetando unas medidas de precaución básicas.

Si no me dejan circular libremente con mi moto pues cojo el coche y ya está.

Todos conocemos las ventajas de ir en moto, no solo mejorar el atasco de la vías de circunvalación, sino también mejorar el estado del parking en Madrid por no decir ya del papel que juegas en el medio ambiente al emitir menos polución, tiempo que te ahorras en trayectos... Por eso, le pediría a la DGT que estudiara el tema de permitir la circulación de las motos por el arcén por autovías siempre y cuando la velocidad a la que se circula por ella sea anormalmente reducida.

Creo que de esta forma solventaría el dilema que representa un desarrollo sostenible con las aglomeraciones que cada vez con más frecuencia se dan en las ciudades. Si no me dejan circular libremente con mi moto pues cojo el coche y ya está. O acaso creen que me gusta mojarme, pasar calor, temperaturas bajo cero. Por más autovías que se construyan al final siempre se atascan y la utilización de la moto es una solución simple que es efectiva siempre y cuando se nos trate como una excepción a las normas de los turismos en este sentido. Es para tomar decisiones ya, y no dejarlas para el futuro.

domingo, 22 de febrero de 2009

JSP bajo Hibernate 3.0 y DB2

Este articulo expone un ejemplo de configuración de hibernate con DB2 usando una página JSP de visualización.

Requisitos:
- DB2 Express instalado.
- Hibernate 3.0 instalado (los jars necesarios los tienes abajo en el .zip)
- MyEclipse 6.6 con servidor tomcat incluido.
- Tener ligeros conocimientos de las herramientas antes descritas.

Primer Paso. Creacion de la tabla productos utilizando el Centro de Control del DB2.

Me he creado una nueva BBDD llamada 'SAMPLE' utilizando el centro de control y accediendo con mi usuario sp27464.
Me he creado previamente un esquema en la BBDD llamado 'jsp'...

CONNECT TO SAMPLE;
CREATE SCHEMA JSP AUTHORIZATION c;
CONNECT RESET;

El esquema de creacion de la tabla sería..

CONNECT TO SAMPLE USER sp27464;
CREATE TABLE JSP.PRODUCTOS ( PRODUCTOID VARCHAR (20) NOT NULL ,
NOMBREPRODUCTO VARCHAR (20) NOT NULL ,
FECHACADUCIDAD DATE ,
PROCEDENCIA VARCHAR (20) , CONSTRAINT CC1266859292875 PRIMARY KEY ( PRODUCTOID) ) ;
CONNECT RESET;

Con esto y los siguientes datos a introducir tenemos la persistencia creada.
"001","Platano_Canarias_V1",,"Espana"
"002","Platano_Canarias_V2",,"Espana"
"0003","platano_machote",20100223,"Puerto Domingo"
"0003B","platano_machote_CLB",,"Puerto Domingo"



Segundo Paso. Creación del bean que se recoge en la clase Producto.

package es;
public class Producto {
.... }

Me he creado un metodo main(..) para poder probar de una manera más ágil la comunicación entre este bean y el Hibernate.


Es importante cargar en el classpath las librerias o .jars apropiados al driver de DB2 y que son:
db2jcc_javax.jar, db2jcc_license_cu.jar y db2jcc.jar.

Tercer Paso. Creamos el archivo de conexión de Hibernate y configuramos los archivos de mapeo de hibernate con la BBDD y el Bean.

- hibernate.properties.

hibernate.connection.driver_class=org.hibernate.dialect.DB2Dialect hibernate.connection.url=jdbc:db2://localhost:50000/sample
hibernate.default_schema=jsp

hibernate.connection.username=sp27464

hibernate.connection.password=XXXXXXX


..donde XXXXXXX es la password suministrada.

- hibernate.cfg.xml.

Con las propiedades apropiadas..
property name="hibernate.dialect" = org.hibernate.dialect.DB2Dialect
property name="hibernate.bytecode.use_reflection_optimizer">true
property name="cache.provider_class">org.hibernate.cache.NoCacheProvider
property name="show_sql">true mapping resource="productos.hbm.xml" />

.. y donde se especifica la clase Java de dialecto (DB2Dialect) y mostramos las queries utilizadas.


- productos.hbm.xml.



Cuarto Paso. Creación del proyecto web con MyEclipse 6.6, que lleva un servidor Tomcat ya incorporado. Se trata de visualizar los productos originarios de Canarias, utilizando el campo de NombreProducto de la tabla 'Productos' donde viene la descripcion del producto.

a) Nos creamos un proyecto web (yo lo he llamado JSP_hibernate_1) y editamos el index.jsp..

I) Le decimos que use JSP's.
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

II)Le implementamos la directiva de inicio de hibernate sin olvidarnos de cargar el driver..
Class.forName("com.ibm.db2.jcc.DB2Driver");

III)Cargamos en memoria la lista de productos de acuerdo al filtro pedido.
values = sessionAct.createCriteria(Producto.class).add( Restrictions.like("nombreProducto", "%Canarias%") ).list();

b) Metemos las librerias necesarias..
..estas son las que se adjuntan en el .zip

Ya solo queda ejecutarlo y ver el resultado.
La visualización del resultado en un navegador web:
http://localhost:8080/JSP_hibernate_1/


Eso es todo.
Pincha aqui para bajarte el código