Bagaimana cara mengelola proyek analisis statistik secara efisien?

89

Kita sering mendengar tentang manajemen proyek dan pola desain dalam ilmu komputer, tetapi lebih jarang dalam analisis statistik. Namun, tampaknya langkah yang menentukan untuk merancang proyek statistik yang efektif dan tahan lama adalah menjaga semuanya tetap teratur.

Saya sering menganjurkan penggunaan R dan organisasi file yang konsisten dalam folder terpisah (file data mentah, file data yang diubah, skrip R, angka, catatan, dll.). Alasan utama untuk pendekatan ini adalah bahwa mungkin lebih mudah untuk menjalankan analisis Anda nanti (ketika Anda lupa bagaimana Anda menghasilkan plot yang diberikan, misalnya).

Apa praktik terbaik untuk manajemen proyek statistik , atau rekomendasi yang ingin Anda berikan dari pengalaman Anda sendiri? Tentu saja, ini berlaku untuk semua perangkat lunak statistik. ( satu jawaban per posting, silakan )

chl
sumber
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena ini tentang manajemen proyek
Aksakal
2
@Aksakal: Saya pikir Anda agak kasar. :) Ini relevan dengan " orang yang tertarik dengan statistik ". 70+ suara sangat menyarankan pengguna standar menemukan pertanyaan yang menarik dan bermanfaat ini.
usεr11852
1
Saya pikir ini harus dipertimbangkan pada topik di sini.
gung - Reinstate Monica
@gung Apakah Anda ingin menambahkan jawaban ke utas Meta agar kami dapat membahasnya?
amoeba

Jawaban:

80

Saya menyusun serangkaian panduan cepat yang saya temukan di SO (seperti yang disarankan oleh @Shane), Biostar (selanjutnya, BS), dan SE ini. Saya mencoba yang terbaik untuk mengakui kepemilikan untuk setiap item, dan untuk memilih jawaban pertama atau sangat tervvotasikan. Saya juga menambahkan barang-barang saya sendiri, dan item yang ditandai yang spesifik untuk lingkungan [R].

Manajemen data

  • Buat struktur proyek untuk menjaga semua hal di tempat yang tepat (data, kode, angka, dll., Giovanni / BS)
  • Jangan pernah memodifikasi file data mentah (idealnya, ini hanya untuk dibaca), salin / ganti nama dengan yang baru saat melakukan transformasi, pembersihan, dll.
  • Periksa konsistensi data ( whuber / SE)
  • Kelola dependensi skrip dan aliran data dengan alat otomatisasi build, seperti pembuatan GNU ( Karl Broman / Zachary Jones )

Coding

  • mengatur kode sumber dalam unit logis atau blok bangunan ( Josh Reich / hadley / ars / SO; giovanni / Khader Shameer / BS)
  • pisahkan kode sumber dari pengeditan, terutama untuk proyek besar - sebagian tumpang tindih dengan item sebelumnya dan pelaporan
  • Dokumentasikan semuanya, dengan misalnya [R] oksigen ( Shane / SO) atau anotasi mandiri yang konsisten dalam file sumber - diskusi yang baik tentang Medstats, Pendokumentasian analisis, dan pengeditan data. Pilihan
  • [R] Fungsi khusus dapat dimasukkan ke dalam file khusus (yang dapat diambil jika diperlukan), di lingkungan baru (sehingga untuk menghindari mengisi namespace tingkat atas, Brendan OConnor / SO), atau paket ( Dirk Eddelbuettel / Shane / SO)

Analisis

  • Jangan lupa untuk mengatur / merekam seed yang Anda gunakan saat memanggil RNG atau algoritma stokastik (mis. K-means)
  • Untuk studi Monte Carlo, mungkin menarik untuk menyimpan spesifikasi / parameter dalam file terpisah ( sumatra mungkin kandidat yang baik, giovanni / BS)
  • Jangan membatasi diri Anda pada satu plot per variabel, gunakan tampilan multivarian (Teralis) dan alat visualisasi interaktif (misalnya GGobi)

Versi

  • Gunakan semacam kontrol revisi untuk pelacakan / ekspor yang mudah, misalnya Git ( Sharpie / VonC / JD Long / SO) - ini mengikuti dari pertanyaan-pertanyaan bagus yang diajukan oleh @Jeromy dan @Tal
  • Cadangkan semuanya, secara teratur ( Sharpie / JD Long / SO)
  • Simpan log ide Anda, atau andalkan pelacak masalah, seperti ditz ( giovanni / BS) - sebagian berlebihan dengan item sebelumnya karena tersedia di Git

Pengeditan / Pelaporan

Sebagai catatan tambahan, Hadley Wickham menawarkan tinjauan komprehensif manajemen proyek R , termasuk contoh yang dapat direproduksi dan filosofi data yang terpadu .

Akhirnya, dalam Alur Kerja yang berorientasi analisis data statistik, Oliver Kirchkamp menawarkan tinjauan yang sangat terperinci tentang mengapa mengadopsi dan mematuhi alur kerja tertentu akan membantu ahli statistik berkolaborasi satu sama lain, sambil memastikan integritas data dan reproduktifitas hasil. Ini juga mencakup beberapa diskusi tentang penggunaan sistem kontrol versi tenun dan versi. Pengguna Stata mungkin menganggap J. Scott Long sebagai Alur Kerja Analisis Data Menggunakan Stata juga bermanfaat.

chl
sumber
Kerja bagus chl! Apakah Anda setuju jika saya mempublikasikan ini di blog saya? (Maksud saya, teks ini adalah cc, jadi saya bisa, tetapi saya ingin Anda mengizinkan dengan cara apa pun :)) Cheers, Tal
Tal Galili
@Tal Tidak masalah. Ini jauh dari daftar lengkap, tetapi mungkin Anda dapat mengumpulkan tautan berguna lainnya di lain waktu. Juga, merasa bebas untuk beradaptasi atau mengatur ulang dengan cara yang lebih baik.
chl
+1 Ini daftar yang bagus. Anda mungkin mempertimbangkan "menerima ini" sehingga selalu di atas; mengingat itu adalah CW, siapa pun dapat tetap memperbaruinya.
Shane
@Shane Yah, saya berhutang budi kepada Anda karena memberikan jawaban pertama dengan tautan yang sangat berguna. Jangan ragu untuk menambah / memodifikasi cara yang Anda inginkan.
chl
Saya menerbitkannya kembali di sini. Daftar hebat! r-statistics.com/2010/09/...
Tal Galili
21

Ini tidak secara khusus memberikan jawaban, tetapi Anda mungkin ingin melihat pertanyaan stackoverflow terkait ini:

Anda mungkin juga tertarik dengan proyek terbaru John Myles White untuk membuat templat proyek statistik.

Shane
sumber
Terima kasih atas tautannya! Pertanyaannya terbuka untuk perangkat lunak statistik apa pun - Saya menggunakan Python dan Stata dari waktu ke waktu, jadi saya ingin tahu apakah pengguna yang dikonfirmasi dapat membawa rekomendasi menarik di sana.
chl
Benar; walaupun saya akan menambahkan bahwa rekomendasi dalam tautan di atas dapat benar-benar berlaku untuk proyek statistik apa pun (apa pun bahasanya).
Shane
Pasti ya! Saya memperbarui pertanyaan saya pada saat yang sama.
chl
8

Ini tumpang tindih dengan jawaban Shane, tetapi dalam pandangan saya ada dua dermaga utama:

  • Reproduksibilitas ; bukan hanya karena Anda tidak akan mengakhiri dengan hasil yang dibuat "entah bagaimana" tetapi juga dapat menjalankan kembali analisis lebih cepat (pada data lain atau dengan parameter yang sedikit berubah) dan memiliki lebih banyak waktu untuk memikirkan hasilnya. Untuk data yang sangat besar, Anda dapat terlebih dahulu menguji ide-ide Anda pada beberapa "playset" kecil dan kemudian dengan mudah memperluas seluruh data.
  • Dokumentasi yang bagus ; skrip komentar di bawah kontrol versi, beberapa jurnal penelitian, bahkan sistem tiket untuk proyek yang lebih kompleks. Meningkatkan reproduksibilitas, membuat pelacakan kesalahan lebih mudah dan menulis laporan akhir yang sepele.
pengguna88
sumber
+1 Saya suka titik kedua (saya menggunakan roxygen + git). Poin pertama membuat saya berpikir juga tentang kemungkinan untuk memberikan kode Anda kepada ahli statistik lain yang akan dapat mereproduksi hasil Anda pada tahap selanjutnya dari proyek, tanpa bantuan apa pun.
chl
Reproduksibilitas? Data memiliki kesalahan acak, jadi siapa yang peduli. Dokumentasi? Dua kemungkinan jawaban: 1) Kami terlalu sibuk, kami tidak punya waktu untuk dokumentasi atau 2) Kami hanya punya anggaran untuk melakukan analisis atau mendokumentasikannya, jadi kami memilih untuk melakukan analisis. Anda pikir saya bercanda? Saya telah melihat / mendengar sikap ini pada banyak kesempatan - pada proyek-proyek di mana kehidupan naik di telepon.
Mark L. Stone
4

van Belle adalah yang sumber untuk aturan proyek statistik sukses.

Carlos Accioly
sumber
1

Hanya 2 sen saya. Saya menemukan Notepad ++ bermanfaat untuk ini. Saya dapat mempertahankan skrip terpisah (kontrol program, pemformatan data, dll.) Dan file .pad untuk setiap proyek. Panggilan file .pad adalah semua skrip yang terkait dengan proyek itu.

Wes McCardle
sumber
3
Maksud Anda, notepad ++ dengan penggunaan npptor :)
Tal Galili
1

Sementara jawaban lainnya bagus, saya akan menambahkan sentimen lain: Hindari menggunakan SPSS. Saya menggunakan SPSS untuk tesis master saya dan sekarang pada pekerjaan reguler saya dalam riset pasar.

Saat bekerja dengan SPSS, sangat sulit untuk mengembangkan kode statistik terorganisir, karena fakta bahwa SPSS buruk dalam menangani beberapa file (tentu saja, Anda dapat menangani banyak file, tetapi tidak semudah R), karena Anda tidak dapat menyimpan kumpulan data ke variabel - Anda harus menggunakan "dataset activate x" - kode, yang bisa sangat menyakitkan. Juga, sintaksnya kikuk dan mendorong singkatan, yang membuat kode lebih tak terbaca.

Sauer Kristen
sumber
0

Jupyter Notebooks, yang bekerja dengan R / Python / Matlab / etc, menghilangkan kerumitan mengingat skrip yang menghasilkan angka tertentu. Posting ini menjelaskan cara rapi menjaga kode dan gambar tepat di samping satu sama lain. Menyimpan semua angka untuk makalah atau bab tesis dalam satu buku catatan membuat kode terafiliasi sangat mudah ditemukan.

Bahkan lebih baik, karena Anda dapat menggulir, katakanlah, selusin angka untuk menemukan yang Anda inginkan. Kode ini disembunyikan sampai dibutuhkan.

hugke729
sumber