La Red de Conocimientos Pedagógicos - Conocimientos sobre estudiar en el extranjero - Cuatro razones por las que debes aprender el lenguaje R para el análisis de datos.

Cuatro razones por las que debes aprender el lenguaje R para el análisis de datos.

Cuatro razones por las que debes aprender el lenguaje R para el análisis de datos.

r es un lenguaje de programación flexible diseñado para facilitar el análisis exploratorio de datos, pruebas estadísticas clásicas y gráficos avanzados. r tiene una biblioteca de paquetes de datos rica y en constante expansión y está a la vanguardia de las estadísticas, el análisis de datos y la minería de datos. r ha demostrado ser una herramienta útil en el creciente campo del big data y se ha integrado en varios paquetes de software comerciales, como IBM SPSS? ¿Qué pasa con InfoSphere? y Matemática.

Este artículo proporciona la perspectiva de la estadística Katherine Dalzell sobre el valor r.

¿Por qué elegir r?

r puede realizar estadísticas. Puede considerarlo un competidor de sistemas de análisis como SAS Analytics, sin mencionar paquetes más simples como StatSoft STATISTICA o Minitab. Muchos estadísticos y metodólogos profesionales del gobierno, las empresas y las industrias farmacéuticas han dedicado toda su carrera a IBM SPSS o SAS, pero nunca han escrito una línea de código R. Entonces, hasta cierto punto, la decisión de aprender y utilizar R tiene que ver con la cultura corporativa y con cómo se quiere trabajar. Utilizo una variedad de herramientas en mi práctica de consultoría estadística, pero la mayor parte de mi trabajo se realiza en R. El siguiente ejemplo ilustra por qué uso R:

R es un potente lenguaje de programación. Recientemente me pidieron que analizara los resultados de una serie de estudios. Los investigadores examinaron 65.438+0.600 artículos de investigación y codificaron su contenido según múltiples criterios. En realidad, estas condiciones son una gran cantidad de condiciones con múltiples opciones y bifurcaciones. Sus datos (una vez aplanados en una hoja de cálculo de Microsoft Excel) contenían más de 8.000 columnas, la mayoría de las cuales estaban vacías. Los investigadores querían contar los totales bajo diferentes categorías y encabezados. R es un poderoso lenguaje de programación al que se puede acceder con expresiones regulares similares a Perl. para procesar texto se requiere un recurso de lenguaje de programación, y aunque SAS y SPSS proporcionan lenguajes de programación para realizar tareas inesperadas con menús desplegables, R está escrito como un lenguaje de programación, por lo que es más adecuado para este propósito. p>

r está adelantado a su tiempo. Muchos nuevos avances en estadística aparecieron primero en forma de paquetes R y luego se introdujeron en plataformas comerciales. Los datos se obtuvieron de la investigación médica. Para cada paciente, tenemos el número de. ítems de tratamiento que recomendó el médico y el número de ítems que realmente recordó el paciente, esto se conoce desde la década de 1950, pero el proceso de estimación que relaciona este modelo con las variables de interés suele surgir recientemente. mediante ecuaciones de estimación general (GEE), pero el método GEE es asintótico y supone un amplio rango de muestreo. Quiero un modelo lineal generalizado con R beta-binomial. Un paquete R reciente estima este modelo: betabinom de Ben Bolker.

No existe documentación integrada para R. El sistema de publicación de documentos LaTeX significa que se pueden incrustar resultados estadísticos y gráficos de R en los documentos publicados. Esto no es adecuado para todos, pero si desea llevar un libro asincrónico sobre análisis de datos. , o simplemente no quiero copiar los resultados a Para documentos de procesamiento de textos, el camino más corto y elegante es a través de R y LaTeX

Como propietario de una pequeña empresa, me gusta la especialización gratuita de R, incluso para. En empresas más grandes, es bueno saber que puedes ascender a alguien de manera temporal y tenerlo sentado en una estación de trabajo usando software de análisis de última generación.

¿Qué es R y para qué sirve? ?

Como lenguaje de programación, R es similar a muchos otros lenguajes. Cualquiera que haya escrito código encontrará mucho en R. Lo que hace que R sea especial es la filosofía estadística que soporta. Análisis exploratorio de datos

Definición de 140 caracteres: R es una implementación de código abierto de S, un entorno de programación para análisis de datos y gráficos.

Las computadoras siempre son buenas para los cálculos. y depurar un programa para ejecutar el algoritmo que desea. Pero en las décadas de 1960 y 1970, las computadoras no eran buenas para mostrar información, especialmente gráficos.

La tendencia de estas técnicas a limitarse a la incorporación de la teoría estadística significa que la práctica estadística y la formación de los estadísticos se centran en la construcción de modelos y la prueba de hipótesis. Un mundo hipotético es aquel en el que los investigadores formulan una hipótesis (normalmente agrícola), realizan un experimento bien diseñado (en una estación agrícola), completan el modelo y luego lo prueban. Los programas basados ​​en hojas de cálculo y controlados por menús, como SPSS, reflejan este enfoque. De hecho, las primeras versiones de SPSS y SAS Analytics incluían subrutinas que podían llamarse desde un programa (Fortran u otro) para completar y probar modelos en la caja de herramientas del modelo.

En este marco de la teoría de la estandarización y la penetración, John Tukey propuso el concepto de análisis exploratorio de datos (EDA), que es como un guijarro golpeando un techo de cristal. Hoy en día, es difícil imaginar el análisis de un conjunto de datos sin utilizar diagramas de caja para verificar la asimetría y los valores atípicos, o diagramas de cuantiles para verificar la normalidad de los residuos del modelo lineal. Estas ideas fueron desarrolladas por Tukey y ahora se introducen en cualquier curso de introducción a la estadística. Pero este no es siempre el caso.

EDA no es tanto una teoría sino un método. Este enfoque es inseparable de la siguiente regla general: siempre que sea posible, se deben utilizar gráficos para identificar características de interés.

El análisis es incremental. Pruebe el siguiente patrón; complete otro modelo según los resultados.

Utilice gráficos para comprobar los supuestos del modelo. La etiqueta tiene un valor atípico.

Utilizar métodos razonables para evitar violaciones de los supuestos distributivos.

El enfoque de Tukey provocó una nueva ola de métodos gráficos y estimaciones sólidas. También inspira el desarrollo de nuevos marcos de software que sean más adecuados para enfoques exploratorios.

El lenguaje fue desarrollado por John Chambers y sus colegas en Bell Labs y se utiliza como plataforma para análisis estadístico, especialmente Tukey sort. La primera versión (para uso interno en Bell Labs) se desarrolló en 1976, pero no fue hasta 1988 que se produjo una versión similar a su forma actual. En ese momento, el idioma también estaba disponible para usuarios fuera de Bell Labs. Cada aspecto del lenguaje se ajusta al "nuevo modelo" de análisis de datos:

s es un lenguaje interpretado que se ejecuta dentro de un entorno de programación. La sintaxis de S es muy similar a la de C, pero se omite la parte difícil. Por ejemplo, s se encarga de la gestión de la memoria y las declaraciones de variables para que los usuarios no tengan que escribir o depurar estos aspectos. La baja sobrecarga de programación permite a los usuarios realizar rápidamente numerosos análisis en el mismo conjunto de datos.

Desde el principio, S fue diseñado teniendo en mente la creación de gráficos avanzados y puede agregar funcionalidad a cualquier ventana de gráficos abierta. Puede resaltar fácilmente puntos de interés, consultar sus valores, suavizar los diagramas de dispersión y más.

La orientación a objetos se añadió a S en 1992. En los lenguajes de programación, los objetos construyen datos y funciones para satisfacer la intuición del usuario. El pensamiento humano siempre está orientado a objetos, especialmente el razonamiento estadístico. Los estadísticos trabajan con tablas de frecuencia, series temporales, matrices, hojas de cálculo de diversos tipos de datos, modelos y más. En cada caso, los datos sin procesar tienen propiedades y valores esperados: por ejemplo, una serie temporal contiene observaciones y puntos temporales. Además, para cada tipo de datos, se deben obtener estadísticas y planes estándar. Para una serie de tiempo, podría dibujar un plan de serie de tiempo y un gráfico asociado; para un modelo ajustado, podría dibujar los valores ajustados y los residuos. La creación de objetos es compatible con todos estos conceptos y puede crear más clases de objetos según sea necesario. Los objetos hacen que sea muy fácil conceptualizar un problema y el código para implementarlo.

Un lenguaje con actitud: S, S-Plus y prueba de hipótesis

El lenguaje S original concedía gran importancia al EDA de Tukey y ha llegado al punto en que EDA solo se puede ejecutar. en S pero no en otras operaciones. Este es un lenguaje con actitud. Por ejemplo, si bien S ofrece algunas funciones internas útiles, carece de algunas de las características más obvias que le gustaría que tuviera un software estadístico. No existe ninguna funcionalidad para realizar pruebas de muestreo doble ni ninguna prueba de hipótesis real. Pero Tukey cree que las pruebas de hipótesis a veces son correctas.

En 1988, Statistical Sciences en Seattle obtuvo la licencia de S, y una versión mejorada del lenguaje (llamada S-Plus) fue portada a DOS y más tarde a Windows. medio. Después de darse cuenta realmente de lo que quieren los clientes, Statistical Science agregó funciones estadísticas clásicas a S-Plus. Agrega la capacidad de realizar análisis de varianza (ANOVA), pruebas y otros modelos.

Dada la naturaleza orientada a objetos de S, el resultado de cualquier modelo ajustado es en sí mismo un objeto S. Las llamadas a funciones adecuadas proporcionarán los valores ajustados, los residuos y los valores p para la prueba de hipótesis. Los objetos modelo pueden incluso contener pasos computacionales intermedios del análisis, como la descomposición QR de la matriz de diseño (donde Q es la diagonal y R es la esquina superior derecha).

¡Existe un paquete R que puede realizar esta tarea! También existe una comunidad de código abierto.

Casi al mismo tiempo que se lanzó S-Plus, Ross Ihaka y Robert Gentleman de la Universidad de Auckland en Nueva Zelanda decidieron intentar escribir un intérprete. Eligieron el lenguaje S como modelo. Poco a poco el proyecto fue tomando forma y ganando apoyo. Lo llamaron r.

r es la implementación de S y contiene más modelos desarrollados por S-Plus. A veces las mismas personas desempeñan los papeles. r es un proyecto de código abierto con licencia GNU. Sobre esta base, R continúa desarrollándose, principalmente agregando paquetes. Un paquete de R es una colección de conjuntos de datos, funciones de R, documentación y complementos dinámicos de C o Fortran que se pueden instalar juntos y a los que se puede acceder desde una sesión de R. Los paquetes de R agregan nuevas funciones a R y, a través de estos paquetes, los investigadores pueden disfrutar fácilmente de métodos computacionales entre sus pares. Algunos paquetes tienen un alcance limitado, otros representan todo el campo de la estadística y otros incluyen los últimos avances tecnológicos. De hecho, muchos avances en estadística aparecieron por primera vez en forma de paquetes R y luego se aplicaron al software comercial.

En el momento de escribir este artículo, hay 4701 paquetes R en el sitio de descarga de R CRAN. De estos, se añadieron seis erres sólo ese día. Todo tiene un paquete R correspondiente, o eso parece.

¿Qué sucede cuando uso R?

Nota: Este artículo no es un curso de R. Los siguientes ejemplos solo intentan darle una idea de una sesión de R.

¿Hay binarios disponibles para Windows, Mac OS X y varios Linux? Distribución. El código fuente también puede ser compilado por las propias personas.

¿En Windows? , el instalador agrega r al menú de inicio. Para iniciar R en Linux, abra una ventana de terminal y escriba R cuando se le solicite. Debería ver una pantalla similar a la Figura 1.

Figura 1. r workspace

Escriba un comando cuando se le solicite y r responderá.

En este punto, en un entorno real, puede leer datos de un archivo de datos externo en un objeto R. r puede leer datos de archivos en una variedad de formatos, pero para este ejemplo estoy usando los datos de Michelson del paquete MASS. Este paquete viene con el texto icónico Modern Applied Statistics con Venables y Ripley's S-Plus (ver Recursos). Michelson contiene los resultados de los populares experimentos de Michelson y Morley que miden la velocidad de la luz.

Los comandos proporcionados en el Listado 1 pueden cargar el paquete MASS y obtener y ver datos de Michelson. La Figura 2 muestra estos comandos y las respuestas de r. Cada línea contiene una función R cuyos argumentos están entre corchetes ([]).

Listado 1. Iniciar periodo de descanso

2+2#R puede ser una calculadora. La respuesta correcta para r es 4.

library("MASS") #Convierte funciones y conjuntos de datos de

#Calidad del paquete, junto con estadísticas aplicadas modernas en S

data(michelson) # Copie el conjunto de datos michelson al espacio de trabajo.

ls() #Listar el contenido del espacio de trabajo. Los datos de Michelson están ahí.

head(michelson) #Muestra las primeras filas del conjunto de datos.

#La columna de velocidades incluye las estimaciones de Michelson y Morley

#La velocidad de la luz menos 299.000 en kilómetros por segundo.

#Michelson y Morley realizaron cinco experimentos, 20 veces cada uno.

#El conjunto de datos contiene variables indicadoras para experimentos y ejecuciones.

help(michelson) # Llame a la pantalla de ayuda para describir el conjunto de datos.

Figura 2. Inicio de sesión y respuesta de R

Ahora veamos los datos (ver Listado 2). El resultado se muestra en la Figura 3.

Diagrama de bloques del Listado 2.

raro

#Boxplot básico

con(michelson, boxplot(Speed ​​~ Expt))

#Puedo agregar colores y etiquetas. También puedo guardar los resultados en un objeto.

Michelson.bp = with(Michelson, boxplot(Velocidad ~ Expt, xlab="Experimento ", las=1,

ylab="Velocidad de la luz -299,000 metros/segundos",

main= "Experimento Michelson-Morley",

col="slateblue1 ")

#En esta escala, la velocidad actual de luz La estimación es 734,5

#Agregue una línea horizontal para resaltar el valor

abline(h=734,5, lwd=2, col = "purple")#Agregue velocidad de la luz moderna

p>

Michelson y Morley parecen estar sobreestimando sistemáticamente la velocidad de la luz

Figura 3.

Me siento así. satisfecho, puedo guardar todos los comandos en una función de R

Una función simple en el Listado 3

MyExample = function(){

Biblioteca (pública).

Datos (Michelson)

Michelson.bw = with(Michelson, boxplot(Velocidad ~ Expt, xlab="Experimento ", las=1,

ylab= "Velocidad de la luz -299000 metros/segundo", main= "Experimento Michelson-Morley",

col="slateblue1 ")

abline(h=734.5 , lwd=2, col="purple ")

}

Este sencillo ejemplo demuestra varias características importantes de R:

Guardar los resultados: el diagrama de caja( ) devuelve algunas estadísticas y gráficos útiles. Estos resultados se pueden guardar en un objeto R mediante declaraciones de negación como michelson.bp =… y extraerse cuando sea necesario. Los resultados de cualquier declaración de asignación están disponibles durante toda la sesión de R y pueden ser el objeto de. análisis adicional. La función de diagrama de caja devuelve una matriz de datos estadísticos (mediana, cuartiles, etc.) para trazar diagramas de caja del número de elementos en cada diagrama de caja y los valores atípicos (que se muestran como círculos abiertos en el gráfico de la Figura 3). /p>

Estadísticas de la función de diagrama de caja

Lenguaje de fórmulas: R (y S) tiene un lenguaje conciso para expresar modelos estadísticos. El código en los parámetros Velocidad ~ Expt le dice a la función. para dibujar un diagrama de caja de velocidad en cada nivel Expt (número de experimentos) Para realizar un análisis de varianza para probar si existe una diferencia significativa en la velocidad en cada experimento, puede usar la misma fórmula: lm(Velocidad ~. Exp.). El lenguaje de fórmulas puede expresar una variedad de modelos estadísticos, incluidos efectos cruzados y anidados, así como factores fijos y aleatorios.

Funciones r definidas por el usuario: este es un lenguaje de programación.

r ha entrado en el siglo XXI.

Los métodos exploratorios de análisis de datos de Tukey se han convertido en un curso habitual. Nosotros enseñamos este método y los estadísticos lo utilizan. r apoya este enfoque, lo que explica por qué sigue siendo tan popular. La orientación a objetos también ayuda a R a mantenerse actualizado, ya que las nuevas fuentes de datos requieren nuevas estructuras de datos para realizar el análisis. ¿Círculo de información? Streams ahora admite un tipo de análisis de datos R diferente al que imaginó John Chambers.

r e InfoSphere Streams

InfoSphere Streams es una plataforma informática y un entorno de desarrollo integrado para analizar datos de alta velocidad obtenidos de miles de fuentes. El contenido de estos flujos de datos suele estar no estructurado o semiestructurado. El propósito del análisis es detectar patrones cambiantes en los datos y guiar la toma de decisiones en función de eventos que cambian rápidamente.

SPL (el lenguaje de programación de InfoSphere Streams) organiza datos a través de un ejemplo que refleja la naturaleza dinámica de los datos y la necesidad de un análisis y una respuesta rápidos.

Estamos lejos de las hojas de cálculo y los archivos planos normales para el análisis estadístico clásico, pero R puede manejarlos muy bien. A partir de la versión 3.1, las aplicaciones SPL pueden transferir datos a R, aprovechando la amplia biblioteca de paquetes de R. InfoSphere Streams admite R mediante la creación de objetos R apropiados para recibir información contenida en tuplas SPL, la estructura de datos básica de SPL. Por lo tanto, los datos de InfoSphere Streams se pueden pasar a R para su posterior análisis y los resultados se pueden enviar de vuelta a SPL.

¿Requiere hardware convencional?

Ejecuté este ejemplo en una netbook Acer con Crunchbang Linux. r No se requiere maquinaria pesada para realizar análisis de tamaño pequeño a mediano. Durante 20 años, la gente creyó que R era lento porque era un lenguaje interpretado y el tamaño de los datos que podía analizar estaba limitado por la memoria de la computadora. Esto es cierto, pero generalmente es irrelevante para las máquinas modernas a menos que la aplicación sea muy grande (grandes datos).

Desventajas de r

Para ser justos, hay algunas cosas que R no puede hacer bien o no puede hacer en absoluto. No todos los usuarios son aptos para utilizar r:

r no es un almacén de datos. La forma más sencilla de ingresar datos en R es ingresar los datos en otro lugar y luego importarlos a R. La gente ha intentado agregar una interfaz de hoja de cálculo a R, pero aún no lo han logrado. La falta de funcionalidad de hoja de cálculo no sólo afecta la entrada de datos, sino que también dificulta la visualización de datos en R de forma tan intuitiva como en SPSS o Excel.

r Dificultar las tareas ordinarias. Por ejemplo, en la investigación médica, lo primero que se hace con los datos es calcular estadísticas generales sobre todas las variables y enumerar las faltas de respuesta y los datos faltantes. Esto se puede hacer en SPSS con sólo tres clics, pero R no tiene una función incorporada para calcular esta información tan obvia y mostrarla en forma de tabla. Puedes escribir código muy fácilmente, pero a veces solo quieres señalar la información que deseas calcular y hacer clic con el mouse.

La curva de aprendizaje de R es extraordinaria. Los principiantes pueden abrir una plataforma de estadísticas basada en menús y obtener resultados en minutos. No todo el mundo quiere ser programador y luego analista, y tal vez no todo el mundo lo necesite.

r es de código abierto. La comunidad de R es grande, madura y activa. Sin duda, R es un proyecto de código abierto relativamente exitoso. Como se mencionó, R se ha implementado durante más de 20 años y el lenguaje S existe incluso más tiempo. Es un concepto probado y un producto probado y probado. Pero como ocurre con cualquier producto de código abierto, la confiabilidad es inseparable de la transparencia. Confiamos en su código porque podemos comprobarlo nosotros mismos y otros pueden comprobarlo e informar errores. Esto difiere de los proyectos empresariales, que realizan pruebas comparativas y validan su software ellos mismos. Para los paquetes R que se utilizan con poca frecuencia, no hay motivos para suponer que realmente producirán resultados correctos.

Conclusión

¿Necesito aprender R? Quizás no; necesidad es una palabra muy emotiva. Pero, ¿es R una valiosa herramienta de análisis de datos? Por supuesto que lo es. Este lenguaje pretende reflejar la forma en que piensan y trabajan los estadísticos. Consolidar buenos hábitos y analizar racionalmente. Para mí es una herramienta que me funciona.