Bir bilgisayar laboratuarında R'yi öğretmek için iyi bir yaklaşım nedir?


15

Giriş kitaplarında veya R'yi öğrenme konusunda burada ve burada birkaç iyi soru ve cevap seti vardır . Ama biraz farklı bir sorunum var - insanları bir bilgisayar laboratuarında saatte bir seans (veya birkaç seans) çalıştırmanın en iyi yolu, R'deki temel yaklaşımı tanıyan vb.

Şu anki planım Verzani'nin SimpleR gibi bir şeyin giriş bölümleri üzerinde etkili bir şekilde çalışmak ve daha sonra tanıdık bir veri kümesi sunmak olacaktır, ancak insanların yararlı bulduğu başka bir yaklaşım var mı? Örneğin, gerçek verileri hemen tanıtmak veya sorunları daha soyut bir şekilde ele almak iyi midir? Köşeli parantezleri nasıl kullanmalı veya kafes grafik örnekleri ile insanları heyecanlandırmalı mıyım?

Hedef kitlem, istatistikleri (uzman olmasa da) ve yetkin SPSS kullanıcılarını biliyor; SPSS ve benzeri şeylerde alacağınız makro ve komut dosyası türlerinin ötesinde programlama dillerine aşina değilsiniz.

Herhangi bir ipucu veya ders planlarına yapılan referanslar takdir edilecektir. Bununla birlikte, yüz yüze öğretim sorusuna kesinlikle atıfta bulunan R'yi tanıtan on-line materyallerin birçok iyi listesini çoğaltmak istemiyorum.


Muhtemelen bir topluluk wiki'si olmalı, değil mi?
Peter Ellis

1
Bana iyi bir fikir gibi geliyor. :)
Michelle

1
Bu sorunun nasıl cevaplanacağı konusunda çok önemli olan kurulumunuzun ne olacağıdır. Eğer bir varsa tek "saat süren oturumu ... Bir bilgisayar laboratuarında" Orada olacak çok küçük yapabileceğiniz ve çok az dönüştürür olacaktır. Eğer "bunlardan birkaçı" nız varsa ve zaten istatistikleri ve temel programlamayı oldukça iyi biliyorlarsa, pompayı kendi başlarına ilerleyebilecekleri ve denemeye hevesli olabilecekleri şekilde hazırlayabilirsiniz, ancak bu ikincisi farklı bir yaklaşım gerektirir. Bazı istatistikleri olan ve programlama bilgisi olmayan insanlar için bir dönemlik kurs ideal olacaktır.
gung - Monica'yı eski durumuna döndürün

Hmm, iyi bir nokta @gung, tamam, kurulum oldukça spesifik. Onların müdürüyüm ve bu yüzden olabilir sadece ne yapmaları gerektiğini söyler. İstatistik becerilerinde (birçoğumuz sırayla sunum yapıyoruz) iki haftada bir süren bir oturumumuz var ve bu çok daha pratik hale geliyor ve bunların çoğunu laboratuvarda gerçek verilere sahip makinelerde yapmayı kabul ettik. Bu yüzden, gerçek gereksinimin, R veya bir kaç seansta onları yeterince tanımak olduğunu belirtmeliyim ki, regresyon modellerine uymak veya sonraki seanslarda teşhis alanlarına bakmak gibi şeyleri temelden tamamen rahatsız etmeyeceğiz.
Peter Ellis

2
@gung Ayrıntılı yorumunuz için büyük bir +1. Uzun süredir R öğretiyorum ve sonunda benzer bir sonuca vardım: hafif bir programlama veya komut satırı istemi olmayan insanlar muhtemelen R ile ilgili bazı zorluklarla karşılaşacaklar. Öğrencileri tanımak zorunda kaldığımızda daha da kötüleşiyor Birkaç saat içinde R kullanan istatistikler ...
chl

Yanıtlar:


7

Tamamen farklı bir yaklaşım olduğunu savunuyorum. İki farklı perspektiften öğretilen R öğreticilerini gördüm: kullanıcıların R'nin temel kavramlarına tanıtıldığı bir yapı taşları yaklaşımı ve kullanıcılara R'nin şaşırtıcı yetenekleri gösterilen ancak geride bırakılan şok ve korku yaklaşımı bir şeyin nasıl yapılacağına dair nispeten az anlayış. İkincisi kesinlikle öğrencilerle daha güçlü bir şekilde yankılanıyor, ancak hiçbiri gerçekte kullanıcı üretmede çok etkili görünmüyor.

Bunun yerine, SPSS'de ortak ve nispeten basit bir görev alıp R'ye dönüştürerek, sizin parçanızda biraz sahte naivete sahip olarak yürüyeceğim - örneğin, Xi'an'ın ??sadece istenen değil bazı işlevlere bakmak için mükemmel önerisini izleyerek hafızadan doğru fonksiyonu çağırmak. Yeni başlayanlarınız neredeyse kesinlikle R'yi öğrendikçe mevcut süreçleri dönüştürecekler, sıfırdan yazmıyorlar - neden onlara tam olarak nasıl gideceğinizi göstermiyorsunuz?

Bunun iyi bir örneği sadece veri yüklemek, bazı tanımlayıcıları gerçekleştirmek ve bazı temel grafikleri ortaya çıkarmak olabilir. lm()çok, çok basit olabilir ve anlayacakları sonuçlar üretir ve SPSS çıktısıyla karşılaştırabilir, böylece bu da kapsaması iyi olabilir.

Ev ödevi için, basit süreçlerinden birini dönüştürme veya çok aşina oldukları bir veri kümesini yükleme ve keşfetme konusunda bir bıçak almalarını sağlayın. İşlerin nerede yanlış gittiğini anlamak için onlara bire bir zaman verin, ardından bir sonraki oturumdakileri daha fazla örnek dönüşümle kaplayın. Listenizdeki kavramlar kaçınılmaz olarak ortaya çıkacaktır (benim bahsim: faktörler ve karakter vektörleri, vs.'ye karşı) - ve sonra onları kapsayan gerçek dünya motivasyonuna sahip olacaksınız. Eğer gelmezlerse ( attach), o zaman henüz gerçekten gerekli değildirler - eğer bu yeni başlayanlarınızın erken bir süre deyimsiz bir kod yazdığı anlamına gelirse (for yerine apply) , zararı görmüyorum.

Bu şekilde, öğrencileriniz yabancı dil öğrencilerinin yaptığı gibi ilerleyebilir (veya en azından benim yaptığım gibi): basit ifadelerin kaba çevirisi daha karmaşık ifadeler için istek uyandırır, bu da daha derin bir dilbilgisi anlayışına neden olur bu da sonunda deyimsel ifadeye yol açar. "Dilbilgisi" ne çok erken atlamayın ve onlara sormadıkları şeyleri öğretme konusunda fazla endişelenmeyin çünkü muhtemelen yine de unutacaklardır. Deyimsel ifade hakkındaki nazik işaretçiler harika ( forvs apply), ancak asıl şey, onların çıktı üretmelerini ve kendi başlarına keşfetmelerini sağlamaktır.


(+1) Teşekkürler, Matt, kulağa harika tavsiyeler gibi geliyor. Özellikle son iki paragrafı seviyorum.
chl

Matt teşekkürler (ve herkes - tüm mükemmel yardım). Kesinlikle kullanacağım ?? ve laboratuvarda ve ödev olarak diğer yazılımlarla yaptıkları ortak görevleri yeniden oluşturmalarını sağlamak (temelde çapraz sekme paketi olan SPSS ve Harmoni). Sadece bir şeyi açmalarını ve nereden başlayacaklarını bilmelerini sağlamak için makul bir direktife ihtiyacım var (ve ders 1 planımı buna göre değiştirdim) ama laboratuvar dışında kendi kendine öğrenmeyi motive etmenin kesinlikle yol olduğunu düşünüyorum.
Peter Ellis

7

Tamam, işte şimdiye kadar insanların insanları daha fazla öğrenmeye teşvik etmelerini ve onları daha fazla öğrenmeye motive etmeleri konusunda kendi cevabım (en azından karmaşık anket analizi için ihtiyacımız olan şeylerden bazılarını yapamayan SPSS'den vazgeçmeye çalışıyorum) yapmayı reddeden daha fazla modül satın almadan).

İlk oturumun sonunda şunları yapabilmelisiniz:

temeller

  • Basit hesaplamalar yapmak için arayüzü kullanın (hesap makinesi olarak R kullanın)
  • Bir komut dosyası penceresi başlatın, kaydedin ve yükleyin ve verimli bir şekilde kullanın
  • Çalışma alanınızdaki nesneleri oluşturma ve kaldırma
  • Hangi klasörün çalışma klasörünüz olduğunu görün
  • P: / R / yourid klasörünün nasıl çalıştığını ve çıkışta bir çalışma alanının kaydedilmesinin ne olduğunu anlayın
  • XXX dahil bir çalışma alanının görüntüsünü yükleyin (yaygın olarak kullanılan verilerimiz)
  • Bellekteki nesneleri listele
  • Veri çerçevesindeki sütunların (değişkenlerin) adlarını listeleyin
  • Bir nesneyi ekrana yazdırma
  • Veri çerçevesi ekleme ve ayırma
  • Ne anlama geldiğini bilin: nesne, işlev, bağımsız değişken (bir işleve), çalışma alanı, vektör, veri çerçevesi, matris, sayısal, faktör
  • Bir işlev hakkında nasıl yardım arayacağınızı öğrenin
  • Kullanın ?? ilgili fonksiyonların bir listesini bulmak için
  • Daha fazla kaynak için web'e ve yerel kitaplarımıza ve LAN'ımıza nereye gitmeli
  • spesifik istatistiksel teknikler üzerinde laboratuar oturumlarına katılmak için yeterli R temellerini anlayabilecek

Veri işleme

  • : İşlecini kullanarak bir sayı vektörü oluşturma
  • Bir değişken için bir sayım tablosu yapın
  • İki değişken için sayıları çapraz tablo haline getirme
  • Daha fazla manipülasyon için yeni bir nesne oluşturun (örn. Yukarıdaki tablolardan biri)
  • Bir matris veya tablo dönüştürme
  • Tapply () kullanarak bir faktöre göre sürekli değişkenin bir vektörünü oluşturma
  • Birkaç vektörü cbind () veya data.frame () kullanarak birbirine bağlayın
  • [] Kullanarak bir matrisin alt kümesi oluşturma
  • Logaritma veya karekök gibi basit bir dönüşüm oluşturun

İstatistik

  • İki sürekli değişkenin korelasyonunu hesaplar

Grafik

  • Sürekli değişkenin histogramını oluşturma
  • Bir grafik penceresi oluşturun ve 2 veya 4 parçaya bölün
  • Sürekli bir değişkenin yoğunluk çizgisi grafiği oluşturma
  • İki sürekli değişkenden oluşan bir dağılım grafiği oluşturma
  • Dağılım grafiğine düz bir çizgi ekleme (dikey, yatay veya ab)
  • Eksenler ve başlıklar için etiketler oluşturma

Üç seansın sonunda ve aralarında bir dizi egzersiz yaparak şunları da yapabilmeniz gerekir:

temeller

  • SPSS veya .csv biçiminde veri içe aktarma
  • Yeni başlamak için çalışma alanınızdaki tüm nesneleri kaldırın
  • paket kütüphanesi kullan
  • Bir çalışma alanı görüntüsünü kaydedin ve temel R ve bellek ilkelerini anlayın
  • Rasgele değişkenler oluşturun
  • Bir vektör oluşturmak için c () kullanın
  • Yeni yöntem ve teknikleri öğrenmek için nereye gideceklerini iyi hissedin

Veri işleme

  • Gerçek bir veri kümesinde toplama () kullanın, örneğin ziyaretçilerin aylara ve ülkelere göre gelen numaraları
  • % Operatörlerinde ==,! = Ve%; mantıksal vektörler; ve verileri alt kümeye ayarlamak için kullanma
  • ifelse () ve bunu yeni değişkenler oluşturmak için kullanma
  • max, min ve benzeri fonksiyonlar ve vektörlerle nasıl çalıştıkları
  • Çok sayıda sonucu depolamak için bir vektör veya matris oluşturma
  • Benzer bir işlevi birçok kez tekrarlamak için bir döngü kullanın
  • Bir matrisin her sütununa veya satırına bir işlev uygulamak için Apply () yöntemini kullanın
  • Sıralı bir faktör oluşturma
  • Sayısal bir değişkeni yeniden kodlamak için cut () yöntemini kullanın

İstatistik

  • Beklenmedik tablo için ki kare testi
  • Korelasyonların sağlam versiyonları
  • Sonuçları bir nesneye yerleştirerek ve sonuçlara bakmak için anova (), özet () ve plot () kullanarak iki sürekli değişkene doğrusal bir model sığdırın
  • Modellerinizi ve R'de nasıl çalıştıklarını, becerilerinizi daha geniş bir model tipine uygulamaya hazır olacak şekilde anlayın
  • Cor (), mean () veya var () gibi temel bir işlevde bootstrap gerçekleştirmek için boot () kullanın
  • Gerçek hayattaki veri kümesinde sample () kullanın

Grafik

  • Bir faktörün farklı seviyeleri göz önüne alındığında, sürekli değişkenin bir kafes yoğunluk çizgisi grafiği oluşturma
  • qqnorm
  • faktörün farklı seviyelerini gösteren farklı renk ve karakter noktalarına sahip bir dağılım grafiği oluşturmak; mevcut bir dağılım grafiğine nokta veya çizgi ekleme
  • efsane ekle
  • dotcharts
  • errbar ()
  • sayfada birden çok grafik çizmek için döngü kullanma

2
Kurulumunuz göz önüne alındığında, bu makul görünüyor, ancak yeni başlayanlarla bir saat içinde ele alınacak çok şey var . Kendine yeterlilik geliştirmek için ellerindeki kaynakları sürekli vurgularım. Özellikle, yardım dosyalarının yüklenmesi ve kullanımı ile birlikte gelen R kılavuzunu gözden geçirin. Örneğin, korelasyon ile başlamak için? Korelasyon, listenin nasıl aranacağını göstermek, sonra? Cor ve yardım okumak ve anlamak nasıl göstermek; belgelerden kor, kaldır, vb. öğretin . Ne kadar akıllı olurlarsa olsunlar, sadece bir saatlik bir sınır vardır - bilgi almayı ve kendi başlarına sorun gidermeyi öğrenmeleri gerekir .
gung - Monica'yı eski durumuna döndürün

1
Sana 10 dakika kadar yürüdüğümü düşünüyorum, bu yüzden bir kahvenin üzerinde herhangi bir şeyin üstesinden gelmek istiyorsan bana bağır. :)
Michelle

Öncelikle ne olduğunu sanmıyorum , nasıl . Bu, öğrencilerin bir şeyleri kısmen kendi başlarına öğrenmelerini sağlamak ve elde kapsamlı bir hile sayfasına + bazı ev ödevlerine sahip olmakla ilgilidir.
Ondrej

@Michelle - kulağa hoş geliyor, peter.ellis [at] med.govt.nz adresine e-posta gönder
Peter Ellis

4
Bu inanılmaz iddialı bir liste! Tüm bunları üç saat içinde kapsadığınızı hayal edemiyorum - bunları üç saat içinde kapsayacak kelimeleri bile söyleyebileceğimi sanmıyorum, çok daha az soruya cevap verin. Tamamen atlayacağım birkaç kavram var: çalışma alanları (bunları kullanmamayı tercih ediyorum - koddan her şeyi yeniden oluşturmak kodu daha sağlam hale getirir), ekleyin (ayrıca özellikle ortamları anlamayan yeni kullanıcılar için sorunlu), aktarma (önemsiz ihtiyaç duyduğunuzda bakmak için) ve cbind (neredeyse hiç kullanmıyorum).
Matt Parker

2

Peter listesine eklemek istiyorum:

  1. alt küme veri çerçeveleri: gözlemle alt küme (örneğin 3'ün üzerindeki tüm yanıtlar), değişkene göre alt küme.
  2. ifelse ifadeleri kullanın (bu benim için çok büyük bir öğrenme eğrisiydi, if ifadesinin türünü kullanmaya çalıştım), özellikle iç içe ifelse.
  3. toplama komutunu kullanarak verileri daha küçük bir veri çerçevesinde özetleyin.
  4. == operatörünü kullanmayı öğrenme.
  5. = yerine <- kullanarak
  6. değişkenleri yeniden adlandır
  7. A veri çerçevesindeki bir değişkense ve B tek bir değerse, SAS'taki max (A, B) gibi temel vektörleştirme tuzakları R'de max (A, B) 'nin yaptıklarını yapmaz. SAS kodu (ve muhtemelen SPSS kodu) eşdeğerini yapmak için bir ifelse deyimi kullanın.
  8. eklemek yerine ile kullanın. :)

Daha fazla düşünce: Muhtemelen COMPUTEçok şey kullanıyorlar SPSS, bu yüzden bunu nasıl yapacağınızı kapsamak Riyi olacaktır. Ayrıca, RECODER'de değişkenlere nasıl bakılırsa Ben SPSS"analiz dışı" çalışmamın çoğunun bu iki komutu kullandığını düşünüyorum.


1
Pmax'a bir göz atın ...
Elvis

@ Xi'an, şimdi bir göz atmak (ya da bir dürtme!) :)
Michelle

2
Kapsayan zaman ifelseçalıştığını ve dokümantasyon aracı ne uyarı ne onlara göstermek emin olun. Bunu düşündüğünüzde mantıklı bir şekilde çalışır, ancak ifelsedeğişken türlerini "değiştirmek" ve çok fazla zaman kaybına neden olmak konusunda tam bir karışıklık gördüm .
Wayne

2
@ Xi'an: R yardımı, "operatöre = yalnızca en üst düzeyde izin verilir (örneğin, komut istemine yazılan tam ifadede) veya hazır ifadeler listesindeki alt ifadelerden biri olarak" izin verilir. Blogunuzda belirtilenden başka durumları düşünebilirim, ancak şu ana kadar sadece C-ish şeyleri: a <- 1:5 ; b <- 4 ; a[b = 3] ; b ; a[b <- 3] ; babonelik aynı sonuçları veriyor, ancak bfarklı (ilk kez değişmedi, ikinci kez değişti). =Atama olması gerekiyordu asla ve R daha lezzetli hale getirmek için denemek için değiştirildi asla gerekirdi. Yapma.
Wayne

1
@Elvis +1000 internet size göre, bu pmaxharika çalışıyor.
Michelle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.