İstatistiksel bir analiz projesi nasıl verimli bir şekilde yönetilir?


89

Bilgisayar biliminde proje yönetimi ve tasarım kalıplarını sık sık duyuyoruz, ancak istatistiksel analizde daha az sıklıkta duyuyoruz. Bununla birlikte, etkili ve dayanıklı bir istatistiksel proje tasarlamaya doğru belirleyici bir adımın işleri düzenli tutmak olduğu görülmektedir.

Genellikle R ve tutarlı bir dosya düzenini ayrı klasörlerde (ham veri dosyası, dönüştürülmüş veri dosyası, R komut dosyaları, şekiller, notlar vb.) Kullanmayı savunuyorum. Bu yaklaşımın ana nedeni, analizinizi daha sonra yürütmek için daha kolay olabilir (örneğin, belirli bir arsa üretme şeklinizi unuttuğunuzda).

İstatistiksel proje yönetimi için en iyi uygulamalar veya kendi deneyimlerinizden vermek istediğiniz tavsiyeler nelerdir? Tabii ki, bu herhangi bir istatistiksel yazılım için de geçerlidir. ( gönderim başına bir cevap, lütfen )


Bu soruyu konu dışı olarak kapatmak için oy kullanıyorum çünkü bu proje yönetimi ile ilgili
Aksakal

2
@Aksakal: Bence sen biraz sertsin. :) " İstatistiklerle ilgilenen insanlar " ile ilgilidir. Ayrıca 70+ oy, standart kullanıcıların bu soruyu ilgi çekici ve yararlı bulduğunu şiddetle tavsiye ediyor.
usεr11852

1
Bu konunun burada ele alınması gerektiğini düşünüyorum.
gung

@gung Belki konu hakkında konuşabilmek için bu Meta başlığına bir cevap eklemek ister misiniz?
amip 15

Yanıtlar:


80

SO (@Shane tarafından önerildiği gibi), Biostar (bundan sonra BS) ve bu SE'de buldum hızlı bir kılavuz ilkeleri derliyorum . Her bir öğenin sahipliğini kabul etmek ve ilk veya çok fazla oy alan yanıtı seçmek için elimden geleni yaptım. Ayrıca, [R] ortamına özgü kendi öğelerimi ve işaretlenmiş öğeleri de ekledim.

Veri yönetimi

  • Her şeyi doğru yerde tutmak için bir proje yapısı oluşturun (veri, kod, rakamlar vb., Giovanni / BS)
  • Ham veri dosyalarını hiçbir zaman değiştirmeyin (ideal olarak salt okunur olmalıdır), dönüştürme, temizleme vb. Yaparken yenilerini kopyalayın / yeniden adlandırın.
  • Veri tutarlılığını kontrol et ( whuber / SE)
  • GNU make ( Karl Broman / Zachary Jones ) gibi bir derleme otomasyon aracıyla script bağımlılıklarını ve veri akışını yönetin

Kodlama

analiz

  • RNG'yi veya stokastik algoritmaları çağırırken kullandığınız tohumu ayarlamayı / kaydetmeyi unutmayın (örn. K-araçları)
  • Monte Carlo çalışmaları için özellikleri / parametreleri ayrı bir dosyada saklamak ilginç olabilir ( sumatra iyi bir aday olabilir, giovanni / BS)
  • Kendinizi değişken başına bir komployla sınırlandırmayın, çok değişkenli (Trellis) ekranlar ve etkileşimli görselleştirme araçları kullanın (örn. GGobi)

Sürüm

  • Kolay takip / ihracat için bir çeşit revizyon kontrolü kullanın , örneğin Git ( Sharpie / VonC / JD Long / SO) - bu, @Jeromy ve @Tal tarafından sorulan güzel sorulardan gelir.
  • Her şeyi düzenli aralıklarla yedekleyin ( Sharpie / JD Long / SO)
  • Fikirlerinizin kaydını tutun veya ditz ( giovanni / BS) gibi bir sorun izleyicisine güvenin - Git'te mevcut olduğundan önceki öğeye kısmen yedekleyin.

Düzenleme / Raporlama

Bir ek not olarak, Hadley Wickham, yeniden üretilebilir örnekleme ve birleşik bir veri felsefesi dahil olmak üzere R proje yönetimine kapsamlı bir genel bakış sunmaktadır .

Son olarak, R-odaklı istatistiksel veri analizi çalışma akışında Oliver Kirchkamp, ​​belirli bir iş akışını benimseme ve bunlara uymanın istatistikçilerin birbirleriyle işbirliği yapmasına yardımcı olurken, sonuçların veri bütünlüğünü ve tekrarlanabilirliğini sağlar. Ayrıca, dokuma ve versiyon kontrol sistemi kullanmaya ilişkin bazı tartışmaları içerir. Stata kullanıcıları J. Scott Long'un Stata'yı Kullanarak Veri Analizi İşini de faydalı bulabilirler.


Harika iş chl! Bunu blogumda nerede yayınlayacağım senin için uygun olur mu? (Demek istediğim, bu metin cc, bu yüzden yapabilirdim, ama herhangi bir şekilde izin
vermeni

@Tal Sorun değil. Kapsamlı bir liste olmaktan uzak, ancak belki daha sonra diğer faydalı linkleri toplayabilirsiniz. Ayrıca, daha iyi bir şekilde uyum sağlamak veya yeniden düzenlemek için çekinmeyin.
chl

+1 Bu güzel bir liste. "Bunu kabul etmeyi" düşünebilirsiniz, böylece her zaman üsttedir; CW olduğuna göre, herkes güncel tutabilir.
Shane

@Shane Peki, çok faydalı linkler ile ilk cevabı verdiğiniz için size borçluyum. İstediğiniz şekilde eklemek / değiştirmek için çekinmeyin.
chl

Burada yeniden yayınladım. Harika liste! r-statistics.com/2010/09/…
Tal Galili

21

Bağlantılar için teşekkürler! Soru herhangi bir istatistiksel yazılıma açıktır - zaman zaman Python ve Stata kullanıyorum, bu yüzden doğrulanmış kullanıcıların burada ilginç tavsiyeler getirip getiremeyeceğini merak ediyorum.
chl

Kesinlikle; Bununla birlikte, yukarıdaki bağlantılarda verilen önerilerin herhangi bir istatistiksel projeye (dilden bağımsız olarak) gerçekten de uygulanabileceğini ekleyeceğim.
Shane

Kesinlikle evet! Sorumu aynı anda güncelledim.
chl

8

Bu, Shane'in cevabı ile örtüşüyor, ama bence iki ana ayak var:

  • Tekrarlanabilirlik ; sadece "bir şekilde" yapılan sonuçlarla bitmeyeceğiniz için değil, aynı zamanda analizi daha hızlı yeniden başlatabileceğiniz (diğer veriler üzerinde veya biraz değiştirilmiş parametrelerle) ve sonuçları düşünmek için daha fazla zamanınız olması nedeniyle değil. Büyük bir veri için, fikirlerinizi önce küçük bir "playset" üzerinde test edebilir ve ardından tüm verilere kolayca genişletebilirsiniz.
  • İyi belgeler ; Versiyon kontrolü altındaki senaryoları, bazı araştırma dergilerini ve daha karmaşık projeler için bilet sistemini bile yorumladı. Tekrar üretilebilirliği artırır, hata izlemeyi kolaylaştırır ve nihai raporları önemsiz bir şekilde yazar.

+1 İkinci noktayı beğendim (Roxygen + Git kullanıyorum). İlk nokta, kodunuzu, projenin daha sonraki bir aşamasında, herhangi bir yardım almadan tekrar üretebilecek başka bir istatistikçiye verme olasılığını da düşündürüyor.
chl

Yeniden üretilebilirlik? Verilerin yine de rasgele bir hatası var, kimin umurunda. Belgeler? İki olası cevap: 1) Çok meşgulüz, dokümantasyon için zamanımız yok veya 2) Sadece analizi yapmak veya belgelemek için bütçemiz vardı, bu yüzden analizi yapmayı seçtik. Şaka yaptığımı mı düşünüyorsun? Bu tavırları birçok kez gördüm - duydum - hayatların sürdüğü projelerde.
Mark L. Stone,


1

Sadece 2 sentim. Bunun için Notepad ++ 'ı faydalı buldum. Her proje için ayrı komut dosyaları (program kontrolü, veri formatlama, vb.) Ve bir .pad dosyası tutabilirim. .Pad dosya araması, bu projeyle ilişkili tüm komut dosyalarıdır.


3
Yani, npptor kullanımı ile notepad ++ :)
Tal Galili

1

Diğer cevaplar harika olsa da, başka bir duygu daha eklerdim: SPSS kullanmaktan kaçının. SPSS'i yüksek lisans tezi için ve şimdi de pazar araştırmasında normal işimde kullandım.

SPSS ile çalışırken, SPSS'nin birden fazla dosyayı işlemede kötü olması nedeniyle (çok sayıda dosyayı işleyebildiğinizden emin olun, ancak R kadar ağrısız değildir), çünkü veri kümelerini depolayamadığınız için organize istatistik kodunu geliştirmek çok zordu. bir değişkene - "veri kümesi etkinleştirme x" - kodunu kullanmanız gerekir, ki bu tam bir acı olabilir. Ayrıca, sözdizimi tıknazdır ve kodu daha okunaksız kılan kısaltmaları teşvik eder.


0

R / Python / Matlab / etc ile çalışan Jupyter Notebooklar, hangi betiğin belirli bir rakam oluşturduğunu hatırlamanın güçlüğünü ortadan kaldırıyor. Bu gönderi , kodu ve rakamı yan yana tutmanın düzenli bir yolunu açıklar. Bir kağıt veya tez bölümü için tüm rakamları tek bir defterde tutmak, kodlanmış kodun bulunmasını çok kolaylaştırır.

Daha da iyisi, aslında, istediğinizi bulmak için bir düzine rakam arasından geçebilirsiniz. Kod gerekli olana kadar gizli tutulur.

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.