Apa pendekatan yang baik untuk mengajar R di laboratorium komputer?

15

Ada beberapa pertanyaan dan set jawaban yang bagus tentang buku-buku pengantar atau pendekatan untuk belajar R misalnya di sini dan di sini . Tetapi saya memiliki masalah yang sedikit berbeda - cara terbaik untuk menjalankan sesi panjang satu jam (atau beberapa sesi seperti itu) di laboratorium komputer yang akan membuat orang memulai dalam R, akrab dengan pendekatan dasarnya dll.

Rencana saya saat ini adalah bekerja secara efektif melalui bab pengantar tentang sesuatu seperti SimpleR Verzani dan kemudian memperkenalkan dataset yang sudah dikenal, tetapi apakah ada pendekatan lain yang menurut orang berguna? Misalnya, apakah baik untuk langsung memperkenalkan data nyata, atau mengatasi masalah dengan cara yang lebih abstrak? Haruskah saya mempelajari bagaimana menggunakan tanda kurung siku, atau membuat orang bersemangat dengan contoh grafik kisi?

Target audiens saya akrab dengan statistik (meskipun bukan ahli) dan pengguna SPSS yang kompeten; tidak terbiasa dengan bahasa pemrograman di luar jenis makro dan skrip yang akan Anda dapatkan di SPSS dan hal-hal serupa.

Setiap tips atau referensi untuk rencana pelajaran akan dihargai. Namun, saya tidak ingin menduplikasi banyak daftar materi on-line yang bagus yang memperkenalkan R - secara ketat merujuk pada pertanyaan instruksional.

Peter Ellis
sumber
Mungkin harus menjadi wiki komunitas, bukan?
Peter Ellis
1
Kedengarannya seperti ide bagus bagiku. :)
Michelle
1
Apa yang benar-benar penting untuk bagaimana pertanyaan ini harus dijawab adalah bagaimana pengaturan Anda nantinya. Jika Anda memiliki satu "sesi jam panjang ... di laboratorium komputer" akan ada sangat sedikit yang dapat Anda lakukan dan Anda akan memiliki sangat sedikit orang yang insaf. Jika Anda memiliki "beberapa yang seperti itu" dan mereka sudah tahu statistik dan pemrograman dasar dengan cukup teliti, Anda dapat menggunakan pompa sedemikian rupa sehingga mereka dapat bergerak maju sendiri dan bersemangat mencoba, tetapi yang terakhir ini membutuhkan pendekatan yang berbeda. Bagi orang-orang dengan beberapa statistik dan tanpa pengetahuan pemrograman, kursus selama satu semester akan ideal.
gung - Reinstate Monica
Hmm, poin bagus @ gung, ok, pengaturannya cukup spesifik. Saya manajer mereka dan hanya bisa memberi tahu mereka apa yang harus dilakukan. Kami memiliki sesi selama dua jam setiap minggu pada keterampilan statistik (beberapa dari kita bergiliran mempresentasikan) yang menjadi jauh lebih praktis dan kami telah sepakat untuk melakukan banyak hal di lab pada mesin dengan data nyata. Jadi saya harus menentukan bahwa persyaratan sebenarnya adalah untuk membuat mereka cukup akrab dengan R dalam satu atau dua sesi bahwa ketika kita melakukan hal-hal seperti memasang model regresi atau melihat plot diagnostik dalam sesi berikutnya kita tidak akan sepenuhnya terganggu oleh dasar-dasar.
Peter Ellis
2
@gung +1 besar untuk komentar menyeluruh Anda. Saya sudah lama mengajar R dan akhirnya saya sampai pada kesimpulan yang sama: orang yang tidak memiliki pemahaman yang ringan tentang pemrograman atau command-line prompt kemungkinan akan menghadapi beberapa kesulitan berurusan dengan R. Semakin buruk ketika kita harus membuat siswa terbiasa dengan statistik menggunakan R dalam beberapa jam ...
chl

Jawaban:

7

Saya berpendapat untuk pendekatan yang sama sekali berbeda. Saya telah melihat tutorial R yang diajarkan dari dua perspektif yang berbeda: pendekatan blok bangunan, di mana pengguna diperkenalkan dengan konsep dasar R, dan pendekatan kejutan-dan-kagum, di mana pengguna ditunjukkan kemampuan R yang luar biasa tetapi dibiarkan begitu saja. relatif sedikit pemahaman tentang bagaimana melakukan sesuatu. Yang terakhir jelas beresonansi lebih kuat dengan murid, tetapi tidak ada yang tampaknya sangat efektif dalam benar-benar menghasilkan pengguna.

Sebagai gantinya, saya akan mengambil tugas umum dan relatif sederhana dalam SPSS dan berjalan mengkonversinya ke R, dengan sedikit naif pura-pura di pihak Anda - misalnya, mengikuti saran bagus Xi'an untuk mencari beberapa fungsi yang diinginkan dengan ??bukan hanya mengingat fungsi yang benar dari memori. Pemula Anda hampir pasti akan mengonversi proses yang ada saat mereka belajar R, bukan menulisnya dari awal - jadi mengapa tidak menunjukkan kepada mereka bagaimana Anda akan melakukannya?

Contoh yang baik dapat terdiri dari hanya memuat data, melakukan beberapa deskripsi, dan memunculkan beberapa plot dasar. lm()bisa sangat, sangat sederhana dan menghasilkan hasil yang akan mereka pahami dan dapat dibandingkan dengan keluaran SPSS, sehingga mungkin juga bagus untuk dibahas.

Untuk pekerjaan rumah, suruh mereka mengonversi proses sederhana mereka atau memuat dan menjelajahi dataset yang sudah mereka kenal. Beri mereka waktu tatap muka untuk mencari tahu di mana letak kesalahannya, kemudian sampaikan pada sesi berikutnya dengan lebih banyak konversi contoh. Konsep dari daftar Anda pasti akan muncul (taruhan saya: faktor vs vektor karakter, untuk vs berlaku) - dan kemudian Anda akan memiliki motivasi dunia nyata untuk meliput mereka. Jika mereka tidak muncul ( attach), maka mereka belum benar-benar dibutuhkan - jika itu berarti pemula Anda menulis sedikit kode non-idiomatis sejak awal ( forbukan apply), saya tidak melihat bahayanya.

Dengan cara ini, siswa Anda dapat berkembang dengan cara yang hampir sama dengan yang dilakukan siswa berbahasa asing (atau setidaknya, seperti yang saya lakukan): terjemahan kasar ekspresi sederhana mendorong keinginan untuk ekspresi yang lebih kompleks, yang menyebabkan keinginan untuk pemahaman yang lebih dalam tentang tata bahasa , yang akhirnya mengarah pada ekspresi idiomatik. Jangan melompat ke "tata bahasa" terlalu cepat, dan jangan terlalu khawatir mengajar mereka hal-hal yang tidak mereka tanyakan karena mereka mungkin akan melupakannya. Petunjuk lembut tentang ekspresi idiomatik sangat bagus ( forvs apply), tetapi hal utama adalah membuat mereka menghasilkan output dan mengeksplorasi sendiri.

Matt Parker
sumber
(+1) Terima kasih, Matt, itu terdengar seperti nasihat yang bagus. Saya terutama menyukai dua paragraf terakhir.
chl
Terima kasih Matt (dan semua orang - semua bantuan luar biasa). Saya pasti akan menggunakan ?? pendekatan, dan membuat mereka untuk membuat ulang di laboratorium dan sebagai pekerjaan rumah pekerjaan umum yang mereka lakukan dengan perangkat lunak lain (SPSS dan Harmoni, yang pada dasarnya adalah paket lintas-tab). Saya masih membutuhkan arahan yang cukup hanya untuk membuat mereka membuka hal itu dan mengetahui harus mulai dari mana (dan saya telah memodifikasi rencana pelajaran 1 saya yang sesuai) tetapi saya pikir memotivasi belajar mandiri di luar lab jelas merupakan cara untuk pergi.
Peter Ellis
7

OK, inilah jawaban saya sendiri sejauh ini tentang apa yang saya pikir akan membuat orang mulai dan memotivasi mereka untuk belajar lebih banyak (saya mencoba untuk menyapih mereka dari SPSS, yang secara harfiah tidak dapat melakukan beberapa dari apa yang kita butuhkan misalnya analisis survei yang kompleks, setidaknya tanpa membeli lebih banyak modul yang saya tolak melakukannya).

Di akhir sesi pertama Anda harus dapat:

Dasar-dasar

  • Gunakan antarmuka untuk melakukan perhitungan langsung (gunakan R sebagai kalkulator)
  • Mulai, simpan, dan muat jendela skrip dan gunakan secara efisien
  • Buat dan hapus objek di ruang kerja Anda
  • Lihat folder mana yang merupakan folder kerja Anda
  • Memahami cara kerja folder P: / R / yourid dan apa yang menyelamatkan ruang kerja saat keluar
  • Memuat gambar ruang kerja termasuk XXX (data kami yang biasa digunakan)
  • Daftar benda-benda dalam memori
  • Daftar nama-nama kolom (variabel) dalam bingkai data
  • Cetak objek ke layar
  • Lampirkan dan lepaskan bingkai data
  • Tahu apa yang dimaksud dengan: objek, fungsi, argumen (fungsi), ruang kerja, vektor, bingkai data, matriks, numerik, faktor
  • Ketahui cara mencari bantuan untuk suatu fungsi
  • Gunakan ?? untuk menemukan daftar fungsi yang relevan
  • Ke mana harus pergi di web dan buku-buku lokal kami dan LAN untuk sumber daya lebih lanjut
  • cukup memahami dasar-dasar R untuk berpartisipasi dalam sesi lab tentang teknik statistik tertentu

Manipulasi data

  • Buat vektor angka menggunakan: operator
  • Lakukan daftar jumlah untuk satu variabel
  • Lakukan crosstab jumlah untuk dua variabel
  • Buat objek baru (misalnya salah satu tabel di atas) untuk manipulasi lebih lanjut
  • Ubah posisi matriks atau tabel
  • Buat vektor sarana variabel kontinu dengan faktor menggunakan tapply ()
  • Ikat beberapa vektor bersama-sama menggunakan cbind () atau data.frame ()
  • Buat subset dari matriks menggunakan []
  • Buat transformasi sederhana misalnya logaritma atau root kuadrat

Statistik

  • Hitung korelasi dua variabel kontinu

Grafik

  • Buat histogram variabel kontinu
  • Buat jendela grafis dan bagi menjadi 2 atau 4 bagian
  • Buat plot garis kerapatan dari variabel kontinu
  • Buat sebar dua variabel kontinu
  • Tambahkan garis lurus ke sebaran (vertikal, horizontal atau ab)
  • Buat label untuk sumbu dan judul

Pada akhir tiga sesi dan melakukan berbagai latihan di antara Anda juga harus dapat:

Dasar-dasar

  • Impor data dalam format SPSS atau .csv
  • Hapus semua objek di ruang kerja Anda untuk memulai yang baru
  • gunakan perpustakaan paket
  • Menyimpan gambar ruang kerja dan memahami prinsip-prinsip dasar R dan memori
  • Hasilkan variabel acak
  • Gunakan c () untuk membuat vektor
  • Dapatkan perasaan yang baik tentang ke mana harus pergi untuk mempelajari metode dan teknik baru

Manipulasi data

  • Gunakan agregat () pada kumpulan data nyata mis. Angka kedatangan pengunjung berdasarkan bulan dan negara
  • The ==,! = Dan% dalam% operator; vektor logis; dan menggunakannya untuk mengelompokkan data
  • ifelse () dan menggunakannya untuk membuat variabel baru
  • maks, min, dan fungsi serupa serta cara kerjanya dengan vektor
  • Buat vektor atau matriks untuk menyimpan banyak hasil
  • Gunakan loop untuk mengulangi fungsi yang sama beberapa kali
  • Gunakan apply () untuk menerapkan fungsi ke setiap kolom atau baris matriks
  • Buat faktor yang dipesan
  • Gunakan cut () untuk mengkode ulang variabel numerik

Statistik

  • Chi square test untuk tabel kontingensi
  • Versi korelasi yang kuat
  • Paskan model linier ke dua variabel kontinu, menempatkan hasil dalam objek dan menggunakan anova (), ringkasan () dan plot () untuk melihat hasilnya
  • cukup memahami tentang model dan bagaimana mereka bekerja di R untuk siap menerapkan keterampilan Anda ke berbagai jenis model
  • Gunakan boot () untuk melakukan bootstrap pada fungsi dasar seperti cor (), mean (), atau var ()
  • Gunakan sampel () pada set data kehidupan nyata

Grafik

  • Buat plot garis kerapatan kisi dari variabel kontinu dengan level faktor yang berbeda
  • qqnorm
  • membangun sebar plot dengan warna dan titik karakter yang berbeda yang menunjukkan tingkat faktor yang berbeda; tambahkan poin atau garis ke sebaran plot yang ada
  • tambahkan legenda
  • dotchart
  • errbar ()
  • menggunakan loop untuk menggambar beberapa grafik pada halaman
Peter Ellis
sumber
2
Mengingat pengaturan Anda, ini tampaknya masuk akal, tetapi banyak untuk dibahas dalam satu jam dengan pemula. Saya akan terus menekankan sumber daya yang tersedia bagi mereka untuk membangun kemandirian. Secara khusus, buka manual R yang datang dengan instalasi dan penggunaan file bantuan. Misalnya, untuk memperkenalkan korelasi, mulailah dengan korelasi, tunjukkan cara mencari daftar, lalu? Cor dan tunjukkan cara membaca & memahami bantuan; mengajar cor, hist, dll dari dokumentasi . Tidak peduli seberapa pintar mereka, ada batasan hanya dengan satu jam - mereka perlu belajar untuk mendapatkan info & pemecahan masalah sendiri .
gung - Reinstate Monica
1
Saya pikir saya bekerja sekitar 10 menit berjalan kaki dari Anda, jadi beri saya teriakan jika Anda ingin membahas apa pun sambil minum kopi. :)
Michelle
Saya tidak berpikir itu terutama apa , itu bagaimana . Ini adalah tentang membuat siswa untuk belajar hal-hal sebagian pada mereka sendiri dan memiliki lembar contekan komprehensif di tangan + beberapa tugas rumah.
Ondrej
@Michelle - kedengarannya bagus, email saya di peter.ellis [at] med.govt.nz
Peter Ellis
4
Ini adalah daftar yang sangat ambisius! Saya tidak bisa membayangkan Anda meliput semua ini dalam tiga jam - saya pikir saya bahkan tidak bisa mengatakan kata-kata untuk menutupi semua ini dalam tiga jam, apalagi menjawab pertanyaan. Ada beberapa konsep yang saya lewati seluruhnya: ruang kerja (saya lebih suka tidak menggunakannya - membuat ulang semuanya dari skrip membuat kode lebih kuat), melampirkan (juga bermasalah, terutama untuk pengguna baru yang tidak mengerti lingkungan), mentransposisi (sepele untuk mencari ketika Anda membutuhkannya), dan cbind (saya hampir tidak pernah menggunakan ini).
Matt Parker
2

Ke daftar Peter saya akan menambahkan:

  1. bingkai data subset: subset dengan observasi (mis. semua respons di atas 3), subset berdasarkan variabel.
  2. menggunakan pernyataan ifelse (ini adalah kurva belajar yang sangat besar bagi saya, saya terus mencoba menggunakan tipe pernyataan if), terutama ifelse yang bersarang.
  3. meringkas data menjadi kerangka data yang lebih kecil dengan menggunakan perintah agregat.
  4. belajar menggunakan operator ==.
  5. menggunakan <- alih-alih =
  6. ganti nama variabel
  7. perangkap vektorisasi dasar, seperti maks (A, B) di SAS tidak melakukan apa yang maks (A, B) lakukan di R, jika A adalah variabel dalam bingkai data dan B adalah nilai tunggal. Untuk melakukan yang setara dengan kode SAS (dan mungkin kode SPSS), saya menggunakan pernyataan ifelse.
  8. gunakan dengan bukan melampirkan. :)

Lebih banyak pemikiran: Mereka mungkin menggunakan COMPUTEbanyak SPSS, jadi mencakup bagaimana melakukan itu Rakan baik. Juga, bagaimana RECODEvariabel dalam R. Ketika saya menggunakan SPSSsaya pikir sebagian besar pekerjaan "non analisis" saya menggunakan dua perintah.

Michelle
sumber
1
Lihat pmax ...
Elvis
@ Xi'an, pergi ke sana sekarang untuk mengintip (atau menyodok!) Ah, saya tidak mengklik itu adalah Anda, saya telah pergi ke blog Anda beberapa kali melalui tautan R-blogger. :)
Michelle
2
Ketika meliput, ifelsepastikan untuk menunjukkan kepada mereka cara kerjanya dan apa arti peringatan dalam dokumentasinya. Ini bekerja secara logis setelah Anda memikirkannya, tetapi saya telah melihat kebingungan total tentang ifelse"mengubah" tipe variabel dan menyebabkan banyak waktu yang hilang.
Wayne
2
@ Xi'an: Bantuan R mengatakan, "operator = hanya diizinkan di tingkat atas (mis., Dalam ekspresi lengkap yang diketik pada prompt perintah) atau sebagai salah satu subekspresi dalam daftar ekspresi berekstur." Saya bisa memikirkan situasi selain yang disebutkan di blog Anda, meskipun sejauh ini hanya hal-hal C-ish seperti: di a <- 1:5 ; b <- 4 ; a[b = 3] ; b ; a[b <- 3] ; bmana subskrip memberikan hasil yang sama, tetapi bberbeda (pertama kali tidak berubah, kedua kali berubah). Itu =tidak pernah dimaksudkan untuk menjadi tugas dan seharusnya tidak pernah diubah untuk mencoba membuat R lebih enak. Jangan lakukan itu.
Wayne
1
@ Elvis +1000 internet untuk Anda, itu pmaxbekerja dengan baik.
Michelle