Orijinal başlık: Eğitim giflerim için kod
Yazar: Rafael Irizarry
Çeviri: Jia Lin
Bu makalenin uzunluğu 1800 kelime , Okumanız tavsiye edilir 4 dakika
Rafael Irizarry, Harvard Üniversitesi ve Dana-Farber Kanser Enstitüsü'nde uygulamalı istatistik profesörüdür. Genomik üzerine odaklanır ve çeşitli veri bilimi dersleri verir. Bu makalede, derslerinde kullanılan gif animasyonunun R dili kaynak kodunu açıkladı ve ayrıca veri biliminin ilkelerini anlamak isteyen okuyucular için ilgili birkaç konuyu ve görselleştirme için R dilini nasıl kullanacağını kısaca tartıştı. Tüm yardım.
Günlük öğretim sürecinde bazen kavramları canlı bir şekilde açıklamak ve @rafalab hesabı (https://twitter.com/rafalab) üzerinden sosyal medyada paylaşmak için animasyon kullanıyorum.
John Storey geçenlerde bana kaynak kodunu herkese açık hale getirip getiremeyeceğimi sordu. Çok organize olmadığım ve bu animasyonların hepsi beyin fırtınası yapıldığından, önceki kodlar birbiriyle ilgisiz birkaç dosyaya dağılmış durumda. John'un isteği, bu kodları bir araya getirip burada yayınlamamı istedi.
Tüm gif animasyonları, R dilinde çizilmiş birkaç resimle birleştirilmiştir. Kodda bulabileceğiniz gibi, tek tek resimleri animasyonlu giflere dönüştürmek için birkaç farklı yöntem kullandım. İlk yöntem (önerilmez), görüntü dosyasını depolamak ve ardından ImageMagick dönüştürme aracını (https://www.imagemagick.org/script/index.php) çağırmaktır. R ortamında, şu anda kullandığım yöntem animasyon paketinin saveGIF işlevidir ve bu, Simplystats blogumdaki okuyucu Yihui Xie'nin yorumlarıyla öğrendim. Ggplot ile çizim yaparken, David Robinson'ın gganimate paketini (https://github.com/dgrtwo/gganimate) kullanacağım. Son yöntem, özel efektler (faz ayarı gibi) eklerken kullanacağım şey: çevrimiçi Hareketli GIF oluşturucu (https://ezgif.com/maker).
Aşağıda bu gif animasyonlarının kaynak kodu yer almaktadır, kabaca bunları popülerliğe göre sıraladım. Kod aceleyle yazıldığı için lütfen bana çok sert davranmayın. Aslında dilediğiniz zaman eleştirebilirsiniz, biz böyle öğreniriz.
Simpson Paradoksu
Bu gif, Simpson paradoksunu göstermektedir: X değişkeni ile Y değişkeninin güçlü bir negatif korelasyona sahip olduğunu görüyoruz. Bununla birlikte, karıştırıcı faktör Z değişkeniyle katmanlaştığımızda ve Z'yi temsil etmek için farklı renkler kullandığımızda, her katmandaki korelasyon pozitif bir korelasyona dönüştürülecektir. Buradaki veriler hayal ürünüdür, ancak X'in bir öğrencinin derse kaç kez katıldığını ve Y'nin dokuzuncu sınıfın test puanını temsil ettiğini ve ardından sekizinci sınıfın Z test puanının öğrencileri sınıflandırmak için kullanıldığını varsayalım. Bu fenomeni de bulacağız.
Bu hareketli resim yalnızca üç resimden oluşmaktadır. Bunları kaydetmek için RStudio'nun Dışa Aktarma işlevini kullanıyorum ve ardından GIF oluşturmak için Animasyonlu GIF oluşturucuyu (https://ezgif.com/maker) kullanıyorum. Bu üç resmin kodu aşağıdadır:
Yerel Ağırlıklı Regresyon Dağınık Düzeltme Yöntemi (Loess)
Paylaştığım ilk öğretim animasyonu, yerel ağırlıklı regresyon saçılım yumuşatma (Loess) ilkesini açıklamaktı. Özellikle, x0 gibi her bağımsız değişken için, yakındaki herhangi bir nokta için pozitif bir ağırlıklandırma değerine sahip olmasına izin verin, bir çizgiye sığdırmak için ağırlıklı regresyon kullanın, uydurmadan sonra elde edilen sonucu koruyun ve ardından bir sonraki noktaya geçin .
Buradaki veri kaynağı belli bir gen çip deneyidir. Şekilde gösterilen MA grafiği, yani orantılı logaritma ile logaritmik ortalama arasındaki ilişki. GIF animasyonlarını kaydetmek için animasyon paketini kullanıyorum.
Yaşam beklentisi ve doğurganlık oranı
Bu gif, Hans Rosling'in (https://en.wikipedia.org/wiki/ Hans_Rosling) "Yoksulluk Üzerine Yeni Görüşler" (https://www.ted.com / talks / hans_rosling_reveals_new_insights_on_poverty? language = tr)). Bu resim, yanlış anlamaların ortadan kaldırılmasında veri görselleştirmenin rolünün iyi bir göstergesidir.Hans Rosling, dünyayı ikiye bölmenin 40 yıl önceki kadar basit olmadığını göstermek için bu hareketli resmi kullanıyor. Önceleri, insanlar genel olarak dünyayı daha uzun yaşam sürelerine ve daha küçük aile nüfusuna sahip Batı zengini ülkelere ve daha kısa yaşam sürelerine ve daha büyük aile nüfusuna sahip gelişmekte olan ülkelere böldüler.Bu resim bize bu bölünmenin mantıksızlığını gösteriyor.
Gganimate paketi sayesinde, bu resmi çizmek için kullanılan kod çok basit.
Birleşmiş Milletler seçim modeli
Burada, uzaklık kavramını açıklamak için Erik Voeten ve Anton Strezhnev tarafından sağlanan BM seçim verilerini kullanıyoruz.
Aşağıdaki koddur. Verileri düzenleme kodu David Robinson (https://twitter.com/drob) tarafından sağlanmaktadır. Zamanla değişen mesafeyi düzelttiğimizi göreceksiniz, böylece bazı noktaların çok geniş atlamasını önleyeceksiniz.
Rastgele orman
Geçmişte uzun bir süredir, ağaç tabanlı bir algoritma olarak rastgele ormanın neden düzgün tahminler üretebileceğini anlamakta zorlandım. Buradaki gif resmi nedenini anlamama yardımcı oluyor. 2008 başkanlık seçiminin veritabanını kullandım çünkü verilerin eğiliminin genel olarak düzgün olduğunu düşünüyorum, ancak birkaç keskin kenar var, hatta yerel ağırlıklı regresyon dağılım düzeltme yöntemini tahmin etmek zor. Unutulmamalıdır ki, sadece bir etki faktörümüz vardır Bu gif rastgele ormanın başka bir önemli özelliğini göstermez: rastgele özellik seçimi ağaçlar arasındaki korelasyon derecesini azaltabilir.
Kodda kullandığım yöntemin, önermediğim geleneksel yol olduğunu görebilirsiniz: tüm görüntü dosyalarını kaydedin ve sonra dönüştürmek için system komutunu çağırın.
Ekolojik yanlışlık
Simpson'ın Paradoksunun animasyonunu paylaştıktan sonra, bazı insanlar bana ekolojik yanlışlığın aynı olup olmadığını sordu. Aslında ikisi farklı. Ekolojik yanılgı, ortalamanın güçlü korelasyonu yoluyla bireyler arasındaki korelasyonu çıkarmaya çalışmamızdır. Daha iyi açıklamak için, yenidoğan sağkalım oranının logaritmasını ve ortalama günlük gelirin logaritmasını gösteren animasyonlu bir grafik çizmek için dslabs paketindeki ( gapminder verilerini kullandım. Arasındaki ilişki. Bölgesel düzeyde ikisi arasındaki ilişkinin çok yüksek olduğu ancak ulusal düzeyde korelasyonun çok düşük olduğu görülmektedir. Bu, aynı bölgedeki ülkeler arasındaki farklılıklardan kaynaklanmaktadır.
GIF
Bu gif sadece üç resimden oluşmaktadır. Resimleri kaydetmek için RStudio'nun Dışa Aktarma işlevini ve ardından GIF oluşturmak için Hareketli GIF oluşturucuyu (https://ezgif.com/maker) kullanıyorum.
İlk resim bölgesel ortalama; Sahra altı Afrika ülkelerinin değerleri, bir ortalamanın birkaç farklı değere bölündüğünü görebilirsiniz; üçüncü resim ise tüm ülkelerin durumudur. Çok değişen (bu bölgeye kıyasla) bazı ülkeleri işaretledim ve renk körlüğüyle tanınabilecek renkler kullandım. Buradaki kod biraz karmaşık çünkü Gapminder verilerini önceden işlemem gerekiyor.
Bayes Kanunu
Bu basit GIF, çok düşük insidansa sahip bir popülasyona çok doğru bir teşhis yönteminin uygulanmasının tanı sonucunu göstermektedir. Gösterdiği şey, teşhis sonucunun pozitif olduğu bilindiğinde önceki hastalık olasılığının, teşhis yönteminin başlangıç test doğruluğundan daha düşük olmasıdır. Gerçek koşullu olasılığı belirlemek için Bayes Yasasını kullanabilirsiniz. Daha fazla ayrıntı için lütfen buraya bakın (https://simplystatistics.org/2014/10/17/bayes-rule-in-a-gif/).
GIF
Dinamik grafikler yaptığımız için, kod biraz karmaşık ve anlaşılması zor.
Pacman
Son olarak, bu animasyonu size pasta grafiklerinin tek kullanımını göstermek için yaptım.
GIF
Orijinal bağlantı:
https://simplystatistics.org/2017/08/08/code-for-my-education-gifs/
Editör: Huang Jiyan
Daha fazla heyecan için lütfen Tsinghua-Qingdao Veri Bilimi Enstitüsü WeChat resmi kamu platformu "THU Data Pie" sayfasını takip edin