17 de diciembre de 2010

Proyecto Final - Análisis de Datos del OPAC de CÓDICE (UANL)

En este video se muestra un análisis de datos realizado sobre la información de las cantidades de consultas realizadas en el Catalogo Electrónico de la Universidad Autónoma de Nuevo León (www.codice.uanl.mx).

La información utilizada es la obtenida desde abril de 2008 hasta diciembre de 2010, a la cual se le aplican los métodos vistos en la Análisis de datos para la toma de decisiones, como lo son: Outliers, Series de tiempos y Visualización de Datos.

15 de diciembre de 2010

Series de tiempo y Pronósticos

En estadística, una serie de tiempo es una secuencia de puntos de datos, los cuales son tomados en frecuencias similares y uniformes de tiempo.


El análisis de estas series de tiempo nos puede ayudar a identificar tendencias y determinar pronósticos de comportamientos futuros.


En esta entrada analizaremos los datos de las búsquedas realizadas en el Catalogo Electrónico de la Universidad Autónoma de Nuevo León (www.codice.uanl.mx) por medio del método de las medias móviles.


El método de las medias móviles en estadística es un método utilizado para analizar un conjunto de datos en modo de puntos para crear series de promedios. Así las medias móviles son una lista de números en la cual cada uno es el promedio de un subconjunto de los datos originales.


Una serie de medias móviles puede ser calculada para cualquier serie temporal. Se usa para demanda estable, sin tendencia ni estacionalidad; suaviza las fluctuaciones de plazos cortos, resaltando así las tendencias o ciclos de plazos largos.


Para iniciar el análisis se extrajeron los datos desde abril de 2008 hasta diciembre de 2010, por semana la cantidad de búsquedas realizadas en el Catalogo Electrónico.

Generándose lo siguiente (ejemplo de los primeros datos):


Lo siguiente en realizar es calcular la primera media (pM) y la media doble (Md), donde se toman una cantidad de datos previos al valor que se desea calcular (k), para esto se realizaron 4 pruebas, tomando un k = 10, 5, 3 y 2, para posteriormente decidir con cuál de estos nos quedaremos, el cual sea el que tenga menor error.


Las fórmulas para calcular las medias son:

pMt = (yt-1 + yt - 2 + yt – k) / k
Mdt = (pMt-1 + pMt - 2 + pMt – k) / k

donde,

"y" es el valor de la cantidad de búsquedas de la semana t


 

Posteriormente calculamos la predicción con la siguiente formula:

^yt = (2pMt - Mdt) + ((2/k-1) (pMt - Mdt))


 

Una vez teniendo la predicción, se obtiene el error cuadrático de la media (ECM) y la raíz cuadrada de este error (RcECM), para identificar cual "k", se utilizará. Las fórmulas a utilizar para encontrar el error serán:



  

RESULTADOS:


 

Para k = 10



 
ECM = 170694440.26

RcECM = 13065.01


 

Para k = 5



 
ECM = 168058010.15

RcECM = 12963.72


 

Para k = 3



 
ECM = 132048707.92

RcECM = 11491.24


 

Para k = 2





 
ECM = 155248689.84

RcECM = 12459.88




 

CONCLUSIONES


Según los errores y las gráficas de predicción, el que más se ajusta es el k = 3, con el cual se predice para la semana 50 de este año una cantidad de búsquedas de 10,136.17

11 de diciembre de 2010

Visualización de Datos

La visualización de datos es la transformación de datos abstractos en imágenes. Es una forma especial de la visualización.

Las técnicas de visualización van desde un simple diagrama hasta imágenes tridimensionales y con movimiento para visualizar resúmenes de datos que le den a alguien la información necesaria para la toma de decisión.

En esta entrada se realiza un ejercicio de visualización de datos utilizando la herramienta Tableau Desktop Pro.

Al instalar el trial de la herramienta, esta viene con 2 bases de datos, una de Access en la que se cuentan con datos de una cadena de cafeterías de Estados Unidos; y otra base de datos en Excel de las ventas de un SuperStore.

Para este ejercicio utilizamos la base de datos de Access de la cafetería y trataremos de ver una línea del tiempo (Año-Mes) de las ventas por Estado (USA).

Al seleccionar la base de datos se abre la siguiente vista:


Donde de lado izquierdo aparecen los campos que podemos utilizar para analizar la información y en la zona derecha se pueden arrastrar los campos para generar la visualización.

En este caso arrastramos el campo de State (Estado) y el sistema interpreta que es una ubicación geográfica y genera la visualización de la localidad a la que pertenece (mapa), como se ve a continuación:
Posteriormente arrastramos el campo de Sales de los campos Measures de la izquierda, haciendo esto tendremos la siguiente visualización:
En donde entre más grande sean los círculos significa que tiene más ventas, como lo indica el grupo SUM(Sales).

Posteriormente arrastraremos el campo de fecha a la sección de Rows y le daremos clic en el "+" del campo agregado hasta tener los campos Year, Quarter y Month, y finalmente eliminamos el campo Quarter arrastrándolo hasta que se visualice una X. Al hacer esto tendremos la siguiente visualización:
En esta visualización tendremos una gráfica del año y mes, y una copia del gráfico del mapa, pero no es esto lo que queremos sino una línea del tiempo, para esto arrastraremos los campos year y month de Rows a Pages y al hacer esto se genera esta visualización:
Donde al dar clic en el botón play del grupo "YEAR(Date), Month(Date)", nos mostrará como variaron las ventas por mes desde el año 2009 al 2010, a continuación se muestra un video del cómo quedó la reproducción:

9 de diciembre de 2010

Procesamiento en línea (on-line algorithm)

Se dice que un algoritmo es en línea cuando es capaz de ponerse a trabajar en el problema para el que fue diseñado sin necesidad de disponer de todos los datos de entrada antes de empezar, es decir, que puede trabajar a medida que va recibiendo los datos de entrada.

Por ejemplo, el algoritmo de ordenación BubbleSort no es un algoritmo en línea (podría decirse que es fuera de línea u offline), porque si tiene que trabajar sobre 10 valores, necesita que los diez valores estén disponibles al comienzo del algoritmo. Sin embargo, el algoritmo de ordenación InsertionSort sí es un algoritmo en línea, porque si tiene que trabajar sobre 10 valores, puede leer el primero y procesarlo, y luego el segundo y procesarlo, y luego el tercero y procesarlo... y así hasta el último. Puede realizar parte de su trabajo con una entrada parcial de los datos, ya que el procesamiento de los datos sólo depende de los datos de entrada leídos hasta el momento, y no de la totalidad.

Vamos a intentar ver el funcionamiento del algoritmo. Supondremos que el arreglo tiene n elementos.

Realizaremos n-1 pasadas. En cada una de ellas analizaremos un elemento, colocándolo en orden relativo con respecto a los analizados en pasadas anteriores. El motivo de realizar n-1 pasadas y no n es que empezamos por el segundo elemento. Si analizáramos el primer elemento deberíamos colocarlo en orden con respecto a los anteriores, pero al no haber realizado pasadas anteriores, el primer elemento forma él solito una lista ordenada. Así pues, empezamos con el segundo directamente.

En cada pasada escogemos un elemento sucesivamente (en la primera pasada el segundo elemento, en la segunda el tercero.... en la n-1 el n) y recorreremos el arreglo hacia atrás (hacia la izquierda, si quieres) buscando el orden relativo del elemento en cuestión entre los anteriores (los de su izquierda). Cada vez que encontremos un elemento que sea mayor que él realizaremos un intercambio.

A continuación veremos el código ejemplo de este algoritmo:


8 de diciembre de 2010

Optimización de Enjambres de Partículas (PSO) – Método Heurístico

El método de optimización de enjambres de partículas (PSO por sus siglas en inglés Particle Swarm Optimization) es un método de optimización heurístico que fue descrito cerca de 1995 por James Kennedy y Russell C. Eberhart, y este método evoca del comportamiento de los enjambres de insectos en la naturaleza.
En concreto, el enjambre que se pone de ejemplo para explicar este método es uno de abejas, ya que las abejas a la hora de buscar polen buscan la región del espacio en la que existe más densidad de flores, ya que es ahí donde existe más polen. Este método ha sido portado al campo de la computación en forma de algoritmo y se emplea en la actualidad en la optimización de distintos tipos de sistemas.



EL MÉTODO
El espacio de soluciones está formulado como un espacio de dimensión dimension_espacio. En él una población (enjambre) de partículas (insectos) de tamaño n, que actúan de agentes de búsqueda, se mueve en el espacio de soluciones guiadas por los miembros del enjambre que han obtenido las mejores posiciones – mejores valores de la función objetivo f -. El tamaño del enjambre suele oscilar entre 20 y 40 partículas.
Para problemas muy difíciles se eleva a un rango de 100-200.


Cada partícula i se comunica con un entorno o grupo social N(i), Este entorno puede ser parte o todo el enjambre, y puede variar dinámicamente. La estructura de los entornos puede tener una topología anular en la que cada partícula se relaciona con dos, una topología en forma de estrella en la que cada partícula se relaciona con todas. Otra alternativa, Kennedy y Clerc 2006, es fijar el número de partículas k que informan a otras que son elegidas al azar. Estas partículas se renuevan cada vez que mejora la posición grupal.


Cada partícula i guarda información de la mejor posición obtenida Pbest y del mejor valor obtenido por cualquier partícula del entorno Gbest. La información de estas mejores posiciones influye en el comportamiento de la partícula.


Así pues, cada partícula i del enjambre lleva asociados los siguientes vectores:
P[i] posición actual,
V[i] velocidad actual,
Pbest[i] posición de la mejor solución encontrada,
Gbest[i] mejor posición obtenida por cualquier partícula del entorno.

En el gráfico podemos ver un enjambre dentro del cual hay tres grupos o entornos sociales de partículas. Cada grupo tiene su "leader", . El óptimo se encuentra en J.

  
 
Veamos los diferentes pasos de la versión estándar de este algoritmo.


Paso I: Inmersión aleatoria de los insectos en el espacio de búsqueda:
A las partículas inicialmente se les asigna una posición aleatoria, P0[i] ( si el número de variables de la función es dimension_espacio, cada componente será denotada por P0[i][k], k = 1..dimension_espacio2), dentro de su región factible, y así mismo se les asigna una velocidad aleatoria, V0[i], con valores en la región factible, para evitar, en lo posible, que la partícula se "escape" a posiciones no factibles.


Se va a almacenar la mejor solución por la que pasa cada partícula i, que inicialmente se supone f_best[i] = +∞. Análogamente se hace lo mismo con la mejor solución del grupo social al que pertenece i, f_best_grupo[i].


Paso II: Actualizando la velocidad y posición de las partículas:
Tras cada iteración hay que recalcular la velocidad, y actualizar la posición de los insectos a partir de las nuevas velocidades. Así para la partícula i su velocidad es:


V[i]= c_inercia.V[i] + c_confianza1 .rnd1.(Pbest[i]- P[i])+ c_confianza2 .rnd2. (Gbest[i]- P[i]) (*)


Dónde:
c_inercia es un parámetro que representa el efecto de la inercia, controlando el efecto de la velocidad y evitando que crezca indefinidamente;
c_confianza1 y c_confianza2 son parámetros que marcan la confianza de la partícula en sí misma y en su grupo.
Los valores rnd1 y rnd2 son números aleatorios entre 0 y 1.


Es habitual tomar c_inercia=1 y c_confianza1 = c_confianza2 en el rango [0,4]. También lo es tomar estos tres parámetros de forma que su suma sea 1. En la versión estándar de Kennedy y Clerc los valores son: c_inercia = 1/(2+ln2) y c_confianza1 = c_confianza2 = 0.5 + ln2;


La posición de la partícula será: P[i]=P[i]+V[i] (**)


Se han ido contando las infactibilidades, cuyo cómputo se ha tenido en cuenta a la hora de dar valores a los parámetros, procurando que el número de infactibilidades no sea muy elevado.


Paso III: Actualización de las mejores soluciones de cada partícula:
En una matriz Pbest[i] vamos almacenando la mejor posición de cada insecto y en otra matriz, f_best[i], el mejor valor de la función objetivo. Tras cada iteración si la solución obtenida por la partícula i es mejor que la mejor conocida hasta ese momento son actualizadas Pbest[i] y f_best[i]. Así mismo en la matriz Gbest[i] se va almacenando la mejor posición del grupo social o entorno de la partícula i. Tras cada iteración si la solución obtenida por alguna de las partículas de N(i ) es mejor que la mejor conocida hasta ese momento es actualizada Gbest[j],A j E N(i ).

 
De tal manera, el pseudocódigo del algoritmo sería el siguiente:

Inicializar aleatoriamente todos los insectos
Mientras t < max_iter hacer
Para cada insecto i hacer
Calcular velocidad teniendo en cuenta la inercia, su mejor posición y la mejor posición de su entorno social (*)(**);
Calcular posición tras variación velocidad;
Si no factible i HacerFactible;
Obtener funcion_objetivo;
    Si Valor_funcion < f_best[i] entonces actualizar
P_best[i] y f_best[i]
Si Valor_funcion < f_best_grupo[i] entonces actualizar
G_best[j] y f_best_grupo[j] A J E N(i)
t:= t+1

Sistemas Basados en Reglas (rule-based systems)


Los sistemas basados en reglas trabajan mediante la aplicación de reglas, comparación de resultados y aplicación de las nuevas reglas basadas en situación modificada. También pueden trabajar por inferencia lógica dirigida, empezando con una evidencia inicial en una determinada situación y dirigiéndose hacia la obtención de una solución, o bien con hipótesis sobre las posibles soluciones y volviendo hacia atrás para encontrar una evidencia existente (o una deducción de una evidencia existente) que apoye una hipótesis en particular.


Un ejemplo clásico de un sistema basado en reglas es el dominio específico de sistema experto que utiliza reglas de deducción o elecciones.



Algunos ejemplos de sistemas basados en reglas son:

  • Sistema que ayuda a un médico a elegir el correcto diagnóstico basado en un conjunto de síntomas
  • Sistema que selecciona los movimientos tácticos para jugar un juego
  • Sistema para realizar análisis léxico para recopilar e interpretar los programas de ordenador, o en el procesamiento del lenguaje natural
Un sistema basado en reglas típico cuenta con cuatro componentes básicos:

  1. Una lista de reglas o base de reglas, que es un tipo específico de base de conocimientos
  2. Un motor de inferencia o razonador semántico , lo que infiere información o toma de acción basado en la interacción de la entrada y la base de reglas
  3. Memoria de trabajo temporal
  4. Una interfaz de usuario u otra conexión con el mundo exterior a través del cual las señales de entrada y salida son recibidas y enviadas

 

EJERCICIO

Se realiza este ejercicio como práctica de estas reglas utilizando un archivo .csv con el precio histórico de la gasolina desde 1991 hasta octubre de 2010.


El archivo .csv fue cargado a R y se obtuvo la media y los outlier (superior e inferior), donde:
    > mean(gasolina)

          PrecioDlls

       1.671285


    > outlier(gasolina)

          PrecioDlls

       4.114


    >
 outlier(gasolina, TRUE)
PrecioDlls
0.907

  
A partir de esta información generaremos 4 clases, donde:
  1. Si el precio está entre 0.907 (menor) y 1.2891425 (la mitad de la diferencia entre la media y el valor menor) será considerado "Muy Barato".
  2. Si el precio está entre 1.2891425 y 1.671285 (media), será considerado como "Barato"
  3. Si el precio está entre 1.671285 (media) y 2.8926425 (la mitad de la diferencia entre la media y el valor mayor), será considerado como "Caro"
  4. Si el precio está entre 2.8926425 - 4.114 (mayor), será considerado como "Muy Caro".

Estas condiciones son programadas en ifs anidados en un documento de Excel con la siguiente formula, pensando que el precio está en la columna A:


=SI(A2 = 2.8926425,"Muy Caro",SI(A2=1.671285,"Caro",SI(A2=1.2891425,"Barato","Muy Barato")))


Con esta fórmula se obtienen los siguientes resultados:

1.266Muy Barato
1.272Muy Barato
1.321Barato
1.619Barato
1.626Barato
1.703Caro
1.713Caro
1.687Caro
1.704Caro
1.679Caro
1.647Barato
1.601Barato
2.858Caro
2.86Caro
2.849Caro
2.898Muy Caro
2.905Muy Caro
2.864Caro
2.786Caro

 


 

Reconocimiento de Patrones – Medición de imágenes

El reconocimiento de patrones es la ciencia que se ocupa de los procesos sobre ingeniería, computación y matemáticas relacionados con objetos físicos o abstractos, con el propósito de extraer información que permita establecer propiedades de entre conjuntos de dichos objetos.

Para poder reconocer los patrones se siguen los siguientes procesos:
  1. Adquisición de datos
  2. Extracción de características
  3. Toma de decisiones

La adquisición de datos comúnmente se realiza a través de un sensor, el cual toma en un momento determinado una imagen y se envía a un dispositivo que analiza sus características, para posteriormente clasificarla.

EJERCICIO

En este ejercicio se utiliza la herramienta Octave con el paquete image instalado (bajo el sistema operativo Linux, Ubuntu).

1. Obtener la siguiente imagen. La imagen se llama mm2.gif y para este ejercicio será guardado en la siguiente ubicación: “/home/mario/Documentos/Elisa/Patrones/”

2. Leer la imagen en la herramienta Octave. Para realizar esta actividad se utiliza la función imread y se guardará en una variable temporal llamada imagen:
     imagen = imread("/home/mario/Documentos/Elisa/Patrones/mm2.gif")

3. De esta imagen, primero que nada se procede a convertirla en blanco y negro. Para realizar esta actividad se utiliza la función im2bw, el valor umbral (que debe estar en el intervalo [0,1]) lo asignaremos en 0.5 y se guardará en una variable temporal llamada imagenbyn:
     imagenbyn = im2bw(imagen, 0.5)

(la imagen de blanco y negro se puede guardar con la siguiente instrucción)
     imwrite(imagenbyn, "/home/mario/Documentos/Elisa/Patrones/mm2-bn.gif")

(la cual se ve así)

3. Posteriormente, de la imagen en blanco y negro, se puede obtener una imagen con el perímetro de esta. Para esto utilizaremos la función bwperim, con el segundo parámetro = 4, el cual indica que hará un perímetro con los vecinos de los cuatro píxeles, también se pudiera poner en 8 para considerar los vecinos de las esquinas.
BW2 = bwperim(imagenbyn, 4)

(si obtenemos esta imagen, se verá así)

4. O también podemos obtener su área utilizando la función bwarea. Esta obtiene el área de los píxeles "encendidos" de una imagen, para esto, tomaremos la imagen que se convirtió en blanco y negro, y se calcularán los píxeles que están en color negro:
     total = bwarea(imagenbyn)

(y como resultado nos dará):
     total = 73683

Outlier Detection (Detección de Datos Anómalos)


Un valor anómalo es una observación que se encuentra a una distancia de otros valores anormales en una muestra aleatoria de una población. En cierto sentido, esta definición deja en manos del analista (o un proceso de consenso) para decidir lo que se considera anormal. Antes de señalar las observaciones anormales, es necesario especificar cuáles son las observaciones normales.

Dos actividades son esenciales para la caracterización de un conjunto de datos:
  1. El examen de la forma global de los datos graficados de características importantes, incluyendo la simetría y las desviaciones de los supuestos.
  2. El examen de los datos de observaciones atípicas que están muy lejos de la mayoría de datos. Estos puntos se refieren a menudo como los valores extremos.
El diagrama de caja es una pantalla gráfica útil para describir el comportamiento de los datos en el medio, así como en los extremos de las distribuciones. El diagrama de caja se utiliza la mediana y el cuartil inferior y superior (definido como el 25 y 75 percentiles). Si el cuartil inferior es Q1 y el cuartil superior es Q2, entonces la diferencia (Q2 - Q1) se llama el rango intercuartil o CI.

Un diagrama de caja se construye dibujando un cuadro entre los cuartiles inferior y superior con una línea continua trazada a través de la caja para localizar la mediana. Las siguientes cantidades (llamadas vallas) son necesarias para la identificación de valores extremos en las colas de la distribución:
  1. Valla interna inferior: Q1 - 1,5 * CI
  2. Valla interna superior: Q2 + 1.5 * CI
  3. Valla exterior inferior: Q1 - 3 * CI
  4. Valla exterior superior: Q2 + 3 * CI
Un punto más allá de la valla interior a ambos lados se considera un valor atípico leve. Un punto más allá de la valla exterior se considera un valor atípico extremo.

 
Ejemplo utilizando el lenguaje y software R

En lenguaje R tenemos algunas funciones que nos permiten representar a la perfección este tema de anomalías.

Antes que nada generaremos un arreglo de 200 valores aleatorios y los visualizamos utilizando las siguientes instrucciones:
> y=rnorm(200)
> y

Al hacer esto, obtenemos el listado de valores, en este caso:
[1] -1.165853888 -0.955031545 -0.400880160 -0.236351755 0.027450224 0.264035645 1.164070642 -1.009940666 -0.215460271 2.535920209 -0.175013095
[12] 0.912400191 -0.127012647 0.980683431 -0.690220551 1.810227257 -0.083157212 -0.386534007 -0.371779463 1.938586420 -0.488154266 -1.019324308
[23] 2.629907093 -0.394080257 1.100920589 -0.914918369 1.453785890 0.225141840 -0.941417392 -1.996026513 -1.388112092 -0.276942237 -0.856065661
[34] -0.042576800 -0.469769793 0.896523593 -2.142289587 0.106668092 0.311102646 1.619171129 -1.325171756 -0.122146025 -0.295685593 0.129063802
[45] -0.153838305 1.362181677 0.538499106 1.233888968 -2.130028233 0.139157479 0.596722491 1.079477830 -0.263774619 2.191134043 -0.002627052
[56] -0.413915506 -1.007515083 -0.574816473 -0.482291746 -0.721780844 -1.025907628 -1.089927958 1.173801297 -0.082981608 -1.231377050 -2.712315073
[67] 1.445477900 -0.079720081 -0.449926763 -0.154191149 -0.712822448 -0.569890902 0.009564743 -0.338627746 1.701151651 -1.563883739 -1.672801315
[78] 0.385131736 -1.213862200 1.538937810 -1.054074341 -0.006126526 -2.290854019 1.407962777 0.220766548 0.237166688 0.214319836 0.607137111
[89] -0.432512859 -1.261568786 1.275437551 0.835784114 2.464322128 -0.821995974 0.853527852 0.377911273 0.973842634 0.027204201 2.302954317
[100] -0.901702528 -0.192658880 0.213383555 0.719825832 -0.507056210 0.349633367 0.569031224 -1.644298289 -1.030787221 1.992107112 -1.062339006
[111] 0.853355458 -0.179214011 -1.877108775 0.097302843 0.586843297 0.227901153 -1.337615592 0.297757759 0.955298601 -0.300573060 -0.234448821
[122] -0.624419801 -0.879537349 0.668275658 0.335697526 0.587730056 -1.186918987 0.678356750 1.069862688 -1.616948855 0.007750086 -0.279580543
[133] -0.642341536 -0.820946614 -0.775683799 0.027930232 -0.241186576 -0.797547075 0.631171851 0.038633245 -0.700816972 -0.796872053 1.073859628
[144] -0.340740803 0.757887883 1.321953231 -1.164196340 -0.083359570 -0.377654571 0.086319961 1.378932129 0.399875571 0.866069196 -0.346559686
[155] -0.812785484 -0.632942191 -0.337267626 -0.380453425 -0.691912362 -1.781040611 0.340368061 0.984578321 1.728054826 0.940681904 -0.156874246
[166] 1.255180807 0.720627300 -0.157533577 -0.098809027 -0.038628890 -0.187352360 0.828662725 0.259983177 1.528909142 1.200236996 0.508354296
[177] -1.249758744 0.608455200 -0.514451102 0.366154599 -1.579730166 -1.109476643 0.620700948 0.817736081 0.847031104 -0.180082208 0.213875082
[188] -0.148941407 -0.723089183 -0.083476433 1.280877039 0.066672708 -0.133964593 -0.059672883 0.490301296 -0.321303024 -1.107683228 -0.305780755
[199] -1.722887273 0.181962787

Con estos valores utilizaremos la función outlier, definida como aquella que encuentra el valor con la mayor diferencia entre la media y el mismo valor. El uso de esta función es:

outlier(x, opposite = FALSE, logical = FALSE)

donde,
x: Es el arreglo de datos
opposite: Está por default en TRUE y este define el valor opuesto (si el valor más grande tiene la máxima diferencia de la media, da el más pequeño y viceversa)
logical: Está por default en TRUE, da vector de valores lógicos, y la posición del posible valor atípico lo marca como TRUE.

 
Entonces, utilizamos la función de la siguiente manera:
> outlier(y)
[1] -2.712315

Otra función con la cual se cuenta es la de chisq.out.test, en la cual se realiza una prueba de ji cuadrado para la detección de un valor atípico en un vector.

El uso de la función es el siguiente:

chisq.out.test (x, variance =var(x), opposite = FALSE)

donde,

x: es    un vector de valores de datos numéricos.
variance: conocida como la varianza de la población. Si no se da, se estima de la muestra, pero no hay mucho sentido por lo que en tal prueba (que es similar a la puntuación z)
opposite: es un indicador lógico que indica si no se desea comprobar el valor con mayor diferencia de la media, sino todo lo contrario

 
Entonces, ejecutamos lo siguiente:
> chisq.out.test(y)

 
Y como resultado obtendremos:

chi-squared test for outlier

data: y
X-squared = 7.5101, p-value = 0.006135
alternative hypothesis: lowest value -2.71231507343222 is an outlier

 
Como conclusión, ambas pruebas nos arrojan que el valor anómalo es el -2.712315.

 
Se anexa las imágenes de las ejecuciones:

7 de diciembre de 2010

Análisis de la Herramienta de Minería de Datos: Pentaho

Pentaho es una herramienta open-source de business intelligence. Cuenta con versiones para sistemas operativos Linux y Windows. Entre las versiones que cuenta tiene las siguientes:

  • Pentaho BI Suite 3.7 GA
  • Pentaho Data Integration 4.1 GA
  • Pentaho BI Suite for Hadoop 3.7 GA
  • Pentaho Data Integration for Hadoop 4.1 GA
Para esta evaluación fue seleccionada la herramienta Pentahoo BI Suite 3.7 GA para Windows, para la cual se utilizó una computadora con Windows 7, procesador Inter Core 2 Duo de 2.53 GHz y 4 Gb de memoria RAM.

Las versiones están disponibles para descarga como una versión de evaluación de 30 días y al seleccionar la versión deseada se presenta un formulario para indicar datos personales y el propósito de la descarga.


En el sitio no se visualiza información de precios para la adquisición, para esto es necesario contactar al fabricante. 

El proceso de instalación es un poco largo pero al finalizar se cuenta con estas herramientas y documentación:


Para utilizar la herramienta Aggregation Designer primero fue necesario crear un ODBC, que para este ejemplo se utilizó un ODBC que se conecta a SQL SERVER 2008 que se tenía instalado de forma local:

Una vez seleccionado el ODBC se selecciona el archivo de esquema Mondrian, para la cual se basa en la especificación mencionada en el sitio: http://mondrian.pentaho.com/documentation/schema.php



Report Designer funge como un reporteador similar a un Crystal Reports donde se puede crear un informe desde cero o desde un wizard:


En este caso se generó un reporte desde el wizard siguiendo los pasos:
  1. Seleccionar el templeate:
  2. Seleccionar los datos de origen:
  3. Se configura la información a desplegar en el reporte:
  4. Al finalizar tenemos el previo del reporte


Con estas herramientas ademas de tener acceso a importar información desde muchas fuentes también se tiene la posibildad de tratarla para analizarla y desplegarla de la manera nosotros necesitamos.