Bagaimana cara membuat orang lain merawat data dengan lebih baik?

42

Tempat kerja saya memiliki karyawan dari berbagai disiplin ilmu, jadi kami menghasilkan data dalam berbagai bentuk. Akibatnya, setiap tim telah mengembangkan sistemnya sendiri untuk menyimpan data. Beberapa menggunakan Access atau database SQL; beberapa tim (ngeri saya) hampir sepenuhnya bergantung pada lembar kerja Excel. Seringkali, format data berubah dari proyek ke proyek. Dalam beberapa kasus menyebutnya 'sistem' terlalu baik.

Masalah yang ditimbulkannya adalah saya harus menulis kode baru untuk membersihkan data untuk setiap proyek, yang mahal; orang mengedit spreadsheet secara manual membuat reproduktifitas dan audit data nyaris mustahil; dan lebih buruk lagi, ada kemungkinan bahwa data hilang atau dibuat salah.

Saya telah diberi kesempatan untuk membahas masalah ini dengan anggota dewan perusahaan dan saya perlu memikirkan apa yang harus saya katakan kepadanya. Saya pikir saya sudah meyakinkannya bahwa kita memiliki masalah dan bahwa melakukan ini dengan benar akan memungkinkan ilmu pengetahuan yang lebih baik dan menghemat uang. Pertanyaannya adalah: apa yang harus kita tuju, dan bagaimana kita sampai di sana?

Lebih spesifik:

Bagaimana seharusnya kita menyimpan data, dengan cara yang memungkinkan kita melacaknya dari kreasi hingga penerbitan di kertas? (Database disimpan di server pusat?)

Bagaimana Anda melakukan standarisasi format database?

Apakah ada sumber daya yang baik untuk mendidik orang tentang cara merawat data? (Sebagai aturan umum, ahli kesehatan kerja dan insinyur bahan peledak bukanlah kutu buku data, jadi konten non-teknis lebih disukai.)

Richie Cotton
sumber
Pertanyaan judul berbeda dengan pertanyaan substantif dalam posting. Yang pertama bertanya tentang bagaimana meyakinkan orang untuk menjaga data, dan yang terakhir bertanya tentang yang terbaik untuk menyimpan data. Pertanyaan mana yang ingin Anda jawab?
Pasang kembali Monica

Jawaban:

16

Ada baiknya mempertimbangkan ide-ide dari dunia perangkat lunak. Khususnya Anda mungkin berpikir untuk menyiapkan: repositori kontrol versi dan server database pusat.

Kontrol versi mungkin membantu Anda keluar dengan file mengambang gratis, seperti Excel dan file teks, dll. Tapi ini juga bisa mencakup file yang terkait dengan data, seperti R, SAS, dll. Idenya adalah bahwa ada sistem yang melacak perubahan ke file Anda memungkinkan Anda untuk mengetahui apa yang terjadi kapan dan kembalikan ke suatu titik di masa lalu jika diperlukan.

Di mana Anda sudah memiliki database SQL, hal terbaik yang dapat Anda lakukan adalah mengatur server pusat dan menyewa DBA yang mampu . DBA adalah orang yang ditugaskan untuk memastikan dan memelihara integritas data. Bagian dari deskripsi pekerjaan melibatkan hal-hal seperti backup dan penyetelan. Tetapi bagian lain lebih relevan di sini - mengendalikan bagaimana data masuk ke sistem, memastikan bahwa kendala dipenuhi, kebijakan akses ada untuk mencegah kerusakan pada data, mengatur pandangan untuk mengekspos format data khusus atau disederhanakan, dll. Singkatnya, menerapkan metodologi di sekitar proses data. Bahkan jika Anda tidak menyewa DBA yang sebenarnya (yang bagus sangat sulit untuk direkrut), memiliki server pusat masih memungkinkan Anda untuk mulai berpikir tentang melembagakan semacam metodologi di sekitar data.

ars
sumber
3
Sepenuhnya menyetujui kontrol versi. Aku menggunakannya; begitu pula proporsi yang substansial dari pengembang dan ahli statistik. (Saya ingin melihat adopsi 100% tapi itu mimpi pipa lain untuk saat ini.) Yang sulit adalah membuat non-teknisi menggunakannya. Setiap ide dihargai.
Richie Cotton
2
@Richie Cotton: Saya tidak tahu mengapa, tetapi kontrol versi tampaknya menjadi konsep yang sulit untuk dipahami oleh non-techies. Orang-orang terus melakukan beberapa perubahan pada file, mengganti nama file dan mengirimkannya melalui email. Betapa aku benci file-file "PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc" ...
nico
12

Salah satu sumber daya online gratis adalah seperangkat Pedoman Praktik Baik Statistik dari Pusat Layanan Statistik di Universitas Reading .

Khususnya:

onestop
sumber
1
Tautan luar biasa. Saya pikir dua pesan penting untuk saya sampaikan adalah: kita perlu lebih banyak pemeriksaan data otomatis dan saya perlu mulai menjelaskan tentang memisahkan entri data dan presentasi data.
Richie Cotton
6

Saya pikir pertama-tama Anda harus bertanya pada diri sendiri: mengapa orang menggunakan Excel untuk melakukan tugas yang tidak dibuat untuk Excel?

1) Mereka sudah tahu cara menggunakannya 2) Berhasil. Mungkin dengan cara yang kikuk tetapi berhasil dan itulah yang mereka inginkan

Saya menyalin serangkaian angka, tekan tombol dan saya punya plot. Semudah itu.

Jadi, buat mereka mengerti keuntungan apa yang bisa mereka miliki dengan menggunakan set data terpusat, database yang tepat (perhatikan bahwa Access BUKAN salah satu dari mereka) dan sebagainya. Tapi ingat dua poin di atas: Anda perlu mengatur sistem yang berfungsi dan mudah digunakan.

Saya sudah terlalu sering melihat sistem yang membuat saya ingin kembali bukan ke Excel tetapi ke pena dan kertas!

Sama seperti contoh, kami memiliki sistem pemesanan yang mengerikan di mana saya bekerja.

Kami dulu harus mengisi formulir pemesanan yang merupakan spreadsheet Excel di mana Anda akan memasukkan nama produk, jumlah, biaya, dll. Ini akan menambah semuanya, menambahkan TVA dll, Anda mencetaknya, memberikannya kepada sekretaris yang akan membuat pesanan dan hanya itu. Tidak efisien, tetapi berhasil.

Sekarang kami memiliki sistem pemesanan online, dengan DB terpusat dan segalanya. Ini horor. Seharusnya saya tidak perlu 10 menit untuk mengisi formulir sialan karena cara pintas keyboard yang tidak asli dan berbagai keanehan perangkat lunak. Dan perhatikan bahwa saya cukup cerdas dalam bidang informatika, jadi bayangkan apa yang terjadi pada orang yang tidak menyukai komputer ...

nico
sumber
Setuju bahwa hal-hal harus ramah pengguna. Karena orang menjadi sangat protektif terhadap praktik kerja mereka, setiap perubahan harus membuat hidup orang lebih mudah atau mereka akan gagal.
Richie Cotton
5

Saya menggarisbawahi semua jawaban yang sudah diberikan, tetapi mari kita sebut kucing kucing: di banyak tempat kerja, hampir tidak mungkin meyakinkan manajemen bahwa investasi dalam perangkat lunak "eksotis" (eksotis bagi mereka, yaitu) diperlukan, apalagi mempekerjakan seseorang yang bisa menetapkan itu dan pertahankan. Saya telah memberi tahu beberapa klien bahwa mereka akan mendapat manfaat besar dari mempekerjakan ahli statistik dengan latar belakang menyeluruh pada perangkat lunak dan database, tetapi "tidak bisa melakukan" adalah jawaban umum.

Jadi selama itu tidak akan terjadi, ada beberapa hal sederhana yang dapat Anda lakukan dengan Excel yang akan membuat hidup lebih mudah. Dan yang pertama dari ini adalah kontrol versi tanpa keraguan. Info lebih lanjut tentang kontrol versi dengan Excel dapat ditemukan di sini .

Beberapa hal tentang penggunaan excel

Orang yang menggunakan EXCEL sangat sering menyukai fitur rumus EXCEL. Namun, ini adalah sumber kesalahan paling penting di dalam lembar EXCEL, dan masalah ketika mencoba membaca dalam file EXCEL sejauh pengalaman saya. Saya menolak bekerja dengan lembar yang berisi formula.

Saya juga memaksa semua orang yang bekerja dengan saya untuk mengirimkan lembar EXCEL dalam format biasa, artinya:

  • Baris pertama berisi nama-nama variabel yang berbeda
  • Spreadsheet dimulai di sel A1
  • Semua data dimasukkan ke dalam kolom, tanpa gangguan dan tanpa format.
  • Jika memungkinkan, data juga disimpan dalam format .csv. Tidak sulit untuk menulis skrip VBA yang akan mengekstraksi data, memformat ulang dan meletakkannya dalam file .csv. Ini juga memungkinkan untuk kontrol versi yang lebih baik, karena Anda dapat membuat dump data .csv setiap hari.

Jika ada struktur umum yang selalu dimiliki data, maka mungkin baik untuk mengembangkan template dengan makro VB yang mendasari untuk menambahkan data dan menghasilkan dataset untuk analisis. Ini secara umum akan menghindari bahwa setiap karyawan memiliki sistem penyimpanan data "jenius" sendiri, dan memungkinkan Anda untuk menulis kode Anda dalam fungsi ini.

Ini mengatakan, jika Anda bisa meyakinkan semua orang untuk menggunakan SQL (dan ujung depan untuk memasukkan data), Anda dapat menghubungkan R langsung ke yang itu. Ini akan sangat meningkatkan kinerja.

Struktur dan manajemen data

Sebagai aturan umum, data yang disimpan dalam database (atau lembar EXCEL jika mereka bersikeras) harus minimum absolut, yang berarti bahwa setiap variabel yang dapat dihitung dari beberapa variabel lain tidak boleh terkandung dalam database. Pikiran Anda, kadang-kadang bisa bermanfaat untuk menyimpan variabel-variabel yang diturunkan atau diubah juga, jika perhitungannya membosankan dan memakan waktu lama. Tetapi ini harus disimpan dalam database terpisah, jika perlu dikaitkan dengan yang asli.

Pikiran harus diberikan juga untuk apa yang dianggap sebagai satu kasus (dan karenanya satu baris). Sebagai contoh, orang cenderung menghasilkan deret waktu dengan membuat variabel baru untuk setiap titik waktu. Meskipun hal ini masuk akal dalam EXCEL, membaca data ini menuntut beberapa pembalikan dari matriks data. Sama untuk kelompok pembanding: Harus ada satu indikator kelompok dan satu variabel respons, bukan variabel respons untuk setiap grup. Dengan cara ini struktur data dapat distandarisasi juga.

Hal terakhir yang sering saya temui adalah penggunaan metrik yang berbeda. Panjangnya diberikan dalam meter atau sentimeter, suhu dalam Celcius, Kelvin atau Farenheit, ... Seseorang harus menunjukkan di ujung depan atau templat apa pun unit di mana variabel diukur.

Dan bahkan setelah semua hal ini, Anda masih ingin memiliki langkah kontrol data sebelum Anda benar-benar mulai dengan analisis. Sekali lagi, ini bisa berupa skrip apa pun yang berjalan setiap hari (misalnya semalam) pada entri baru, dan yang menandai masalah segera (di luar jangkauan, tipe yang salah, bidang yang hilang, ...) sehingga dapat diperbaiki secepat mungkin. Jika Anda harus kembali ke entri yang dibuat 2 bulan lalu untuk mencari tahu apa yang salah dan mengapa, Anda lebih baik mendapatkan beberapa "keterampilan Sherlock" yang baik untuk memperbaikinya.

2 sen saya

Joris Meys
sumber
Beberapa poin yang sangat menarik di sini. Meyakinkan orang untuk menyederhanakan dan menstandardisasi spreadsheet mereka cenderung lebih berhasil daripada membuat mereka mengabaikannya. Juga saya tidak tahu bahwa kontrol versi dapat diintegrasikan dengan Excel. Bagus untuk mengetahui.
Richie Cotton
2
Mengenai saran untuk tidak menyimpan variabel redundan: ini sesuai untuk RDBMS tetapi saya ingin menyarankan bahwa yang sebaliknya harus didorong untuk spreadsheet. Yang terakhir sangat rentan kesalahan sehingga mekanisme untuk mendeteksi dan memperbaiki kesalahan sangat berharga. Salah satu yang terbaik terdiri dari informasi yang berlebihan, seperti bidang yang dihitung dan ringkasan statistik. Misalnya, jika kolom C adalah rasio kolom A dan B, maka kesalahan dalam satu kolom di setiap baris yang diberikan dapat dideteksi dan biasanya diperbaiki.
whuber
1
@whuber: itulah yang kami periksa di langkah kontrol data. Anda dapat menggunakan kolom ekstra itu untuk memeriksa dengan cepat, tetapi Anda tidak harus menyimpannya di lembar terakhir. Rumus dalam spreadsheet adalah horor, dan semakin besar spreadsheet, semakin sulit untuk mendapatkan data darinya. Selain itu, dalam hal Excel Anda tetap akan memerangi perbedaan antara .xls dan .xlsx. Pastikan bahwa keputusan manajer untuk memperbarui Microsoft Office dapat memecahkan banyak kode jika Anda sangat bergantung pada file excel. Jadi: simpan sebagai csv, dan simpan file csv ini sekecil mungkin.
Joris Meys
Setelah menghabiskan sebagian besar dari 24 tahun terakhir karier saya untuk mengatasi data yang ditransmisikan dalam spreadsheet dan mengelola basis data yang besar, saya harus dengan hormat tidak setuju. Tidak ada yang namanya "kontrol" atas spreadsheet (apakah .xls, .xlsx, .wks, .wb *, dll) atau bahkan file csv. Kehadiran informasi yang berlebihan dalam file tersebut - bahkan ketika mereka hanya tersedia dalam bentuk cetak - telah berkali-kali menghidupkan kembali beberapa database yang cukup besar (100k + catatan). Setiap kali ini terjadi saya (dan klien saya) telah bersyukur atas redudansi.
whuber
@whuber: Kami melakukan kontrol data dengan skrip tambahan, mencari nilai yang tidak mungkin / pencilan / kasus aneh. Itulah yang saya maksud dengan langkah kontrol data. Ini adalah standar industri antara perusahaan seperti SGS dan lainnya yang melakukan analisis uji klinis dll. Informasi yang berlebihan yang diperlukan disimpan dalam database terpisah. Jika salah satu dari mereka gagal, yang lain diperlukan untuk kebangkitan. Jika Anda tidak memiliki sistem cadangan yang layak, yaitu ...
Joris Meys
3

VisTrails: Alur Kerja Ilmiah dan Sistem Provenance Berbasis Python . Pembicaraan yang diberikan di PyCon 2010 ini memiliki beberapa ide bagus. Layak untuk didengarkan bahkan jika Anda tidak tertarik menggunakan VisTrails atau python. Pada akhirnya saya pikir jika Anda dapat meminta ada cara dokumen yang jelas untuk mereproduksi data. Dan memerlukan beberapa validasi yang mereka bisa.

Mengutip:

"Dalam pembicaraan ini, kami akan memberikan gambaran tentang VisTrails ( http://www.vistrails.org ), alur kerja ilmiah open-source berbasis python yang secara transparan menangkap sumber (yaitu, garis keturunan) dari kedua produk data dan proses yang digunakan untuk memperoleh produk-produk ini. Kami akan menunjukkan bagaimana VisTrails dapat digunakan untuk merampingkan eksplorasi dan visualisasi data. Menggunakan contoh nyata, kami akan menunjukkan fitur-fitur utama dari sistem, termasuk kemampuan untuk secara visual membuat pipa pemrosesan informasi yang menggabungkan beberapa alat dan Perpustakaan seperti VTK, pylab, dan matplotlib. Kami juga akan menunjukkan bagaimana VisTrails memanfaatkan informasi sumber tidak hanya untuk mendukung reproduksibilitas hasil, tetapi juga untuk menyederhanakan pembuatan dan penyempurnaan pipa. "

Vincent
sumber
Python tidak tersebar luas di organisasi kami tetapi sepertinya proyek yang menarik. Saya akan melihat apakah saya dapat mencubit beberapa ide tentang bagaimana hal-hal harus dilakukan dari dokumentasi mereka.
Richie Cotton
2

Saya baru saja menemukan halaman web ini yang diselenggarakan oleh ICPSR tentang rencana pengelolaan data . Meskipun saya pikir tujuan ICPSR akan sedikit berbeda dari bisnis Anda (misalnya mereka sangat tertarik untuk membuat data siap dapat disebarluaskan tanpa melanggar kerahasiaan), saya membayangkan mereka memiliki informasi yang berguna untuk bisnis. Khususnya saran untuk membuat metadata bagi saya bersifat universal.

Andy W
sumber
2

Dalam kasus skala yang jauh lebih kecil, saya mengalami menggunakan dropbox untuk berbagi / menyinkronkan salinan file data (dan skrip dan hasil) dengan peneliti / kolaborator lain (saya menulis tentang itu di sini ).

Alat lain yang saya gunakan adalah google docs untuk mengumpulkan dan berbagi data (yang saya tulis di sini )

Tal Galili
sumber
0

Dropbox + packrat bagus untuk berbagi file dengan cadangan / versi.

Kemudian Anda memuat file-file (setelah kanonikisasi / pijat otomatis) ke dalam database dan melakukan analisis dari data yang dibersihkan. Letakkan skrip untuk mengotomatiskan siklus Extract-Transform-Load di bawah kontrol versi (atau setidaknya folder dropbox terpisah dengan opsi packrat ...).

Ketika server database Anda pada akhirnya crash (atau perlu sharded atau apa pun) Anda memiliki pipa untuk memindahkan data dari yang ramah-orang (Excel, formulir web, dll) ke ramah-analisis (biasanya dinormalisasi dan dibatasi, selalu dibersihkan).

Fase "ETL" itu berasal dari pergudangan data. Dan jika Anda tidak membangun sistem pemrosesan transaksi online, Anda mungkin membangun gudang data. Jadi rangkul dan manfaatkan apa yang telah dipelajari orang dari membangunnya selama 30 tahun terakhir.

Selamat bersenang-senang.

Tim
sumber