Qual è un buon approccio all'insegnamento della R in un laboratorio informatico?


15

Ci sono state diverse buone domande e serie di risposte su libri introduttivi o approcci all'apprendimento della R, ad esempio qui e qui . Ma ho un problema leggermente diverso: il modo migliore per eseguire un'ora di sessione (o diverse sessioni di questo tipo) in un laboratorio informatico che farà iniziare le persone in R, familiarizzare con il suo approccio di base ecc.

Il mio attuale piano sarebbe di lavorare efficacemente attraverso i capitoli introduttivi di qualcosa come SimpleR di Verzani e quindi introdurre un set di dati familiare, ma c'è qualche altro approccio che le persone hanno trovato utile? Ad esempio, è utile introdurre subito dati reali o affrontare i problemi in modo più astratto? Dovrei approfondire come utilizzare le parentesi quadre o eccitare le persone con esempi di grafica reticolare?

Il mio pubblico target ha familiarità con le statistiche (sebbene non con gli esperti) e con gli utenti SPSS competenti; non ha familiarità con i linguaggi di programmazione oltre il tipo di macro e script che otterresti in SPSS e cose simili.

Eventuali suggerimenti o riferimenti a piani di lezioni sarebbero apprezzati. Tuttavia, non voglio duplicare le molte buone liste di materiale online che introducono R - rigorosamente riferimenti alla domanda istruttiva faccia a faccia.


Probabilmente dovrebbe essere un wiki della comunità, giusto?
Peter Ellis,

1
Mi sembra una buona idea. :)
Michelle,

1
Ciò che è veramente cruciale per come rispondere a questa domanda è quale sarà la tua configurazione. Se hai una sola "sessione di un'ora ... in un laboratorio informatico" ci sarà molto poco che puoi fare e avrai pochi convertiti. Se ne hai "diversi" e conoscono già abbastanza accuratamente le statistiche e la programmazione di base, puoi innescare la pompa in modo che possano andare avanti da soli ed essere entusiasti di provare, ma quest'ultimo richiede un approccio diverso. Per le persone con alcune statistiche e nessuna conoscenza di programmazione, un corso lungo un semestre sarebbe l'ideale.
gung - Ripristina Monica

Hmm, buon punto @gung, ok, l'installazione è abbastanza specifica. Sono il loro manager e quindi potrei semplicemente dire loro cosa fare. Abbiamo una sessione di quindici ore sulle abilità statistiche (molti di noi a turno presentano) che sta diventando molto più pratica e abbiamo deciso di fare molto di questo in laboratorio su macchine con dati reali. Quindi avrei dovuto specificare che il vero requisito è quello di farli conoscere abbastanza bene con R in una o due sessioni che quando facciamo cose come adattamento di modelli di regressione o guardando grafici diagnostici nelle sessioni successive non saremo completamente distratti dalle basi.
Peter Ellis,

2
@gung Un grande +1 per il tuo commento completo. Ho insegnato R per molto tempo e alla fine sono giunto a conclusioni simili: le persone che non hanno una comprensione leggera della programmazione o un prompt della riga di comando probabilmente incontreranno delle difficoltà a gestire R. Diventa peggio quando dobbiamo familiarizzare con gli studenti statistiche che usano R in poche ore ...
chl

Risposte:


7

Discuterei per un approccio completamente diverso. Ho visto tutorial di R che sono stati insegnati da due diverse prospettive: un approccio basato sui mattoni, in cui gli utenti vengono introdotti ai concetti fondamentali di R, e un approccio sconvolgente, in cui agli utenti vengono mostrate le incredibili capacità di R ma lasciate con comprensione relativamente scarsa di come fare qualsiasi cosa. Quest'ultimo risuona sicuramente più fortemente con gli alunni, ma nessuno dei due sembra molto efficace nel produrre effettivamente utenti.

Invece, prenderei un compito comune e relativamente semplice in SPSS e procederei convertendolo in R, con un po 'di finta ingenuità da parte tua - ad esempio, seguendo l'eccellente suggerimento di Xi'an di cercare alcune funzioni desiderate con ??piuttosto che semplicemente richiamando la giusta funzione dalla memoria. I tuoi principianti convertiranno quasi sicuramente i processi esistenti mentre imparano R, non li scrivono da zero - quindi perché non mostrare loro esattamente come lo faresti?

Un buon esempio potrebbe essere il semplice caricamento di dati, l'esecuzione di alcuni descrittivi e la comparsa di alcuni grafici di base. lm()può essere molto, molto semplice e produce risultati comprensibili e confrontabili con l'output SPSS, quindi potrebbe anche essere utile coprirli.

Per i compiti, fai in modo che si convertano in uno dei loro semplici processi o caricino ed esplorino un set di dati con cui hanno molta familiarità. Concedi loro un po 'di tempo uno-a-uno per capire dove stanno andando le cose, quindi copri quelli della sessione successiva con altre conversioni di esempio. I concetti della tua lista appariranno inevitabilmente (la mia scommessa: fattori vs. vettori di personaggi, per vs. domanda) - e quindi avrai una motivazione nel mondo reale per coprirli. Se non arrivano ( attach), allora non sono ancora veramente necessari - se ciò significa che i principianti scrivono un po 'di codice non idiomatico all'inizio ( foranziché apply), non vedo il danno.

In questo modo, i tuoi studenti possono progredire più o meno allo stesso modo degli studenti di lingua straniera (o almeno, come ho fatto io): la traduzione rozza di espressioni semplici stimola il desiderio di espressioni più complesse, il che provoca il desiderio di una comprensione più profonda della grammatica , che alla fine porta all'espressione idiomatica. Non saltare alla "grammatica" troppo presto e non preoccuparti troppo di insegnare loro cose che non chiedono perché probabilmente lo dimenticheranno comunque. I consigli delicati sull'espressione idiomatica sono grandi ( forvs apply), ma la cosa principale è farli generare output ed esplorare da soli.


(+1) Grazie, Matt, sembra grandi consigli. Mi piacciono particolarmente gli ultimi due paragrafi.
chl

Grazie Matt (e tutti gli altri - tutto un aiuto eccellente). Userò sicuramente il ?? avvicinarsi e farli ricreare in laboratorio e come compiti comuni compiti che fanno con altri software (SPSS e Harmoni, che è fondamentalmente un pacchetto a campi incrociati). Ho ancora bisogno di qualcosa di ragionevolmente direttiva solo per far sì che aprano la cosa e sappiano da dove cominciare (e ho modificato di conseguenza il mio piano di lezione 1) ma penso che motivare l'autoapprendimento fuori dal laboratorio sia sicuramente la strada da percorrere.
Peter Ellis,

7

OK, ecco la mia risposta finora su ciò che penso potrebbe far iniziare le persone e motivarle ad apprenderne un po 'di più (sto cercando di liberarle da SPSS, che letteralmente non può fare un po' di ciò di cui abbiamo bisogno, ad esempio un'analisi di sondaggi complessi, almeno senza acquistare più moduli che mi rifiuto di fare).

Alla fine della prima sessione dovresti essere in grado di:

Nozioni di base

  • Utilizzare l'interfaccia per eseguire calcoli semplici (utilizzare R come calcolatrice)
  • Avvia, salva e carica una finestra di script e usala in modo efficiente
  • Crea e rimuovi oggetti nell'area di lavoro
  • Vedi quale cartella è la tua cartella di lavoro
  • Scopri come funziona la cartella P: / R / yourid e cosa fa il salvataggio di un'area di lavoro all'uscita
  • Carica un'immagine di un'area di lavoro inclusa XXX (i nostri dati comunemente usati)
  • Elencare gli oggetti in memoria
  • Elencare i nomi delle colonne (variabili) in un frame di dati
  • Stampa un oggetto sullo schermo
  • Collegare e scollegare un frame di dati
  • Sapere cosa si intende per: oggetto, funzione, argomento (a una funzione), spazio di lavoro, vettore, frame di dati, matrice, numerico, fattore
  • Sapere come cercare aiuto su una funzione
  • Uso ?? per trovare un elenco di funzioni pertinenti
  • Dove andare sul Web, i nostri libri locali e LAN per ulteriori risorse
  • comprendere abbastanza le basi di R per partecipare alle sessioni di laboratorio su specifiche tecniche statistiche

Manipolazione di dati

  • Crea un vettore di numeri usando l'operatore:
  • Fai una tabella dei conteggi per una variabile
  • Esegui una tabella a campi incrociati per due variabili
  • Crea un nuovo oggetto (ad esempio una delle tabelle sopra) per ulteriori manipolazioni
  • Trasponi una matrice o una tabella
  • Crea un vettore di mezzi di una variabile continua per un fattore usando tapply ()
  • Associa diversi vettori insieme usando cbind () o data.frame ()
  • Crea un sottoinsieme di una matrice usando []
  • Crea una trasformazione semplice, ad es. Logaritmo o radice quadrata

statistica

  • Calcola la correlazione di due variabili continue

Grafica

  • Crea un istogramma di una variabile continua
  • Crea una finestra grafica e dividila in 2 o 4 parti
  • Crea un grafico a linee di densità di una variabile continua
  • Crea un diagramma a dispersione di due variabili continue
  • Aggiungi una linea retta a un diagramma a dispersione (verticale, orizzontale o ab)
  • Crea etichette per assi e titoli

Al termine di tre sessioni e facendo una serie di esercizi tra di voi dovreste anche essere in grado di:

Nozioni di base

  • Importa i dati in formato SPSS o .csv
  • Rimuovi tutti gli oggetti nell'area di lavoro per ricominciare da capo
  • utilizzare una libreria di pacchetti
  • Salvare un'immagine dell'area di lavoro e comprendere i principi di base R e la memoria
  • Genera variabili casuali
  • Usa c () per creare un vettore
  • Avere una buona idea di dove andare per imparare nuovi metodi e tecniche

Manipolazione di dati

  • Utilizzare aggregate () su un set di dati reale, ad esempio numeri di arrivi dei visitatori per mese e paese
  • Gli operatori ==,! = E% in%; vettori logici; e utilizzandoli per sottoinsieme di dati
  • ifelse () e utilizzarlo per creare nuove variabili
  • funzioni max, min e simili e come funzionano con i vettori
  • Crea un vettore o una matrice per memorizzare numerosi risultati
  • Utilizzare un ciclo per ripetere più volte una funzione simile
  • Utilizzare apply () per applicare una funzione a ciascuna colonna o riga di una matrice
  • Crea un fattore ordinato
  • Usa cut () per ricodificare una variabile numerica

statistica

  • Test del chi quadrato per una tabella di contingenza
  • Versioni robuste di correlazioni
  • Adatta un modello lineare a due variabili continue, posizionando i risultati in un oggetto e usando anova (), summary () e plot () per guardare i risultati
  • comprendere abbastanza i modelli e come funzionano in R per essere pronti ad applicare le tue abilità a una più ampia gamma di tipi di modelli
  • Utilizzare boot () per eseguire bootstrap su una funzione di base come cor (), mean () o var ()
  • Usa sample () su un set di dati di vita reale

Grafica

  • Crea un grafico a linee di densità reticolare di una variabile continua dati diversi livelli di un fattore
  • qqnorm
  • costruire un diagramma a dispersione con punti di colore e carattere diversi che mostrano diversi livelli di un fattore; aggiungere punti o linee a un diagramma a dispersione esistente
  • aggiungi una legenda
  • dotcharts
  • errbar ()
  • usando un ciclo per disegnare più grafici su una pagina

2
Data la tua configurazione, questo sembra ragionevole, ma è molto da coprire in un'ora con i neofiti. Sottolineerei costantemente le risorse a loro disposizione per costruire l'autosufficienza. In particolare, consultare il manuale R fornito con l'installazione e l'uso dei file della guida. Ad esempio, per introdurre la correlazione iniziare con la correlazione, mostrare come cercare l'elenco, quindi? Cor e mostrare come leggere e comprendere l'aiuto; insegnare a cor, hist, ecc. dalla documentazione . Non importa quanto siano intelligenti, c'è un limite con solo un'ora: devono imparare a ottenere le informazioni e risolvere i problemi da soli .
gung - Ripristina Monica

1
Penso di lavorare a circa 10 minuti a piedi da te, quindi fammi un urlo se vuoi passare qualcosa davanti a un caffè. :)
Michelle,

Non penso che sia principalmente il cosa , è il come . Si tratta di indurre gli alunni a imparare cose in parte da soli e avere a portata di mano un cheat sheet completo + alcuni compiti a casa.
Ondrej,

@Michelle - suona bene, mandami una email a peter.ellis [at] med.govt.nz
Peter Ellis,

4
Questa è una lista incredibilmente ambiziosa! Non riesco a immaginare che ti occupi di tutto questo in tre ore - non penso che sarei nemmeno in grado di dire le parole per coprire tutto questo in tre ore, e tanto meno rispondere alle domande. Ci sono alcuni concetti che vorrei saltare del tutto: aree di lavoro (preferisco non usarle - rigenerare tutto dallo script rende il codice più robusto), allegare (anche problematico, specialmente per i nuovi utenti che non capiscono gli ambienti), trasporre (banale per cercare quando ne hai bisogno) e cbind (non lo uso quasi mai).
Matt Parker,

2

All'elenco di Peter aggiungerei:

  1. frame di dati del sottoinsieme: sottoinsieme per osservazione (ad es. tutte le risposte superiori a 3), sottoinsieme per variabile.
  2. usa le istruzioni ifelse (questa è stata un'enorme curva di apprendimento per me, ho continuato a provare a usare il tipo di istruzione if), in particolare ifelse nidificato.
  3. riepilogare i dati in un frame di dati più piccolo utilizzando il comando aggregate.
  4. imparare a usare l'operatore ==.
  5. usando <- anziché =
  6. rinominare le variabili
  7. trap di vettorializzazione di base, come max (A, B) in SAS non fanno ciò che max (A, B) fa in R, se A è una variabile in un frame di dati e B è un singolo valore. Per fare l'equivalente del codice SAS (e probabilmente del codice SPSS), uso un'istruzione ifelse.
  8. usare con invece di allegare. :)

Più pensieri: probabilmente usano COMPUTEmolto in SPSS, quindi coprire come farlo Rsarebbe positivo. Inoltre, come RECODEvariabili in R. Quando stavo usando SPSSpenso che la maggior parte del mio lavoro di "non analisi" stava usando quei due comandi.


1
Dai un'occhiata a pmax ...
Elvis,

@ Xi'an, andandoci ora a dare una sbirciatina (o una sbirciatina!) Ah, non avevo cliccato su di te, ero andato sul tuo blog un paio di volte tramite i collegamenti R-blogger. :)
Michelle,

2
Quando si tratta di ifelseessere sicuri di mostrare loro come funziona e cosa significa l'avvertimento nella sua documentazione. Funziona logicamente una volta che ci pensi, ma ho visto la totale confusione sul ifelse"cambiare" tipi di variabili e causare molto tempo perso.
Wayne,

2
@ Xi'an: la guida R dice "l'operatore = è consentito solo al livello più alto (ad es. Nell'espressione completa digitata al prompt dei comandi) o come una delle sottoespressioni in un elenco di espressioni rinforzate". Riesco a pensare a situazioni diverse da quelle menzionate nel tuo blog, anche se finora solo cose di tipo C: is in a <- 1:5 ; b <- 4 ; a[b = 3] ; b ; a[b <- 3] ; bcui la sottoscrizione dà gli stessi risultati, ma bè diversa (prima volta non cambiata, seconda volta cambiata). Non =è mai stato pensato per essere un incarico e non avrebbe mai dovuto essere cambiato per cercare di rendere R più appetibile. Non farlo
Wayne,

1
@Elvis +1000 Internet per te, che pmaxfunziona alla grande.
Michelle,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.