15 votos

¿Cuál es un buen enfoque para enseñar R en un laboratorio de informática?

Ha habido varias buenas preguntas y conjuntos de respuestas sobre libros introductorios o enfoques para el aprendizaje de R, por ejemplo aquí y aquí . Pero tengo un problema ligeramente diferente: la mejor manera de impartir una sesión de una hora de duración (o varias sesiones de este tipo) en un laboratorio de informática para que la gente se inicie en R, se familiarice con su enfoque básico, etc.

Mi plan actual sería trabajar efectivamente a través de la introducción capítulo / s de algo como SimpleR de Verzani y luego introducir un conjunto de datos familiar, pero ¿hay algún otro enfoque que la gente ha encontrado útil? Por ejemplo, ¿es bueno introducir datos reales de inmediato, o abordar las cuestiones de manera más abstracta? ¿Debería repasar exhaustivamente cómo utilizar los corchetes, o entusiasmar a la gente con ejemplos de gráficos de celosía?

El público al que me dirijo está familiarizado con la estadística (aunque no es un experto) y es un usuario competente de SPSS; no está familiarizado con los lenguajes de programación más allá del tipo de macros y scripts que se utilizan en SPSS y cosas similares.

Se agradecerá cualquier consejo o referencia a planes de lecciones. Sin embargo, no quiero duplicar las muchas y buenas listas de material en línea que introducen R - estrictamente referencias a la pregunta de instrucción presencial.

7voto

Ted Puntos 854

Bien, esta es mi propia respuesta hasta el momento sobre lo que creo que haría que la gente se iniciara y se motivara a aprender algo más (estoy tratando de que dejen de usar SPSS, que literalmente no puede hacer algunas de las cosas que necesitamos, por ejemplo, el análisis de encuestas complejas, al menos sin comprar más módulos, cosa que me niego a hacer).

Al final de la primera sesión deberías ser capaz de hacerlo:

Básico

  • Utilice la interfaz para realizar cálculos sencillos (utilice R como una calculadora)
  • Inicie, guarde y cargue una ventana script y utilícela eficazmente
  • Crear y eliminar objetos en su espacio de trabajo
  • Vea cuál es su carpeta de trabajo
  • Entender cómo funciona la carpeta P:/R/yourid y qué hace el guardar un espacio de trabajo al salir
  • Cargar una imagen de un espacio de trabajo que incluya a XXX (nuestros datos más utilizados)
  • Enumerar los objetos de la memoria
  • Enumerar los nombres de las columnas (variables) de un marco de datos
  • Imprimir un objeto en la pantalla
  • Adjuntar y quitar un marco de datos
  • Saber qué se entiende por: objeto, función, argumento (de una función), espacio de trabajo, vector, marco de datos, matriz, numérico, factor
  • Saber buscar ayuda sobre una función
  • Utilice el botón ?? para encontrar una lista de funciones relevantes
  • Dónde ir en la web y en nuestros libros locales y LAN para obtener más recursos
  • comprender lo suficiente los fundamentos de R como para participar en sesiones de laboratorio sobre técnicas estadísticas específicas

Manipulación de datos

  • Crear un vector de números utilizando el operador :
  • Hacer una tabla de recuentos para una variable
  • Haga una tabla cruzada de recuentos para dos variables
  • Crear un nuevo objeto (por ejemplo, una de las tablas anteriores) para su posterior manipulación
  • Transponer una matriz o tabla
  • Crear un vector de medias de una variable continua por un factor utilizando tapply()
  • Unir varios vectores mediante cbind() o data.frame()
  • Crea un subconjunto de una matriz utilizando la función []
  • Crear una transformación simple, por ejemplo, logaritmo o raíz cuadrada

Estadísticas

  • Calcular la correlación de dos variables continuas

Gráficos

  • Crear un histograma de una variable continua
  • Crear una ventana gráfica y dividirla en 2 o 4 partes
  • Crear un gráfico de línea de densidad de una variable continua
  • Crear un gráfico de dispersión de dos variables continuas
  • Añadir una línea recta a un gráfico de dispersión (vertical, horizontal o a-b)
  • Crear etiquetas para los ejes y los títulos

Al final de tres sesiones y haciendo una serie de ejercicios intermedios también deberías ser capaz:

Básico

  • Importar datos en formato SPSS o .csv
  • Elimina todos los objetos de tu espacio de trabajo para empezar de cero
  • utilizar una biblioteca de paquetes
  • Guardar una imagen del espacio de trabajo y comprender los principios básicos R y la memoria
  • Generar variables aleatorias
  • Utilice c() para crear un vector
  • Saber dónde ir para aprender nuevos métodos y técnicas

Manipulación de datos

  • Utilice aggregate() en un conjunto de datos reales, por ejemplo, el número de llegadas de visitantes por mes y país
  • Los operadores ==, != y %in%; los vectores lógicos; y su uso para subconjuntar datos
  • ifelse() y utilizarlo para crear nuevas variables
  • funciones max, min y similares y cómo funcionan con los vectores
  • Crear un vector o matriz para almacenar numerosos resultados
  • Utilizar un bucle para repetir una función similar muchas veces
  • Utilice apply() para aplicar una función a cada columna o fila de una matriz
  • Crear un factor ordenado
  • Utilice cut() para recodificar una variable numérica

Estadísticas

  • Prueba de Chi cuadrado para una tabla de contingencia
  • Versiones robustas de las correlaciones
  • Ajustar un modelo lineal a dos variables continuas, colocando los resultados en un objeto y utilizando anova(), summary() y plot() para ver los resultados
  • comprender lo suficiente sobre los modelos y su funcionamiento en R para estar preparado para aplicar sus conocimientos a una gama más amplia de tipos de modelos
  • Utiliza boot() para realizar un bootstrap sobre una función básica como cor(), mean(), o var()
  • Utilice sample() en un conjunto de datos de la vida real

Gráficos

  • Crear un gráfico de líneas de densidad de celosía de una variable continua dados diferentes niveles de un factor
  • qqnorm
  • construir un gráfico de dispersión con puntos de diferente color y carácter que muestren diferentes niveles de un factor; añadir puntos o líneas a un gráfico de dispersión existente
  • añadir una leyenda
  • dotcharts
  • errbar()
  • utilizar un bucle para dibujar varios gráficos en una página

7voto

Dillie-O Puntos 16780

Yo abogaría por un enfoque completamente diferente. He visto tutoriales de R que se enseñaban desde dos perspectivas diferentes: un enfoque de bloques de construcción, en el que se introduce a los usuarios en los conceptos fundamentales de R, y un enfoque de sorpresa y asombro, en el que se muestra a los usuarios las increíbles capacidades de R pero se les deja con relativamente poca comprensión de cómo hacer algo. Este último enfoque tiene más resonancia entre los alumnos, pero ninguno de los dos parece muy eficaz a la hora de formar usuarios.

En su lugar, yo tomaría una tarea común y relativamente sencilla en SPSS y la convertiría a R, con un poco de ingenuidad fingida por su parte - por ejemplo, siguiendo la excelente sugerencia de Xi an de buscar algunas funciones deseadas con ?? en lugar de limitarse a recordar la función correcta de memoria. Sus novatos casi seguramente convertirán los procesos existentes a medida que aprenden R, no los escribirán desde cero, así que ¿por qué no mostrarles exactamente cómo lo harían?

Un buen ejemplo podría consistir simplemente en cargar los datos, realizar algunas descripciones y sacar algunos gráficos básicos. lm() puede ser muy, muy simple y produce resultados que entenderán y podrán comparar con los resultados del SPSS, por lo que también podría ser bueno cubrirlo.

Como deberes, pídeles que intenten convertir uno de sus procesos sencillos o que carguen y exploren un conjunto de datos con el que estén muy familiarizados. Dales un poco de tiempo para que descubran dónde están fallando las cosas, y luego cubre eso en la siguiente sesión con más ejemplos de conversión. Es inevitable que surjan conceptos de la lista (mi apuesta: factores frente a vectores de caracteres, para frente a aplicar), y entonces tendrás una motivación real para tratarlos. Si no surgen ( attach ), entonces no son realmente necesarios todavía - si eso significa que sus novatos escriben un poco de código no idiomático al principio ( for en lugar de apply ), no veo el daño.

De este modo, tus alumnos pueden progresar de la misma manera que lo hacen los estudiantes de lenguas extranjeras (o, al menos, como lo hice yo): la traducción rudimentaria de expresiones sencillas provoca el deseo de expresiones más complejas, lo que provoca el deseo de una comprensión más profunda de la gramática, que finalmente conduce a la expresión idiomática. No saltes a la "gramática" demasiado pronto, y no te preocupes demasiado por enseñarles cosas que no están preguntando porque probablemente lo olvidarán de todos modos. Los consejos suaves sobre la expresión idiomática son estupendos ( for vs apply ), pero lo principal es conseguir que generen resultados y exploren por su cuenta.

2voto

Peter Puntos 1

A la lista de Peter yo añadiría:

  1. Subconjunto de marcos de datos: subconjunto por observación (por ejemplo, todas las respuestas superiores a 3), subconjunto por variable.
  2. usar sentencias ifelse (esto fue una enorme curva de aprendizaje para mí, seguí tratando de usar el tipo de sentencia if), particularmente ifelse anidado.
  3. resumir los datos en un marco de datos más pequeño utilizando el comando de agregación.
  4. aprender a utilizar el operador ==.
  5. utilizando <- en lugar de =
  6. cambiar el nombre de las variables
  7. trampas básicas de vectorización, como max(A,B) en SAS no hace lo que max(A,B) hace en R, si A es una variable en un marco de datos y B es un valor único. Para hacer el equivalente del código de SAS (y probablemente del código de SPSS), utilizo una sentencia ifelse.
  8. utilice con en lugar de adjuntar. :)

Más pensamientos: Probablemente usen COMPUTE mucho en SPSS Así pues, la cobertura de cómo hacer eso en R sería bueno. Además, cómo RECODE variables en R. Cuando usaba SPSS Creo que la mayor parte de mi trabajo "no analítico" fue utilizando esos dos comandos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X