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.
En este blog publico notas referentes a minería de datos (clase de posgrado), Bases de Datos, programación, VS.NET, etc. Así como notas que me parecen interesantes de temas de tecnología y de temas en general.
Mostrando las entradas con la etiqueta R. Mostrar todas las entradas
Mostrando las entradas con la etiqueta R. Mostrar todas las entradas
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.
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.
8 de diciembre de 2010
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
- Una lista de reglas o base de reglas, que es un tipo específico de base de conocimientos
- 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
- Memoria de trabajo temporal
- 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:
- 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".
- Si el precio está entre 1.2891425 y 1.671285 (media), será considerado como "Barato"
- 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"
- 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.266 | Muy Barato |
| 1.272 | Muy Barato |
| 1.321 | Barato |
| 1.619 | Barato |
| 1.626 | Barato |
| 1.703 | Caro |
| 1.713 | Caro |
| 1.687 | Caro |
| 1.704 | Caro |
| 1.679 | Caro |
| 1.647 | Barato |
| 1.601 | Barato |
| 2.858 | Caro |
| 2.86 | Caro |
| 2.849 | Caro |
| 2.898 | Muy Caro |
| 2.905 | Muy Caro |
| 2.864 | Caro |
| 2.786 | Caro |
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:
- El examen de la forma global de los datos graficados de características importantes, incluyendo la simetría y las desviaciones de los supuestos.
- 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:
- Valla interna inferior: Q1 - 1,5 * CI
- Valla interna superior: Q2 + 1.5 * CI
- Valla exterior inferior: Q1 - 3 * CI
- 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:
Suscribirse a:
Entradas (Atom)
