logoDMA

logoDMA



portada

portada


¿Qué es R?

R es muchas cosas:

  • Es una simple calculadora.

  • Es un programa para el análisis de datos, que dispone de procedimientos específicos para:

    • Estadística descriptiva.
    • Inferencia estadística.
    • Ajuste de Modelos.
    • Estadística espacial.
    • Epidemiología.
    • Análisis de señales.
    • Genética
    • Econometría
    • Series Temporales
    • Ecuaciones estructurales
    • Métodos bayesianos


  • Es una herramienta de cálculo numérico con procedimientos para el álgebra lineal, las ecuaciones diferenciales, la optimización, etc.

  • Es un lenguaje de programación con las siguientes características:

    • Actúa como interfaz para procedimientos computacionales muy diversos.
    • Es interactivo.
    • Su modelo de programación es funcional.
    • Es orientado a objetos. Todo en R es un “objeto”.
    • Es modular, construido a partir de mútiples “piezas” ajustadas a un formato estándar.
    • Es colaborativo: es software libre, abierto a la participación de quien desee aportar su conocimiento y experiencia.

  • Es una parte integral del proceso de investigación reproducible.

  • Es sobre todo un entorno de trabajo en el que se pueden manipular múltiples elementos: archivos de datos, gráficos, accesos a internet, … Este entorno de trabajo cuenta con la indiscutible ventaja de ser idéntico en los tres grandes sistemas operativos: Linux, Windows y Mac.





¿Cómo puedo conseguir R?

R es software libre y por tanto no es necesario pagar para adquirirlo. Se puede descargar directamente desde la web www.r-project.org:

web R-project

web R-project





¿Qué análisis estadísticos puedo hacer con R?

Todos los que el usuario pueda desear. La instalación básica de R incluye procedimientos para prácticamente todos los métodos estadísticos tradicionales: estadística descriptiva, gráficos, inferencia, regresión, análisis de la varianza, …

Además es posible descargar en cualquier momento desde la web de R nuevas librerías o “packages” que incrementan los procedimientos disponibles. En junio de 2014, en la web “oficial” de R (CRAN, Comprehensive R Archive Network), hay 5663 librerías que pueden descargarse libremente.

Las librerías se encuentran organizadas en grupos (Task Views) en función de su área de aplicación.

Task Views

Task Views



Hay además numerosas iniciativas orientadas al uso de R en campos específicos. Muchas de ellas cuentan con sus propios repositorios de datos y procedimientos estadísticos implementandos en librerías:

  • R Open Science: librerías para el acceso a datos públicos.

  • Bioconductor: Bioinformática con R, muy orientado a genómica.

  • Fisheries Library: análisis de pesquerías con R.

  • Rmetrics: Análisis de mercados financieros con R.

  • R-Geo: Estadística espacial con R

  • Github: paquetes en desarrollo, pero listos para su uso.

Aprender R va mucho más allá de pasarse a este software porque es gratuito. Que sea gratuito es innegable que ayuda a su difusión. Pero la gran ventaja de R es la disponibilidad actual de casi cualquier procedimiento estadístico imaginable, así como sus enormes perspectivas de desarrollo futuro. R es ya hoy el lenguaje universal del análisis de datos en todos los ámbitos.




R es software libre. ¿Es fiable?

R-Logo

R-Logo

En el New York Times de enero de 2009 se entrevista a una directiva de SAS Institute (Anne H. Milley, directora de marketing), que señala:


“Yo creo que (R) se dirige a un nicho de mercado ocupado por analistas de alto nivel que requieren código libre y fácilmente disponible. Pero nosotros tenemos clientes que construyen reactores para aviones. Y me tranquiliza saber que no se ha usado sofware libre cuando subo a un avión”


En el mismo artículo responde Frank Harrell, catedrático de Bioestadística en la Universidad de Vanderbilt (EEUU):


“Es interesante observar que SAS Institute opine que para construir motores de avión debemos depositar nuestra confianza en software no sujeto a revisión por pares y que incluye implementaciones ocultas de métodos analíticos que no pueden ser reproducidos por terceros”



Precisamente por su carácter de software libre, el código de R es completamente abierto; cualquiera puede ver qué es lo que hace cada función y comprobar si lo hace bien. La amplia base de usuarios con que cuenta el programa en la actualidad produce como resultado que cualquier error sea detectado y corregido en tiempo record.


¿Cuál es el origen de R?

  • R comenzó a ser desarrollado en 1992 por Robert Gentleman y Ross Ihaka, de departamento de Estadística de la Universidad de Auckland (Nueva Zelanda), con el objetivo de disponer de un lenguaje para enseñar cursos introductorios de estadística. El nombre del programa deriva de las iniciales de los nombres de sus dos autores.
RossRobert

RossRobert

  • Deciden adoptar una sintaxis idéntica a la del lenguaje S, desarrollado por John Chambers y Richard Becker en los laboratorios Bell.

  • La primera versión del programa sale en 1994; en 1995 adopta una licencia de software libre GNU. La difusión del programa se realiza boca a oreja.

  • En 1996 publican en el Journal of Computational and Graphical Statistics un artículo describiendo el programa: R: A language for data analysis and graphics

  • En 1996 se crea una lista de correo en la Escuela Politécnica de Zurich. En 1997 se funda el R-Core group (grupo de voluntarios que se encargan de mantener el código del programa), y en 1998 se abre el primer repositorio de R en la Universidad Tecnológica de Viena.

  • Desde entonces el número de participantes en el proyecto se ha incrementado notablemente, así como el número de repositorios disponibles.

  • En el año 2000 se libera la primera versión estable de R, la 1.0. La versión actual es la 3.1.0 (Spring Dance).

  • Desde el año 2000 a la actualidad el número de usuarios de R se ha ido incrementando exponencialmente, así como el número de personas que contribuyen aportando nuevas librerías.

  • En la actualidad, Ihaka y otros colaboradores trabajan en una versión completamente renovada de R, con mejor gestión de recursos y mayor rendimiento en entornos con multiprocesadores.



En palabras del Dr. Ihaka (Entrevista en The New Zealand Herald de junio de 2009), el desarrollo de R tiene mucho que ver con la forma en que la gente consigue un coche nuevo en Nueva Zelanda:

“Si usted va a un depósito de chatarra, y sale de allí con un automóvil inservible, basta con que se ponga en la carretera mirándolo con cara de impotencia para que la gente, que es toda del tipo”hágalo usted mismo“, se pare y le ayude; después de un par de horas tendrá usted un muy buen coche. Con R sucedió algo parecido: iniciamos el proyecto, lo colgamos en internet y después de unos años tenemos una excelente pieza de software”





¿Cómo puedo trabajar con R?

Existen múltiples formas de interactuar con R:

Mediante la terminal.

Una terminal es una simple ventana del sistema operativo, que arranca R y nos deja el “prompt” esperando por nuestras instrucciones:

terminal

terminal

Obviamente este procedimiento deja al usuario prácticamente “solo ante el peligro”: no hay menús de ayuda, ni de configuración, ni de edición, …




Mediante la GUI (Graphics User Interface) del programa.

las versiones de R para Windows y Mac, cuentan con sus propias interfaces gráficas de usuario que integran una consola de resultados, un editor de código, algún menú de ayuda, y cierta gestión de gráficos.

GUI en Windows:

RGUI-Windows

GUI en MAC

RGUI-Mac

RGUI-Mac




Mediante Rstudio

Rstudio es una interfaz gráfica para R desarrollada a comienzoa de 2011 por un grupo de informáticos y estadísticos de Boston (EEUU). La versión Open Source puede descargarse libremente desde www.rstudio.com:

RstudioWeb

RstudioWeb


En los tres últimos años ha experimentado un notable desarrollo y se ha convertido, de facto, en la GUI por excelencia para R. Dispone de versiones (idénticas en su funcionamiento) para Linux, Mac y Windows.


La interfaz de Rstudio permite un acceso más cómodo a la edición de código, los resultados, los gráficos, la descarga de librerías, los objetos en memoria, etc. Además permite generar muy fácilmente informes con los procedimientos y resultados de nuestros análisis en varios formatos (html, pdf y word).


Rstudio

Rstudio



Ni Rstudio ni las GUI estándar de R cuentan con ningún menú para el acceso a procedimientos estadísticos. Es el usuario el que debe escribir un “script” (un programa) en el que encadene los comandos necesarios para llevar a cabo el análisis que se propone realizar.

Normalmente un script se estructura en varias secciones (no necesariamente en este orden):

  • Cabecera: donde se cargan las librerías que se van a utilizar y el usuario define sus propias funciones (si las necesita).

  • Lectura de datos: se define el directorio de trabajo y se cargan los datos, bien directamente declarándolos en el propio script, o importándolos desde uno o varios archivos externos.

  • Procesamiento de datos: transformaciones de los datos si se requiere, asignación de etiquetas, identificación de valores perdidos, etc.

  • Aplicación de procedimientos estadísticos.

  • Generación de informe de resultados.



La siguiente captura de pantalla muestra un script muy simple que declara los valores observados de dos variables x e y en sendas muestras de tamaño 10 y realiza un t-test:

ejemplo t-test


Mediante sistemas basados en menús.

Rcommander:

RCommander] es una interfaz gráfica desarrollada originalmente por John M. Fox en la Universidad McMaster en Canadá para sus alumnos de psicología, y que rápidamente fue adoptada en otros ámbitos por su facilidad de uso. Esta interfaz cuenta con menús desplegables para el acceso a los procedimientos estadísticos. RCommander se caracteriza por ser ampliable, esto es, se le pueden añadir menús nuevos o complementar los que ya tiene. Resulta una alternativa interesante para usuarios esporádicos de R que se limiten a hacer análisis estadísticos estándar.

RCommander

RCommander



DeduceR

Deducer es otra interfaz para R con un sistema de menús para el acceso a los métodos estadísticos que permite que los no expertos en R puedan llevar a cabo análisis estadísticos con facilidad. Asimismo pretende ayudar a los usuarios expertos simplificando algunas tareas complejas de forma que se puedan realizar con unos pocos clicks de ratón. El sistema de menús de DeduceR se ha construido intencionadamente de forma que sea muy similar a SPSS.


Deducer en Windows:


Deducer Windows

Deducer en Mac:


Deducer Mac



Rattle

Rattle es otra interfaz para R muy centrada en el data mining. Dispone de un sistema de menús y pestañas que permite acceder a los datos, explorarlos, ajustar modelos, hacer tests de significación, …


Rattle


Jamovi

Jamovi Interfaz (por ahora) muy elemental para llevar a cabo algunos procedimientos implementados en R: exploración (gráficos y tablas básicos), t-test, anova, regresión. Se encuentra en desarrollo y planea incluir módulos para análisis estadísticos más sofisticados. No es necesario saber R para utilizar esta interfaz, ya que se maneja completamente a través de un sistema de menús.


Aquí un video del funcionamiento de esta aplicación




BlueSky:

BlueSky es otra interfaz para ejecutar análisis estadísticos con R sin saber R. Está desarrollada por la empresa BlueSky Statistics que ofrece una versión open source de uso gratuito y una versión de pago, que tiene soporte telefónico y atención individualizada (de momento en inglés). Sólo funciona en Windows.




Radiant

Radiant Interfaz para R basada en un navegador; se ejecuta desde Chrome, Firefox y otros navegadores. Contiene menús en los que elegir diversos procedimientos estadísticos. Aunque su orientación principal es hacia análisis estadístico de datos económicos, puede utilizarse con cualquier tipo de datos. Al igual que la aplicación anterior, Radiant se encuentra en pleno desarrollo y se actualiza constantemente. No necesario saber R para manejar esta aplicación.


Aquí un video del funcionamiento de esta aplicación





¿Cuál es la mejor forma de trabajar con R?

Depende:

  • Si sólo se realizan análisis estadísticos de forma esporádica, y estos análisis corresponden a los procedimientos más “tradicionales”, puede ser suficiente con cualquiera de los sistemas basados en menús (particularmente Rcommander o DeduceR).

  • Si el usuario desea:

    • Ser capaz de manipular sus datos, con entera libertad para transformarlos, agregarlos, desagregarlos, capturarlos “en tiempo real” desde distintas aplicaciones.

    • Utilizar librerías con procedimientos novedosos, o que no están incluídos en los menús de los sistemas citados (téngase en cuenta que hay casi 6000 librerías en R. Es imposible construir un sistema de menús que las incluya a todas).

    • Ser capaz de utilizar en el futuro procedimientos estadísticos que aún están en desarrollo, y que casi seguramente terminarán implementándose en R.

    • Ser capaz de aplicar los procedimientos que, cada vez con mayor frecuencia, se implementan para acompañar a libros de estadística (u otras disciplinas) que se apoyan en R.

    • Elaborar sus propios procedimientos, programándolos.

    • Elaborar informes o artículos que incluyan texto, datos, gráficos, funciones y resultados.

entonces deberá utilizar Rstudio y desarrollar sus propios scripts. Esta vía es más compleja, pero con diferencia, mucho más productiva a medio-largo plazo.



Para principiantes en R: el gran problema al que se enfrentan los principiantes es el desconocimiento del lenguaje y, por ende, de los comandos disponibles para la entrada de datos y la ejecución de procedimientos estadísticos. Una estrategia útil de trabajo es la siguiente:

  1. Aprender los fundamentos básicos de la sintaxis de R. R es un lenguaje y como todo lenguaje tiene sus componentes y su gramática. Los componentes son las clases de objetos que maneja R y la gramática es el conjunto de reglas sintánticas que permiten la manipulación de tales objetos a través del uso de funciones.

  2. Aprender las “palabras” del lenguaje: ¿qué palabras hay que utilizar para leer unos datos que están en excel, para llevar a cabo un análisis de la varianza o ajustar un modelo de regresión? Para ello:

    • podemos usar algún diccionario que nos resulte cómodo: una guía de referencia, alguna página web como Rdocumentation o Quick-R

    • podemos utilizar alguna interfaz con menús como Rcommander o DeduceR. Ambas generan el script de código que lleva a cabo el procedimiento que seleccionemos a través del menú. Mirando el script descubrimos qué comandos ha utilizado R para realizar esta tarea. Podemos guardar ese script, añadirle comentarios y ejecutarlo/reejecutarlo cuantas veces necesitemos desde la consola de R o desde Rstudio.

  3. A medio plazo, veremos que nuestro conocimiento de R ha aumentado lo suficiente como para poder usar el programa con cierta fluidez, incorporando funciones de distintos paquetes e incluso siendo capaces de preparar funciones “a medida” para nuestros problemas.





En cualquier caso voy a seguir utilizando otro paquete estadístico, ¿merece la pena el esfuerzo de aprender R?

. Como ya hemos señalado más arriba, R incorpora muchos más procedimientos estadísticos que ningún otro de los paquetes estadísticos del mercado; además los nuevos procedimientos estadísticos se incorporan a R antes que a ningún otro programa por lo que solo estarán disponibles en R.

Además, de hecho, SPSS ha decidido integrar R:


SPSS-R


También SAS:


SAS-R


Y Statistica:


Statistica-R


Por tanto, aunque utilicemos otro software, en algún momento necesitaremos R.





¿Se usa R fuera de la universidad?

La utilización de R se incrementa constantemente, no sólo en el mundo académico sino también en el empresarial. A medida que R vaya incrementando su presencia en la empresa, cabe esperar que se incremente también la demanda de profesionales que sepan utilizar este programa. Por ello la formación en R comienza a resultar imprescindible en cualquiera que tenga que aplicar profesionalmente la estadística.

Ya en la actualidad son numerosas las demandas de empleo que requieren formación en R (todas fuera de España):

Jobs for R-Users
R Job Listings
Chanalytics Research
Open Analytics
conclusive Analytics
Blue Crest Capital
BASF Waltham Pet Nutrition
Anna Freud Center
Crescendo Bioscience
Ecohealth Alliance
Mango Solutions
Elecciones EEUU, 2012



Además empiezan a aparecer empresas que ofrecen servicios de gestión y mantenimiento de R en el ámbito empresarial. Ello facilita que muchas empresas que hasta ahora venían utilizando SAS, SPSS u otros paquetes de software comercial, migren a R ya que ahora empiezan a encontrar atención y soporte para los distintos problemas que se plantean en el día a día. Como ejemplos podemos citar a:

  • Revolution analytics: esta empresa ofrece una versión de R “con esteroides” que permite gestionar bases de datos más grandes, programación distribuída en diversos ordenadores, etc. Una pequeña historia de esta empresa aquí. Esta empresa fue adquirida por Microsoft en 2016 y ahora se denomina Microsoft-R.

  • Eoda: empresa radicada en Alemania especializada en la migración de SPSS o SAS a R; ofrece además servicios de consultoría, formación y desrrollo de software “a medida”

  • Teradata: Nota de prensa



¿Como puedo seguir aprendiendo R?

  • Asistiendo a cursos, presenciales u online. En la actualidad, numerosas plataformas de enseñanza online ofrecen cursos de R, o cursos de estadística que emplean R como herramienta para el análisis de datos:



  • Estando al día de las novedades que se producen en el mundo de R: R-bloggers


  • Existe una comunidad de usuarios de R muy activa, en la que participan estadísticos de renombre, que se ha organizado en grupos de usuarios, en listas de correo, etc. Es muy fácil encontrar ayuda sobre R en la red a través de estas comunidades.


  • Sobre todo, ¡usando R!





¿Debo citar R si lo uso en mis trabajos o publicaciones?

¡SI!. R es software libre, y como tal, tanto el programa principal como las librerías disponibles pueden descargarse e instalarse sin coste económico. Los autores no cobran por el trabajo que supone desarrollar y mantener actualizado el programa. Es por ello que, cuando menos, si hemos utilizado R y algunas de sus librerías en los trabajos que publicamos debemos citarlo en las referencias. El comando citation() proporciona la forma correcta de citar R, en modo de texto plano (para incluir en documentos Word o similares) o en formato .bib para incluir en documentos latex:

citation()
## 
## To cite R in publications use:
## 
##   R Core Team (2018). R: A language and environment for
##   statistical computing. R Foundation for Statistical Computing,
##   Vienna, Austria. URL https://www.R-project.org/.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {R: A Language and Environment for Statistical Computing},
##     author = {{R Core Team}},
##     organization = {R Foundation for Statistical Computing},
##     address = {Vienna, Austria},
##     year = {2018},
##     url = {https://www.R-project.org/},
##   }
## 
## We have invested a lot of time and effort in creating R, please
## cite it when using it for data analysis. See also
## 'citation("pkgname")' for citing R packages.

Para citar una librería particular se usa citation("nombre-librería"). Por ejemplo, para citar el paquete nlme:

citation("nlme")
## 
## Pinheiro J, Bates D, DebRoy S, Sarkar D, R Core Team (2018).
## _nlme: Linear and Nonlinear Mixed Effects Models_. R package
## version 3.1-137, <URL: https://CRAN.R-project.org/package=nlme>.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {{nlme}: Linear and Nonlinear Mixed Effects Models},
##     author = {Jose Pinheiro and Douglas Bates and Saikat DebRoy and Deepayan Sarkar and {R Core Team}},
##     year = {2018},
##     note = {R package version 3.1-137},
##     url = {https://CRAN.R-project.org/package=nlme},
##   }





¿Tiene R presencia en las redes sociales.?


Muchísima. R tiene actualmente una fuerte presencia en las redes sociales, y participar en ellas es la mejor manera de mantenerse al día con R.

Blogs


  • R-bloggers: es un agregador de blogs que se actualiza constantemente. La manera más rápida de saber “qué hay de nuevo”. Rbloggers tiene también página en facebook (https://www.facebook.com/rbloggers), y cuenta en twitter (@rbloggers).

  • Comunidad R-Hispano: web de la asociación de usuarios de R en español.


¿Como estar al día con las actualizaciones de R?


R se actualiza un par de veces al año. En cualquier caso, en lo que suele ser más difícil estar al día no es tanto en la actualización del programa R en sí, sino en su ecosistema de librerías. La velocidad con que se construyen nuevas librerías en R es muy rápida y es muy difícil saber qué nuevas librerías hay, si resultan de nuestro interés, o incluso si se han producido mejoras importantes en librerías “antiguas”.

En realidad la única forma de estar al día es consultando con cierta periodicidad los sitios web en que se ofrecen noticias sobre R (como R-bloggers) o suscribirse a grupos de R en Google+, Facebook o Twitter. Un sitio interesante que conviene también visitar periódicamente para estar al día es awesome R. Es un sitio donde se señalan las novedades más importantes que se producen en el entorno R cada año y donde, de manera ordenada, se presentan los paquetes imprescindibles según el tipo de análisis que queramos realizar.





¿Puedo utilizar R sin instalarlo en el ordenador?

Recientemente se han puesto en marcha algunas plataformas web que permiten ejecutar R directamente on-line, sin necesidad de descargarse e instalar el programa. Estas opciones resultan útiles para la “programación social”, la compartición rápida de código entre colaboradores, o simplemente para ejecutar R desde una tablet o un teléfono móvil.

  • R-fiddle: dispone incluso de una app para Chrome, que facilita el acceso inmediato desde este navegador.

  • StatAce: tiene una orientación más profesional; dispone de planes de pago para alquilar recursos de diferente capacidad, escalables según nuestras necesidades.








Adenda: ¿puede R sustituir a Matlab?

Depende:

  • R y Matlab son lenguajes de programación multipropósito. El diseño de R es algo más moderno que el de Matlab, y la orientación a objetos le confiere ciertas ventajas. El uso de R a través de la interfaz que proporciona Rstudio no tiene nada que envidiar a la interfaz que ofrece Matlab.

  • Prácticamente cualquier programa que pueda implementarse en Matlab, puede implementarse también en R, con una sintaxis muy similar. En R for matlab users o en Matlab/R reference pueden encontrarse un listado de funciones en Matlab y su equivalente en R. Existe además una librería de R (la librería matlab) que implementa en R funciones específicas de Matlab.

  • El problema principal para los usuarios habituales de Matlab es la disposición de toolboxes. R dispone, como hemos dicho, de numerosas librerías; algunas, incluso, son transposiciones de toolboxes de Matlab, como la librería Signal, pero hay muchas otras que no tienen equivalente en R, en particular Simulink o la Optimization toolbox. Asimismo muchas compañías de hardware proporcionan interfaces en Matlab -y no en R- para la captura de datos en tiempo real.

  • El usuario habitual de Matlab dispone de mucho código generado a través del tiempo que puede reutilizar en nuevos proyectos -del mismo modo que el usuario habitual de R reutiliza el código que ha generado. El paso de Matlab a R puede exigir la reescritura de muchas piezas de código.





© 2016 Angelo Santana, Carmen N. Hernández, Departamento de Matemáticas   ULPGC