Mostrando entradas con la etiqueta R. Mostrar todas las entradas
Mostrando entradas con la etiqueta R. Mostrar todas las entradas

jueves, 24 de marzo de 2016

SixSigma R package new release (0.9-3)

I have just released a new version (0.9-3) of the SixSigma R package, with functions and data used in the books Six Sigma with R and Quality Control with R. The main changes in this new version are related to function ss.rr, for measurement systems analysis (Chapter 5 of Six Sigma with R). After the feedback received by the user Garry Kitchin (thank you very much Garry), I have included the alphaLim argument which allows to set a threshold to do the Gage R&R analysis without the appraisal/part interaction effect (default to 0.05). This is common practice when doing MSA and it was certainly needed an automatic handling of this, similarly to other well-known software packages. In addition, the default value for the sigma argument is now 6 instead of 5.15, in line with the Six Sigma approach.


Another important change is concerned with the F test in the ANOVA table of the full model, i.e., with interaction. The standard ANOVA table returned by R is for fixed effects, but an R&R study implies repeated measures, and therefore the error term (denominator of the F Statistic) should be the interaction one. Thus, the output of the ANOVA table has also changed to return the appropriate tests for the main effects (appraisal, part). What surprised me while checking the references, mainly the AIAG MSA Manual, which is one of the main sources for Six Sigma practitioners, is that in the example provided in page 127 repeatibility MS is used as error term, whilst in the appendix it is used the interaction MS (which is actually common practice in the rest of the references and commercial software).

By the way, I reviewed all the function code, included clearer comments, indentation, spaces, etc. Also a bug in the control limits of the range control chart has been corrected, along with some minor improvements.

I feel really encouraged to continue developing the package when receiving great feedback from people "working in industry where the grip of heavily commercialised software dominates, and feeling like lone warriors battling against this" ;-)

SixSigma package on github
SixSigma package on CRAN
Updates on sixsigmawithr.com

NOTE: It may take some days having the latest version on CRAN. If you read this before that happens, you can get the latest version from github running:

library(devtools)
install_github(repo = "emilopezcano/SixSigma", ref = "develop")

sábado, 12 de abril de 2014

La Comunidad R Hispano se mueve

La Comunidad R Hispano se mueve

Durante las V Jornadas de usuarios de R celebradas en Zaragoza en diciembre de 2013, tuvo lugar la asamblea de la Asociación Comunidad R Hispano, cuyo objetivo es, según sus estatutos, fomentar el avance del conocimiento y uso del lenguaje de programación R y el desarrollo de la profesión en todas sus vertientes, especialmente la investigadora, docente y empresarial. En dicha junta se propuso la renovación de algunos cargos de la junta directiva, teniendo el honor de ser uno de los vocales entrantes propuestos.

La asociación echó a andar durante las III Jornadas celebradas en la Escuela de Organización Industrial (EOI) en Madrid en noviembre de 2011. En realidad un grupo de valientes ya llevaba mucho tiempo organizando cosas y trabajando por la difusión de R en España, una labor impagable. Con su empuje nos unimos unos cuantos más constituyendo la asociación como entidad de pleno derecho, ya que la informalidad previa restringía el margen de maniobra para seguir organizando cosas.

Dos Jornadas después y con la junta renovada, son muchas las cosas que todavía podemos hacer. Además de las VI Jornadas, que ya se están preparando y de las que daremos cuenta muy pronto, la web de la asociación es un punto de encuentro para la comunidad. En ella se puede encontrar información relacionada con R como entradas de blogueRos, cuRsos, ofeRtas de tRabajo, y sobre todo la actividad de los Grupos de Interés Local (GIL) y los Grupos de Interés Temático (GIT). Somos conscientes de que hay mucho por hacer, y una de esas cosas es dinamizar la web de la asociación y fomentar la participación. Estamos trabajando en ello y cualquier sugerencia de la Comunidad será bienvenida.

Una de las cosas que nos faltaba era presencia en las redes sociales. Bueno, como asociación, porque la verdad es que ¡la mayoría de los que fundamos la asociación nos conocíamos por Twitter! y la gran mayoría de nuestros tuits eran y son sobre R. Ahora tenemos una cuenta oficial de la asociación que todo usuario de R debería seguir: @R_Hisp. La gestionamos entre varias personas que esperamos dar una difusión no sólo de la asociación, sino de R en general en el mundo de habla hispana. Además de seguir la cuenta, si te interesa R puedes colaborar en la difusión haciendo mención a @R_Hisp en los tuits que estén relacionados con R, y nosostros lo retuitearemos a toda la Comunidad. Es el primer paso para difundir R y la actividad de la asociación y atraer a nuevos socios, ya que existe un gran desconocimiento de la asociación y queremos cambiar esta situación. Por eso desde aquí animo a todo el mundo a inscribirse como socio. Se me olvidaba: es gratis, como R. Y colaborativo, como R.

martes, 10 de diciembre de 2013

Preparando las V Jornadas de Usuarios de R

Esta semana se celebran las V Jornadas de Usuarios de R organizadas por la Comunidad R-Hispano, asociación de usuarios de R que echó a andar oficialmente en noviembre de 2011, precisamente en el transcurso de las III Jornadas. Es una ocasión única para conocer qué se está haciendo en el mundo de R en España, y compartir un par de días con entusiastas de R.

En esta edición presentaré en conferencia plenaria el trabajo Mejora de la calidad con R: Aplicación de Seis Sigma y otros métodos estadísticos, donde muestro la relación entre Estadística y Calidad basada en tres pilares:
  • Metodologías para la calidad y técnicas estadísticas relacionadas
  • Herramientas disponibles en el software estadístico y lenguaje de programación R
  • Las normas internacionales ISO y su proceso de elaboración
Del resto del programa hay muchas cosas interesantes. Da gusto ver en las conferencias plenarias a amigos con los que estoy trabajando de una forma u otra. También tiene buena pinta la ponencia invitada Optimización Entera Mixta No Lineal (MINLP) con R y Pyomo: Un ejemplo práctico (Jorge Ayuso Rejas). Tengo pendiente implementar Pyomo en mi nuevo paquete optimr, todavía en pañales pero que ya estamos aplicando en el proyecto EnRiMa.

sábado, 15 de junio de 2013

Importar datos de Excel en una línea

Para muchos usuarios de R, sobre todo en las primeras etapas de aprendizaje del entorno, una de las partes más duras es el manejo de los datos.

Muchos usuarios, por no decir todos, hemos utilizado Excel habitualmente para introducir los datos de nuestra investigación o estudio. A menudo es la forma más cómoda y fácil de introducir datos, y hacer los primeros cálculos, además de ser un entorno que casi todo el mundo conoce. Los usuarios acostumbrados a interfaces gráficas, a menudo descartan utilizar R por las dificultades que se encuentran en los primeros pasos de sus análisis (la creación de los conjuntos de datos).

La forma recomendada para importar datos de Excel a R, es guardar estos datos en un fichero CSV, y posteriormente importarlos desde R con el comando read.csv o read.csv2. Este procedimiento es válido para cualquier otro formato en el que tengamos los datos (SAS, SPSS, MINITAB, ...)

Par la importación directa de ficheros Excel en R, existen varias alternativas. El paquete RODBC permite hacerlo en Windows y Mac. El paquete gdata tiene una función específica (read.xls) pero es necesario tener instalado python. Esto implica que estas soluciones pueden funcionar en unos ordenadores pero no en otros.

Una alternativa es utilizar el paquete XLConnect. Está concebido para manipular ficheros excel desde R, con multitud de opciones. Pero también es posible utilizarlo para leer los datos de un fichero y guardarlos en un dataframe para utilizarlos en un solo paso en R. El comando:

data2<-readWorksheetFromFile("example1.xlsx",sheet=1)

Crea el dataset data2 con los datos de la primera hoja de cálculo del fichero example1.xlsx, en un solo paso y sin más complicación que tener el fichero excel en el directorio de trabajo (o escribir la ruta completa del mismo).

El único requisito es tener Java instalado, que está presente en todos los entornos. El paquete ha sido desarrollado por Mirai Solutions, y está disponible en CRAN.

domingo, 25 de noviembre de 2012

Presentación en la "nueva" Facultad de Estadística



Esta semana he tenido la oportunidad de hacer una presentación en la flamante Facultad de Estudios Estadísticos de la Universidad Complutense de Madrid. Lo de flamante, no porque sea un edificio nuevo ni mucho menos, sino porque desde el 16 de noviembre, oficialmente pasa de ser Escuela Universitaria a Facultad. Por cierto, por mucho que algunos se hayan empeñado en alargarle el nombre, supongo que al final todos la llamaremos Facultad de Estadística, para abreviar. Enhorabuena en todo caso a la Facultad y todos sus integrantes.


Esta presentación ha tenido para mí un significado especial por muchos motivos. En primer lugar, me encanta volver allí donde me formé como estadístico, sea cual sea el motivo. Especialmente después de haber sido uno de los primeros Graduados en Estadística Aplicada de España, gracias a la valentía, esfuerzo y mucho trabajo de los profesores y equipos directivos anterior y actual, que en primer año de aplicación del denostado proceso de Bolonia, implementaron el Grado en Estadística Aplicada en todos los cursos y el curso de adaptación para Diplomados en Estadística, asegurando así una rápida incorporación al nuevo sistema para todos los estudiantes (pasados, presentes y futuros) de la entonces Escuela Universitaria de Estadística. Además, iba invitado por María Villeta, profesora de la asignatura Metodología Seis Sigma para la Mejora de la Calidad, que me empeñé en elegir como optativa cuando en marzo del año 2010 me matriculé en el curso de adaptación al Grado para diplomados a pesar de las dificultades, que no vienen a cuento aquí. Algo me decía que la asignatura me iba a aportar mucho en el futuro, como así ha sido, y con el apoyo y ánimo de María se encendió la chispa de mi posterior "especialización" en el tema.


La Presentación

La presentación era sobre el libro Six Sigma with R,  publicado por Springer y del que soy coautor junto con Javier M. Moguerza y Andrés Redchuk, que tutorizaron mi Proyecto fin de Master en la Universidad Rey Juan Carlos, donde ahora trabajo como investigador mientras realizo el doctorado. Ya he hablado de mi interés en Six Sigma; sobre la segunda parte del título del libro (with R) más que interés es pasión. Desde que empecé a utilizar R y tras las primeras dificultades del autodidacta en R, lo fui dominando (o viceversa) y hoy en día hago todo lo que puedo con R (los R adictos sabemos que con R se puede hacer de todo, incluso encargar pizza).
En la charla, tras presentar a los autores y explicar la génesis del libro, traté de hacer un recorrido por los contenidos  con las citas  de diversos personajes con la que iniciamos cada capítulo, para después hacer algunas reflexiones sobre las oportunidades de lo que viene llamándose Data Science, y de R. Espero que gustara a la audiencia, a la que agradezco su asistencia. Entre los asistentes se encontraba otro de los "inspiradores" de mi trabajo, Mariano Prieto, profesor de la asignatura Calidad Seis Sigma en el Master Universitario en Ingeniería de Sistemas de Decisión. También había alumnos del grado, así como profesores de la Facultad, espero que todos disfrutaran. Me consta que un profesor entusiasta de R, al que le mando saludos y aliento, no pudo asistir a su pesar. Ojalá contemos con él en el próximo congreso internacional de R que se celebrará en España, y tenga la oportunidad de conocerle en persona.



domingo, 8 de julio de 2012

Librerías en R


Instalar librerías (paquetes) en R es muy fácil, una vez sabemos su nombre, basta con introducir la siguiente orden en R:

install.packages("SixSigma")

Y para poder utilizar las funciones y datos de la librería, la cargamos en el espacio de trabajo de R:

library("SixSigma")

Pero una cosa que me ha traído un poco de cabeza es dónde se instalan, cómo gestionarlas y, sobre todo, cómo mantenerlas cuando se actualiza a una nueva version de R. Pues bien, para ver dónde están las librerías instaladas en el equipo podemos hacer lo siguiente:

.libPaths()
## [1] "C:/R/library"          "C:/R/R-2.15.1/library"

Podemos añadir nuevas librerías. Por ejemplo en Windows, añadiendo una variable de entorno en las propiedades avanzadas del sistema, como se ve en la imagen:


Una vez tenemos esta variable R_LIBS, los nuevos paquetes que instalemos lo harán en esta librería. Podemos especificar en qué librería queremos que se instale mediante el argumento lib en la función install.packages. En realidad, el valor por defecto es el primer elmento del vector que obtenemos con .libPaths(). Para cada paquete, podemos decidir en cuál de nuestras librerías lo instalamos.

Cuando actualicemos a una nueva versión de R, si tenemos configurada la librería correctamente, los paquetes están disponibles para la nueva versión. No obstante, tendremos que actualizar también los paquetes a la última versión, ya que suele haber cambios en los paquetes con actualización de R, al menos en los que son mantenidos regularmente:

update.packages(checkBuilt = TRUE, ask = FALSE)

Por último, una cosa a tener en cuenta es qué versión de cada paquete tener en cada versión de R. Por ejemplo, la versión 0.6.1 del paquete SixSigma incluye una función nueva que el R-core team ha incluido para evitar mensajes al comprobar los nuevos o actualizados paquetes (globalVariables). Esto significa que en las versiones anteriores a la 2.15.1, el paquete SixSigma 0.6.1 no funcionará, por lo que tendremos que manejar esta situación de algún modo. Igualmente, se puede dar que un paquete que usamos, no funcione correctamente con la última versión de R, y tengamos que utilizar una anterior. Todo esto es un poco más enrevesado y hay varias opciones, por lo que lo dejo para otra ocasión. En la ayuda de ?.libPaths hay información sobre este tema.

Por cierto, yo utilizo Eclipse con el plugin statET, y lógicamente aquí hay que tener bien configuradas las librerías:


Para esta entrada por primera vez he utilizado el paquete knitr:

citation("knitr")
## 
## To cite package 'knitr' in publications use:
## 
##   Yihui Xie (2012). knitr: A general-purpose package for dynamic
##   report generation in R. R package version 0.6.3.
##   http://CRAN.R-project.org/package=knitr
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {knitr: A general-purpose package for dynamic report generation in R},
##     author = {Yihui Xie},
##     year = {2012},
##     note = {R package version 0.6.3},
##     url = {http://CRAN.R-project.org/package=knitr},
##   }
## 

martes, 3 de julio de 2012

Año Internacional de la Estadística (Statistics2013)

The International Year of Statistics (Statistics2013)
El próximo año estamos de celebración. En todo el mundo se celebrará y reconocerá las contribuciones de la Estadística. Se promocionará la importancia de la Estadística  a una amplia gama de destinatarios: comunidad científica, usarios de datos del sector público y privado, medios de comunicación, legisladores, trabajadores, estudiantes y público en general (vamos, a todo el mundo). Toda la información está disponible en la web http://www.statistics2013.org.

Hay una lista de actividades alrededor del mundo relacionadas con la estadística, que imagino irá creciendo en los próximos meses. Se pueden añadir actividades sin que ello comporte compromiso alguno. Es una forma de indicar que se apoyan los objetivos del Año Internacional de la Estadística. Pronto aparecerá el próximo Congreso Internacional de Usuarios de R (useR! 2013) que se celebrará en España en este año tan especial.

Ojalá esta celebración sirva para que se conozca mejor la labor de los estadísticos, y  las contribuciones tanto a la vida cotidiana como a la investigación científica.

miércoles, 4 de enero de 2012

Instalar R en Ubuntu desde las fuentes

La instalación automática de software en Ubuntu está muy bien para algunas cosas. Pero cuando quieres disponer de varias versiones de un mismo programa, no es una buena idea.

Utilizo ECLIPSE con el plugin StatET para mi desarrollo en R y producción de publicaciones (artículos, libros, presentaciones) con Sweave y LaTeX. Me gusta  tener instaladas varias configuraciones por varios motivos: asegurarme que el paquete que mantengo (SixSigma) funciona con la última versión aparecida, asegurarme de que las últimas versiones del paquete funcionan en (al menos) la versión anterior a la última de R, o utilizar paquetes que no funcionan, o no lo hacen apropiadamente en las últimas versiones de R (por ejemplo, odfWeave me dio muchos problemas en R-2.14.0 pero me funcionó sin problemas en R-2.12.0).

Aunque en Windows la tarea me resultaba bastante fácil (bastaba con cambiar la ruta de instalación en el Wizard), en Ubuntu no he encontrado una forma rápida de hacerlo (ni siquiera sé si la hay) y sigo las instrucciones paso a paso de la documentación de R. Aunque no soy experto en Linux, tengo que reconocer que tener controlado cada paso y saber lo que estás haciendo es reconfortante.

Yo me instalo las versiones de R que necesito en la home, dentro de una carpeta a la que llamo R, de forma que al hacer copia de seguridad de la carpeta, estoy también haciéndola de mi configuración de R. De paso sé exactamente dónde buscar las cosas (todavía no domino la estructura de carpetas de Linux). Así, en mi home tengo una carpeta R con los directorios de las distintas versiones de R. En vez de la home, ahora utilizo /usr/R. Tras descargar el fichero con las fuentes desde CRAN (por ejemplo en el directorio sources dentro de /usr/R), los pasos que sigo para la configuración que necesito son los siguientes:

sudo tar xvfz R-3.0.1.tar.gz
sudo cd R-2.14.2
sudo ./configure --enable-R-shlib
sudo make
sudo make check
sudo make check-devel

Durante la instalación, se me han presentado problemas de paquetes necesarios, que he resuelto instalándolos:

sudo apt-get install gfortran
sudo apt-get install libreadline6-dev
sudo apt-get install xorg-dev
sudo apt-get install openjdk-7-jdk


Ya solo me falta configurar en ECLIPSE el entorno R de la nueva instalación, y la nueva "Run configuration" para correr y/o depurar los programas en R. Esto ya lo explicó el blog amigo Rparatodos. Eso sí, antes de ejecutar la consola desde Eclipse, tenemos que instalar el packete rj en la versión recién instalada de R, ver el post acerca de la ubicación de librerías:

/usr/R/R-3.0.1/bin/R

> install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")



martes, 1 de noviembre de 2011

R 2.14.0 Funcionando en Arquitect

Un día después de que Peter Dalgard anunciara la publicación de la versión 2.14.0 de R, ya la tengo a pleno rendimiento en mi equipo. Los binarios para Windows están disponibles en CRAN, y la instalación no tiene ninguna complicación, como en versiones anteriores. Personalmente, lo único que hago es cambiar el directorio de instalación a C:\R, donde tengo todas las versiones y el resto de software que necesito para utilizar R.

Tengo que decir que no sólo utilizo R para realizar análisis estadísticos. También estoy desarrollando el paquete SixSigma (disponible en CRAN) con funciones para aplicar esta metodología de mejora de la calidad. No sólo eso: Soy coautor del libro Six Sigma with R, de próxima aparición en la serie Use R! de Springer. Y estoy escribiendo el libro con R.

Como podéis imaginar, el libro contiene cantidad de código, resultados y gráficos en R. Las plantillas de Springer están en LaTex. Por tanto la mejor forma de producir el libro es utilizar archivos archivos *.Rnw y Sweave. Además de tener el libro en cada compilación en el formato adecuado para la editorial, aprovecho todas las ventajas de la "Investigación reproducible". Si tengo que hacer algún cambio en cualquier pedazo de código (chunk) no tengo que preocuparme de volver a maquetar pues los resultados se vuelven a generar en el propio libro automáticamente.

Pero todo esto es farragoso si no contamos con un entorno donde escribir R y LaTeX de forma productiva. Aquí es donde tengo que agradecer a Tobias Verbeke (OpenAnalytics) y Stephan Wahlbrink (WalWare) su trabajo con Architect y StatET respectivamente. Implementado en Eclipse, y con un aprendizaje muy rápido, para mí es la mejor opción para ganar en productividad (y lo digo después de haber utilizado otras opciones como Emacs). En todo caso, la grandeza del software libre es que cada uno puede elegir lo que más le convenga.

Mi punto de entrada hasta llegar a estas conclusiones fue una entrada en R-Bloggers, para quien se anime:
http://www.r-bloggers.com/getting-started-with-sweave-r-latex-eclipse-statet-texlipse/

NOTA: aunque Architect está disponible como instalable para Windows, la implementación de StatET en Linux no tiene dificultad siguiendo las instrucciones de instalación.

martes, 23 de agosto de 2011

Mi experiencia en el congreso Use R! 2011

Ya recuperado de un viaje un poco pesado, quiero mostrar lo satisfecho que estoy de haber asistido al Congreso de Usuarios de R (Use R! 2001) que un año más se ha llevado a cabo con el auspicio de la R Foundation for Statistical Computing. El departamento de Estadística de The University of Warwick en Coventry (UK) ha llevado a cabo una organización impecable, tanto por los medios a disposición de los asistentes, como el desarrollo del programa. Desde las ponencias invitadas, hasta las ordinarias, e inlcuso introduciendo un formato novedoso, las "Lightning Talks".

Los que utilizamos el alojamiento de la Universidad comprobamos lo eficientes que son, el campus en su conjunto es una maravilla. Y la cena del congreso fue un total éxito.

Escuchar a (y en algún caso incluso tener la ocasión de charlar un rato con) algunos de los gurús de R es algo que no tiene precio. Brian Ripley, Ulrike Groemping, Ramón Díaz-Uriarte, Heather Turner o Paul Murrel son solo algunos de los nombres que se dieron cita en el congreso. La organización puso en marcha un grupo en Facebook (aunque se puso en marcha una vez comenzado) y una buena colección de fotografías está disponible en la web del congreso.

En cuanto al programa ordinario, era tan amplio que era difícil decidir a qué sesión paralela (a veces había hasta CINCO) asistir. Yo me decanté más por las dedicadas a programación, gráficos y análisis de datos, y confío en poder descargar algunas de las presentaciones de las charlas a las que no pude acudir.

Mi contribución fue una presentación titulada "Six Sigma Quality Using R: Tools and Training" y una "Lightning Talk" sobre el mismo tema, ambas disponibles en los siguientes enlaces:
http://www.proyectum.es/pub/user11/LightningTalk-slidesk.pdf
http://www.proyectum.es/pub/user11/RegularTalk-Slides-w.pdf

Forma parte de nuestro trabajo en el Departamento de Estadística e Investigación Operativa en la Universidad Rey Juan Carlos de Madrid, que incluye un libro para la serie Use R! de Springer, y una propuesta de Proyecto Europeo.




viernes, 18 de marzo de 2011

R como servicio web

Están surgiendo varias iniciativas para ejecutar R como servicio web, por ejemplo:

Esto no para

miércoles, 23 de febrero de 2011

Cambiar el idioma de los mensajes en R

Al instalar R en Windows, la consola de R (R-console) nos muestra de forma predeterminada los mensajes y menús en el idioma del sistema operativo. Es decir, si tenemos Windows en español, instala R en español.

Por motivos didácticos, he tenido que cambiar el idioma de estos mensajes, ya que los necesito en inglés, y la forma más rápida que he encontrado es la  siguiente:

Buscar el archivo Rconsole, dentro del directorio etc de la carpeta donde está instalado R. (la predeterminada es Archivos de Programa/R/R-12.12.1 u otro número de versión)
Editamos este fichero con notepad o cualquier otro editor de texto, y buscamos (hacia el final) la línea "Language = ". A continuación del "=" he puesto "English", y ya tengo los mensajes en inglés.

miércoles, 5 de mayo de 2010

Control de Calidad con R: Muestreos de Aceptación

Para el diseño y verificación de muestreos de aceptación, disponemos en R del paquete AcceptanceSampling.


Disponible para instalar de los repositorios


Uso del paquete AcceptanceSampling

Muestreo simple

Primero tenemos que cargar la librería, en el intérprete de comandos, o alguna de las interfaces gráficas (RCommander o RKWard):

> library(AcceptanceSampling)


Crear un plan de muestreo (ejemplo: n=300, c=5, distribución binomial):

> x <- OC2c(300, 5, type="b")

Mostrar el plan de muestreo:

> x

Mostrar el plan de muestreo detallado (muchos puntos OC):

> summary(x, full=TRUE)

Mostrar gráfico de la curva OC:

> plot(x, xlim = c(0, 0.3))

Encontrar un plan, dada OC (alfa=0.05, p1=0.05, beta=0.15, p2=0.10, distribución binomial):

> find.plan(PRP = c(0.05, 0.95), CRP = c(0.15, 0.10), type = "binom")


Muestreo doble y múltiple

Se procede igual que para el muestreo simple, pero indicando los valores de n, c y r como vectores:

> x <- OC2c(n=c(50, 100), c=c(0, 1), r=(2, 2))


Otros recursos

En la siguiente página se pueden calcular automáticamente muestreos de aceptación utilizando las normas MIL-STD y otras:

www.sqconline.com/


Gracias por el aporte María.



martes, 4 de mayo de 2010

Redes Neuronales con R

Introducción


Para empezar, existen distintos modelos de redes neuronales, siendo uno de los más  utilizados el del "Perceptron".

Esta red se basa en una "caja negra", donde lo importante es la predicción, y no cómo se hace.

El proceso incluye una fase de entrenamiento (training) para la optimización de las predicciones.

Los elementos de la red son:
  • Las neuronas o nodos
  • Las capas
    • De entrada
    • De salida
    • Oculta (puede tener a su vez varias capas)
  • Los pesos
  • La función de combinación
  • La función de activación
  • El objetivo (target)

Una descripción "grosso modo" podría ser: Los nodos (neuronas) de la capa de entrada, se combinan con los nodos de la capa oculta mediante la función de combinación, que suele ser una combinación lineal de los nodos de entrada mediante los pesos. A las neuronas de las capas ocultas, se aplica una función de activación, que suele ser la tangente hiperbólica de la anterior combinación más un parámetro por nodo oculto, con la que estimamos las neuronas de la capa de salida, y sus errores.






Recursos:




En Wikipedia: RNA, Perceptrón.

En este documento de la Universidad Carlos III de Madrid hay una introducción bastante bien explicada, con ejemplos en R:
Introducción a las redes neuronales aplicadas uc3m)


Paquete nnet
Se puede instalar desde los repositorios
Documentación

Paquete RWeka
Se puede instalar desde los repositorios
Documentación

Paquete neural
Documentación

neural no está en los repositorios, para instalar:
  1. Descargar de http://cran.r-project.org/src/contrib/Archive/neural/
  2. Instalar desde ubicación local

Paquete AMORE
Se puede instalar desde los repositorios. Es un paquete desarrollado en la Universidad de León, con abundante documentación.
Documentación
Wiki


Ejemplo
Próximamente

Paquete estadístico "R": Uso de Rcommander

Notas
">"   : Ejecutar desde el intérprete de comandos de R
"~$": Ejecutar en la consola de Linux


Para instalar: 
~$ sudo R
> install.packages("Rcmdr", dependencies=TRUE)

Para iniciar desde la consola: 
~$ R
> library(Rcmdr)

Para iniciar desde la consola cuando ya hemos cerrado Rcmdr:
> Commander()

En Windows
Se puede arrancar también desde la consola de R, pero para evitar errores tenemos que abrir R en modo SDI. Si no elegimos esta opción al instalar R, podemos forzar este tipo de ejecución, añadiendo al comando del acceso directo que abre la aplicación la opción --r (Propiedades del acceso directo, caja de texto "Destino", quedaría algo así: "C:\Program Files\R\R-2.11.0\bin\Rgui.exe" --sdi




viernes, 30 de abril de 2010

Paquete estadístico "R": Uso de la consola

Convenciones
>              Ejecutar en la consola de R
~$            Ejecutar en la consola de Linux
cursiva     Identificador variable


Arrancar la consola
~$ R

Arrancar la consola con derechos de superusuario (para instalación)
~$ sudo R


Instalar paquete descargado

> install.packages ("ruta archivo .gz")

Instalar paquete de repositorios

> install.packages ("paquete", dependencies=TRUE)




Actualizar paquetes

> update.packages()


Exportar gráfico generado

Antes de ejecutar el gráfico, debemos dar la instrucción con el tipo de gráfico que queremos guardar:

> jpeg("archivo.jpg")

Después ejecutamos el gráfico, por ejemplo:

> plot(x)

Y por último, para que se guarde el gráfico:

> dev.off()






En vez de jpeg, se puede utilizar png, bmp o tiff.



domingo, 25 de abril de 2010

Instalación de R

Voy a empezar a relatar mi experiencia con el software estadístico de libre distribución y código abierto "R". R es un entorno de software para el análisis y gráficos estadísticos. Hay versiones para Unix/Linux, Windows y Mac/OS.

Instalación en Windows
Lo primero que tenemos que hacer, es ir a la página del proyecto, y seguir el enlace download R. Aparece una lista de direcciones (CRAN Mirrors), y debemos elegir una cercana a nuestra ubicación.
A continuación, tenemos los enlaces para descargar los archivos binarios o el código fuente.
Seguimos el enlace de Windows, y tenemos dos "carpetas": base y contrib. Entramos en base, y tenemos el enlace a descargar el archivo de instalación para Windows. Si entramos en Contrib, tenemos una lista de directorios, podemos entrar en la versión que estemos instalando y descargar los paquetes adicionales que necesitemos.
La instalación se realiza mediante un asistente, como cualquier otro programa de Windows, que nos crea los accesos directos, y después de la instalación podemos arrancarlo. Para evitar errores posteriores con algunos paquetes, es mejor elegir la opción SDI cuando nos lo solicita. La versión para Windows incluye un GUI (Interfaz gráfico de usuario) desde el que utilizar el sistema. Esta es la pantalla principal del programa:


Una vez instalado, se pueden cargar paquetes adicionales. Por ejemplo, para cargar el paquete "survival", vamos al menú "paquetes", y seleccionamos el paquete survival.

También podemos instalar paquetes nuevos. En el menú paquetes, seleccionamos "Instalar paquetes". Primero nos pide seleccionar un "CRAN Mirror", de donde descargar. Debe ser próximo a nuestra ubicación. Al hacer clic en oq, obtenemos la lista de paquetes disponibles. Si por ejemplo queremos instalar el paquete qcc para control de calidad, lo buscamos, seleccionamos y hacemos clic en ok. La primera vez que instalamos un paquete, nos pregunta si queremos crear una carpeta para los paquetes, a lo que contestamos que sí.



Otra forma de instalar paquetes, es desde la consola, como se describe a continuación.

La interfaz gráfica nos va a permitir utilizar la consola del programa para ejecutar comandos, y también instalar paquetes y configurar el sistema. Pero si queremos utilizar realmente una interfaz gráfica e interactiva para el análisis, necesitaremos instalar el paquete "RCommander".

Para instalarlo, instalamos el paquete desde la consola con el comando:
install.packages("Rcmdr", dependencies=TRUE)





Instalación en Linux
Para la instalación en Linux, podemos elegir varios caminos:


  1. Para los más expertos, se puede descargar el código fuente, para compilarlo. No voy a explicar esta modalidad porque (aún) no me cuento entre los expertos.
  2. Los más comodones, pueden utilizar el gestor de paquetes de Synaptic (para distribuciones que incluyan esta opción, como Ubuntu o Molinux). Podemos instalar el paquete base (r-base), o bien un conjunto de paquetes recomendados, incluido el base (r-recommended)
  3. La instalación más utilizada, es mediante la consola. Abrimos la consola y tecleamos la orden:






sudo apt-get install r-recommended




En el caso de Linux, no se instala de forma predeterminada ningún interfaz de usuario, para empezar a utilizarlo tenemos que abrir una consola y ejecutar el comando R.


Desde la consola podemos instalar paquetes nuevos mediante el comando install igual que se ha descrito en Windows.

Podemos instalar el paquete rkward como interfaz gráfica de usuario, que sirve tanto para utilizar la consola directamente, como para realizar análisis de datos, importación, etc. al estilo de SPSS.
De nuevo, podemos utilizar el gestor de paquetes, o la consola:

sudo apt-get install rkward

Esta es la ventana principal de rkward, desde la que se pueden realizar los análisis y también configurar el entorno e instalar paquetes adicionales:



También podemos instalar el paquete correspondiente para Linux de R-Commander, desde el gestor de paquetes, o la consola:

sudo apt-get install r-cran-rcmdr

También se puede instalar desde el intérprete de comandos de R, con la instrucción:
install.packages("Rcmdr", dependencies=TRUE)

Si se obtiene algún mensaje que falta algún paquete, instalarlo de la misma forma y repetir el comando.

En el próximo post entraré en el uso de la consola de comandos para las operaciones básicas.

miércoles, 21 de abril de 2010

Linux, Software libre, Estadística y más ...

En octubre de 2009, escribí mi primer post aprovechando que acababa de visitar SIMO NETWORK 2010. 

Ahora que ya tenemos fecha para el próximo SIMO (5-7 de octubre de 2010), voy a cumplir mi promesa de escribir sobre Linux. Por cierto que en SIMO no hubo prácticamente nada de Linux, espero que en esta próxima edición no tengamos que decir lo mismo.

En los últimos meses me he puesto al día en cuanto a Linux y tecnologías libres en general. Tengo que decir que siempre he sido escéptico, pero después de varios meses probando cosas, he llegado a la conclusión de que no hay nada de lo que hago con Windows que no pueda hacer con Linux.

En esta primera incursión, voy a resumir mi experiencia de los últimos meses para después profundizar en cada tema.

Mi experiencia

Lo primero era elegir una distribución. En mi caso, elegí la distribución Molinux, proyecto de la Junta de Castilla la Mancha, que realmente es una "adaptación" de la distribución Ubuntu. La gran ventaja de Molinux es que dispone de soporte telefónico, además de otros recursos gratuitos de ayuda. También he probado el propio Ubuntu en el portátil, siendo la experiencia igual de satisfactoria.

La instalación es sencilla para el usuario "novato", y con amplias posibilidades de personalización para el experto.

Me han sido de gran ayuda los recursos del Centro de Excelencia de Software Libre de Castilla la Mancha, donde se puede uno inscribir en los cursos gratuitos y aprender todo lo necesario para manejar linux, tanto a nivel de usuario como de administrador.

Aplicaciones

En cuanto a las aplicaciones que he utilizado, paso a resumirlas para desarrollarlas en posteriores posts:
  1. Diseño gráfico.- Para la edición de imágenes, he pasado a utilizar GIMP en sustitución de Photoshop. Sólo se trata de acostumbrarse a usarlo, porque se puede hacer de todo, sobre todo instalando los plugins que uno necesite.
  2. Edición de vídeo.- En windows he utilizado Pinnacle Studio, Nero Visión, y otros. Ahora utilizo KINO, que una vez conoces cómo funciona es la mar de sencillo, y rápido (una vez tenemos los archivos en formato DV)
  3. Multimedia.- VLC me ha enamorado desde que lo conocí, y a todas mis amistades se lo instalo en Windows. Brasero es otro imprescindible.
  4. Ofimática.- De sobra conocido es el proyecto OpenOffice.org. No echo de menos nada de MS.
  5. Internet.- Aunque el navegador por excelencia de Linux es Firefox (ya lo usaba en Windows) utilizo principalmente Chrome. Otras aplicaciones para Internet, como Transmission, Evolution o Tucan, cumplen con sus cometidos a la perfección. El cliente de Terminal Server, es muy útil y funciona perfectamente para conectar a equipos Windows que tengamos que controlar.
  6. Programación.- A efectos de aprendizaje, he utilizado simplemente el editor de textos GEdit, que reconoce la sintaxis de cantidad de lenguajes de programación, y compiladores libres (g++, gcc, fpc), con lo que uno puede seguir bibliografía o asignaturas de programación sin necesidad de aplicaciones propietarias, como Turbo Pascal o Turbo C++. Existen también IDE con muy buenas prestaciones, como Lazarus (Pascal), o Anjuta. Incluso es posible desarrollar aplicaciones para plataformas Windows con el Proyecto Mono. Para el diseño de páginas web al estilo WYSIWYG, la aplicación Amaya es la indicada, aunque yo prefiero menos automatización y escribir código directamente.
  7. Servicios de Internet.- La configuración de un servidor básico de Internet con Apache, php y mySql me resultó realmente sencilla.
  8. Otras utilidades que me son muy útiles son pyRenamer (renombrado de archivos), VirtualBox (Máquinas virtuales), XMind (mapas mentales).
  9. Educación.- La distribución de Molinux versión educativa viene con gran cantidad de aplicaciones educativas y lúdicas que se agradecen mucho para los pequeños de la casa.
  10. Análisis estadístico. Por último, y este es el campo donde más quiero profundizar posteriormente, me ha sorprendido la existencia del "Proyecto R". Después de unos años apartado en parte de mi profesión de Estadístico, he vuelto a "La Complu" para estudiar el Grado en Estadística Aplicada para Diplomados en Estadística, y se han despertado en mí las ganas de aunar la filosofía del software libre con el análisis estadístico, para beneficio especialmente de la Investigación, pero también de la industria y la docencia. Ya lo he instalado, y espero ponerme al día con esta herramienta gracias al libro libre de la Universidad de Cádiz. Algunos de los puntos fuertes son: La cantidad de información disponible sobre el proyecto, la cantidad de paquetes adicionales para ampliar funcionalidad (p.ej. qcc para control de Calidad), y la existencia de GUI's, como RKWard, para hacer la vida más fácil al investigador/analista.


Lo que aún no he probado

Tengo ganas de meterle mano a aplicaciones de Gestión de Proyectos, me consta que hay muy buenas aportaciones que quiero probar.

Quiero aprender a programar en Java y php, mi asignatura pendiente. También para programar aplicaciones móviles. A mi ipaq hw6815 ya se le está poniendo cara de pingüino.



El lado oscuro

Hay que decir que no todo es un camino de rosas. Lo que más me ha costado es la configuración de determinado hardware. Con cierto esfuerzo, he podido configurar una impresora de red HP, y todavía me estoy "peleando" con los drivers la tarjeta gráfica ATI.

Aunque en las versiones de Molinux y Ubuntu todo es muy sencillo, para ciertas tareas hay que tener algo de idea de informática, y el "gran público" aún no está preparado para prescindir de su Windows. Pero cada día hay nuevas iniciativas para salvar estos inconvenientes, y sólo es cuestión de tiempo una implantación mayor.

De todas formas merece la pena, y pienso seguir progresando en este nuevo  (para mí) paradigma de las tecnologías de la información.


Conclusión

Lo mejor de todo, creo que se resume en que podemos elegir. El que prefiera Windows, que siga con él (no se trata de estar a favor o en contra). Pero ya no hay excusas para no probar Linux.