Was ist ein guter Ansatz, um R in einem Computerraum zu unterrichten?


15

Es gab mehrere gute Fragen und Antworten zu Einführungsbüchern oder Lernansätzen, z . B. hier und hier . Aber ich habe ein etwas anderes Problem - die beste Möglichkeit, eine einstündige Sitzung (oder mehrere solcher Sitzungen) in einem Computerraum durchzuführen, damit die Leute mit R beginnen und sich mit dem grundlegenden Ansatz usw. auskennen.

Mein aktueller Plan wäre es, das / die Einführungskapitel von so etwas wie Verzanis SimpleR effektiv zu durcharbeiten und dann einen vertrauten Datensatz einzuführen. Aber gibt es einen anderen Ansatz, den die Leute nützlich fanden? Ist es beispielsweise gut, echte Daten sofort einzuführen oder Probleme abstrakter anzugehen? Soll ich mich eingehend mit der Verwendung der eckigen Klammern befassen oder Menschen mit Beispielen für Gittergrafiken begeistern?

Meine Zielgruppe ist mit Statistiken (wenn auch nicht mit Experten) und kompetenten SPSS-Benutzern vertraut. Sie kennen sich nicht mit Programmiersprachen aus, die über die in SPSS und ähnlichen Anwendungen üblichen Makros und Skripts hinausgehen.

Tipps oder Hinweise zu Unterrichtsplänen sind willkommen. Ich möchte jedoch nicht die vielen guten Listen von Online-Materialien duplizieren, in denen R vorgestellt wird - ausschließlich Verweise auf die persönliche Unterrichtsfrage.


Sollte wohl ein Community-Wiki sein, oder?
Peter Ellis

1
Klingt für mich nach einer guten Idee. :)
Michelle

1
Entscheidend für die Beantwortung dieser Frage ist das Setup. Wenn Sie eine einzige "stundenlange Sitzung ... in einem Computerlabor" haben, können Sie nur sehr wenig tun, und Sie werden nur sehr wenige Konvertiten haben. Wenn Sie "mehrere solcher" haben und sie bereits ziemlich gründlich über Statistiken und grundlegende Programmierungen Bescheid wissen, können Sie die Pumpe so vorbereiten, dass sie sich von selbst vorwärtsbewegen und vom Versuch begeistert sind. Letzteres erfordert jedoch einen anderen Ansatz. Für Leute mit einigen Statistiken und keinen Programmierkenntnissen wäre ein semesterlanger Kurs ideal.
gung - Wiedereinsetzung von Monica

Hmm, guter Punkt @gung, ok, das Setup ist ziemlich spezifisch. Ich bin ihr Manager und kann ihnen nur sagen, was sie tun sollen. Wir haben eine 14-stündige Sitzung über Statistikfähigkeiten (einige von uns wechseln sich mit Präsentationen ab), die viel praktischer wird, und wir haben uns darauf geeinigt, einen Großteil davon im Labor an Maschinen mit realen Daten durchzuführen. Daher hätte ich spezifizieren müssen, dass die eigentliche Anforderung darin besteht, sie in ein oder zwei Sitzungen mit R vertraut zu machen, damit wir uns bei der Anpassung von Regressionsmodellen oder der Betrachtung von Diagnoseplots in nachfolgenden Sitzungen nicht vollständig von den Grundlagen ablenken lassen.
Peter Ellis

2
@gung Ein großes +1 für deinen gründlichen Kommentar. Ich unterrichte schon lange R und bin zu einem ähnlichen Schluss gekommen: Leute, die keine Ahnung von Programmierung oder einer Eingabeaufforderung haben, werden wahrscheinlich mit Schwierigkeiten im Umgang mit R konfrontiert sein. Es wird schlimmer, wenn wir die Schüler mit R vertraut machen müssen Statistiken mit R in wenigen Stunden ...
chl

Antworten:


6

Ich würde mich für einen ganz anderen Ansatz aussprechen. Ich habe R-Tutorials gesehen, die aus zwei verschiedenen Perspektiven unterrichtet wurden: ein Baustein-Ansatz, in dem Benutzer in die grundlegenden Konzepte von R eingeführt werden, und ein Schock-und-Ehrfurcht-Ansatz, in dem Benutzern die erstaunlichen Fähigkeiten von R gezeigt werden, die sie jedoch nicht kennen relativ wenig Verständnis dafür, wie man etwas macht. Letzteres schwingt definitiv stärker mit den Schülern mit, aber keines scheint sehr effektiv darin zu sein, Benutzer tatsächlich zu produzieren.

Stattdessen würde ich eine allgemeine und relativ einfache Aufgabe in SPSS übernehmen und sie in R umwandeln, mit ein wenig vorgetäuschter Naivität von Ihrer Seite - z. B. dem ausgezeichneten Vorschlag von Xi'an folgend, einige gewünschte Funktionen mit ??statt nur nachzuschlagen Aufrufen der richtigen Funktion aus dem Speicher. Ihre Neulinge konvertieren mit ziemlicher Sicherheit vorhandene Prozesse, während sie R lernen, und schreiben sie nicht von Grund auf neu. Warum zeigen Sie ihnen nicht genau, wie Sie dabei vorgehen würden?

Ein gutes Beispiel könnte darin bestehen, nur Daten zu laden, einige Beschreibungen vorzunehmen und einige grundlegende Diagramme auszulesen. lm()kann sehr, sehr einfach sein und führt zu Ergebnissen, die sie verstehen und mit der SPSS-Ausgabe vergleichen können.

Lassen Sie sie bei den Hausaufgaben einen Versuch unternehmen, einen ihrer einfachen Prozesse zu konvertieren oder einen Datensatz zu laden und zu durchsuchen, mit dem sie sehr vertraut sind. Geben Sie ihnen ein wenig Zeit, um herauszufinden, wo die Dinge schief gehen, und decken Sie diese in der nächsten Sitzung mit weiteren Beispielkonvertierungen ab. Konzepte aus Ihrer Liste werden unweigerlich auftauchen (meine Wette: Faktoren vs. Zeichenvektoren, für vs. zutreffen) - und dann haben Sie eine reale Motivation, sie zu behandeln. Wenn sie nicht auftauchen ( attach), dann werden sie noch nicht wirklich gebraucht - wenn das bedeutet, dass Ihre Neulinge früh ( forstatt apply) einen kleinen nicht-idiomatischen Code schreiben , sehe ich den Schaden nicht.

Auf diese Weise können sich Ihre Schüler auf die gleiche Weise weiterentwickeln wie fremdsprachige Schüler (oder zumindest so wie ich): Die grobe Übersetzung einfacher Ausdrücke weckt den Wunsch nach komplexeren Ausdrücken, was den Wunsch nach einem tieferen Verständnis der Grammatik hervorruft , was schließlich zu idiomatischem Ausdruck führt. Springen Sie nicht zu früh zur Grammatik und sorgen Sie sich nicht zu sehr darum, ihnen Dinge beizubringen, nach denen sie nicht fragen, weil sie es wahrscheinlich sowieso einfach vergessen werden. Sanfte Hinweise zum idiomatischen Ausdruck sind großartig ( forvs apply), aber die Hauptsache ist, dass sie Output generieren und auf eigene Faust erkunden.


(+1) Danke, Matt, das klingt nach tollen Ratschlägen. Die letzten beiden Absätze gefallen mir besonders gut.
chl

Vielen Dank, Matt (und alle anderen - alle ausgezeichnete Hilfe). Ich werde auf jeden Fall die ?? Ansatz und bekommen sie im Labor neu zu erstellen und als Hausaufgaben gemeinsame Aufgaben sie mit anderer Software (SPSS und Harmoni, die im Grunde ein Kreuztabellen-Paket ist). Ich brauche noch eine vernünftige Anweisung, um sie dazu zu bringen, die Sache zu öffnen und zu wissen, wo ich anfangen soll (und ich habe meinen Plan für Lektion 1 entsprechend geändert), aber ich denke, dass es definitiv der richtige Weg ist, das Selbstlernen außerhalb des Labors zu motivieren.
Peter Ellis

7

OK, hier ist meine eigene Antwort auf die Frage, was meiner Meinung nach die Leute dazu bringen würde, etwas mehr zu lernen und zu motivieren (ich versuche, sie von SPSS zu entwöhnen, was buchstäblich nicht das kann, was wir für eine komplexe Umfrageanalyse benötigen, zumindest nicht ohne mehr Module zu kaufen, die ich nicht machen möchte).

Am Ende der ersten Sitzung sollten Sie in der Lage sein:

Grundlagen

  • Verwenden Sie die Schnittstelle, um einfache Berechnungen durchzuführen (verwenden Sie R als Taschenrechner)
  • Starten, speichern und laden Sie ein Skriptfenster und nutzen Sie es effizient
  • Erstellen und entfernen Sie Objekte in Ihrem Arbeitsbereich
  • Sehen Sie, welcher Ordner Ihr Arbeitsordner ist
  • Verstehen Sie, wie der Ordner P: / R / yourid funktioniert und was das Speichern eines Arbeitsbereichs beim Beenden bewirkt
  • Laden Sie ein Bild eines Arbeitsbereichs mit XXX (unseren häufig verwendeten Daten)
  • Listen Sie die Objekte im Speicher auf
  • Listen Sie die Namen von Spalten (Variablen) in einem Datenrahmen auf
  • Drucken Sie ein Objekt auf dem Bildschirm
  • Hängen Sie einen Datenrahmen an und trennen Sie ihn
  • Wissen, was gemeint ist mit: Objekt, Funktion, Argument (für eine Funktion), Arbeitsbereich, Vektor, Datenrahmen, Matrix, Numerisch, Faktor
  • Wissen, wie man nach Hilfe für eine Funktion sucht
  • Verwenden ?? um eine Liste der relevanten Funktionen zu finden
  • Weitere Ressourcen finden Sie im Internet, in unseren lokalen Büchern und im LAN
  • Verstehen Sie genug von R-Grundlagen, um an Laborsitzungen zu bestimmten statistischen Techniken teilzunehmen

Datenmanipulation

  • Erstellen Sie einen Zahlenvektor mit dem Operator:
  • Führen Sie eine Zählungstabelle für eine Variable durch
  • Führen Sie für zwei Variablen eine Kreuztabelle aus
  • Erstellen Sie ein neues Objekt (z. B. eine der obigen Tabellen) zur weiteren Bearbeitung
  • Transponieren Sie eine Matrix oder Tabelle
  • Mit tapply () einen Vektor der Mittelwerte einer stetigen Variablen durch einen Faktor erzeugen
  • Binden Sie mehrere Vektoren mit cbind () oder data.frame () zusammen
  • Erstellen Sie eine Teilmenge einer Matrix mit dem []
  • Erstellen Sie eine einfache Transformation, z. B. einen Logarithmus oder eine Quadratwurzel

Statistiken

  • Berechnen Sie die Korrelation zweier stetiger Variablen

Grafik

  • Erstellen Sie ein Histogramm einer stetigen Variablen
  • Erstellen Sie ein Grafikfenster und teilen Sie es in 2 oder 4 Teile
  • Erstellen Sie ein Dichteliniendiagramm einer kontinuierlichen Variablen
  • Erstellen Sie ein Streudiagramm von zwei kontinuierlichen Variablen
  • Hinzufügen einer geraden Linie zu einem Streudiagramm (vertikal, horizontal oder ab)
  • Erstellen Sie Beschriftungen für Achsen und Titel

Nach drei Sitzungen und einer Reihe von Übungen sollten Sie außerdem in der Lage sein:

Grundlagen

  • Importieren Sie Daten im SPSS- oder CSV-Format
  • Entfernen Sie alle Objekte in Ihrem Arbeitsbereich, um neu zu beginnen
  • Verwenden Sie eine Paketbibliothek
  • Speichern Sie ein Arbeitsbereichbild und verstehen Sie die Grundprinzipien R und Speicher
  • Zufallsvariablen generieren
  • Verwenden Sie c (), um einen Vektor zu erstellen
  • Machen Sie sich ein Bild davon, wo Sie neue Methoden und Techniken erlernen können

Datenmanipulation

  • Verwenden Sie aggregate () für einen realen Datensatz, z. B. Besucherankunftszahlen nach Monat und Land
  • Die Operatoren ==,! = Und% in%; logische Vektoren; und sie verwenden, um Daten zu unterteilen
  • ifelse () und damit neue Variablen erstellen
  • Max, Min und ähnliche Funktionen und wie sie mit Vektoren arbeiten
  • Erstellen Sie einen Vektor oder eine Matrix, um zahlreiche Ergebnisse zu speichern
  • Verwenden Sie eine Schleife, um eine ähnliche Funktion mehrmals zu wiederholen
  • Verwenden Sie apply (), um eine Funktion auf jede Spalte oder Zeile einer Matrix anzuwenden
  • Erstellen Sie einen geordneten Faktor
  • Verwenden Sie cut (), um eine numerische Variable neu zu codieren

Statistiken

  • Chi-Quadrat-Test für eine Kontingenztabelle
  • Robuste Versionen von Korrelationen
  • Passen Sie ein lineares Modell an zwei kontinuierliche Variablen an, platzieren Sie die Ergebnisse in einem Objekt und verwenden Sie anova (), summary () und plot (), um die Ergebnisse anzuzeigen
  • Verstehen Sie genug über Modelle und deren Funktionsweise in R, um Ihre Fähigkeiten auf ein breiteres Spektrum von Modelltypen anwenden zu können
  • Verwenden Sie boot (), um einen Bootstrap für eine Grundfunktion wie cor (), mean () oder var () durchzuführen.
  • Verwenden Sie sample () für einen realen Datensatz

Grafik

  • Erstellen Sie ein Liniendiagramm für die Gitterdichte einer stetigen Variablen bei unterschiedlichen Faktorwerten
  • qqnorm
  • Erstellen Sie ein Streudiagramm mit verschiedenen Farben und Zeichenpunkten, die unterschiedliche Ebenen eines Faktors anzeigen. Hinzufügen von Punkten oder Linien zu einem vorhandenen Streudiagramm
  • füge eine Legende hinzu
  • Punktdiagramme
  • errbar ()
  • Verwenden einer Schleife zum Zeichnen mehrerer Diagramme auf einer Seite

2
In Anbetracht Ihres Setups scheint dies vernünftig zu sein, aber es ist eine Menge , die in einer Stunde mit Neulingen zu besprechen ist. Ich würde ständig die Ressourcen betonen, die ihnen zur Verfügung stehen, um Selbstversorgung aufzubauen. Lesen Sie insbesondere das R-Handbuch durch, das mit der Installation und Verwendung der Hilfedateien geliefert wird. Zum Beispiel, um die Korrelation einzuführen, beginnen Sie mit "Korrelation", und zeigen Sie, wie die Liste durchsucht wird. lehre cor, hist usw. aus der Dokumentation . Egal wie intelligent sie sind, es gibt ein Limit von nur einer Stunde - sie müssen lernen, die Informationen und Fehlerbehebungen selbst zu erhalten .
gung - Wiedereinsetzung von Monica

1
Ich glaube, ich arbeite ungefähr 10 Minuten zu Fuß von Ihnen entfernt. Schreien Sie mich an, wenn Sie etwas bei einem Kaffee trinken möchten. :)
Michelle

Ich denke nicht, dass es in erster Linie das Was ist , sondern das Wie . Es geht darum, die Schüler zum Teil selbstständig dazu zu bringen, Dinge zu lernen und einen umfassenden Spickzettel sowie einige Hausaufgaben zur Hand zu haben.
Ondrej

@Michelle - hört sich gut an, senden Sie mir eine E-Mail an peter.ellis [at] med.govt.nz
Peter Ellis

4
Dies ist eine erstaunlich ehrgeizige Liste! Ich kann mir nicht vorstellen, dass Sie das alles in drei Stunden besprechen - ich glaube nicht, dass ich in drei Stunden die Worte sagen kann, um das alles zu besprechen, geschweige denn Fragen zu beantworten. Es gibt ein paar Konzepte, die ich komplett überspringen würde: Arbeitsbereiche (ich bevorzuge, sie nicht zu verwenden - alles aus dem Skript zu regenerieren macht den Code robuster), Anhängen (auch problematisch, insbesondere für neue Benutzer, die Umgebungen nicht verstehen), Transponieren (trivial) nachschlagen, wenn du es brauchst) und binden (ich benutze es fast nie).
Matt Parker

2

Zu Peters Liste würde ich hinzufügen:

  1. Teilmenge Datenrahmen: Teilmenge durch Beobachtung (z. B. alle Antworten über 3), Teilmenge durch Variable.
  2. Verwenden Sie ifelse-Anweisungen (dies war eine enorme Lernkurve für mich, ich habe immer wieder versucht, den Typ der if-Anweisung zu verwenden), insbesondere geschachtelte ifelse.
  3. Fassen Sie Daten mit dem Befehl aggregate zu einem kleineren Datenrahmen zusammen.
  4. Lernen, den Operator == zu verwenden.
  5. Verwenden Sie <- anstelle von =
  6. Variablen umbenennen
  7. Grundlegende Vektorisierungs-Traps wie max (A, B) in SAS tun nicht das, was max (A, B) in R tut, wenn A eine Variable in einem Datenrahmen und B ein einzelner Wert ist. Um das Äquivalent zum SAS-Code (und wahrscheinlich zum SPSS-Code) zu erhalten, verwende ich eine ifelse-Anweisung.
  8. Verwenden Sie mit anstelle von befestigen. :)

Weitere Überlegungen: Sie verbrauchen wahrscheinlich COMPUTEviel in SPSS, daher Rwäre es gut , zu beschreiben, wie das in Angriff genommen werden kann. Auch, wie man RECODEVariablen in R behandelt. Als ich SPSSdiese Befehle verwendete, dachte ich, dass der größte Teil meiner "Nicht-Analyse" -Arbeit diese beiden Befehle verwendete.


1
Werfen Sie einen Blick auf pmax ...
Elvis

@ Xi'an, gehe jetzt dorthin, um einen Blick (oder einen Stoß!) Zu werfen. Ah, ich hatte nicht angeklickt, dass du es warst. Ich war ein paarmal über R-Blogger-Links zu deinem Blog gegangen. :)
Michelle

2
ifelseAchten Sie beim Abdecken darauf, dass Sie ihnen zeigen, wie es funktioniert und was die Warnung in der Dokumentation bedeutet. Es funktioniert logisch, sobald Sie darüber nachdenken, aber ich habe völlige Verwirrung darüber gesehen, wie ifelseman Variablentypen "ändert" und viel verlorene Zeit verursacht.
Wayne

2
@ Xi'an: Die R-Hilfe sagt: "Der Operator = ist nur auf der obersten Ebene (z. B. im vollständigen Ausdruck, der an der Eingabeaufforderung eingegeben wird) oder als einer der Unterausdrücke in einer geschweiften Liste von Ausdrücken zulässig." Ich kann mir andere Situationen als die in Ihrem Blog erwähnten vorstellen, obwohl bisher nur C-ische Dinge wie: a <- 1:5 ; b <- 4 ; a[b = 3] ; b ; a[b <- 3] ; bwo das Abonnement die gleichen Ergebnisse liefert, aber bunterschiedlich ist (das erste Mal nicht geändert, das zweite Mal geändert). Das =war niemals als Aufgabe gedacht und hätte niemals geändert werden dürfen, um R schmackhafter zu machen. Tu es nicht.
Wayne

1
@Elvis +1000 Internets für dich, das pmaxfunktioniert super .
Michelle
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.