Jak sprawić, by ludzie lepiej dbali o dane?


42

Moje miejsce pracy ma pracowników z bardzo różnych dziedzin, więc generujemy dane w wielu różnych formach. W związku z tym każdy zespół opracował własny system przechowywania danych. Niektórzy korzystają z baz danych Access lub SQL; niektóre zespoły (ku mojemu przerażeniu) polegają prawie całkowicie na arkuszach kalkulacyjnych Excel. Często formaty danych zmieniają się w zależności od projektu. W niektórych przypadkach nazywanie go „systemem” jest zbyt miłe.

Wiąże się to z tym, że muszę pisać nowy kod, aby wyczyścić dane dla każdego projektu, co jest kosztowne; osoby ręcznie edytujące arkusze kalkulacyjne uniemożliwiają powtarzalność i kontrolę danych; a nawet gorzej, istnieje ryzyko, że dane zostaną utracone lub nieprawidłowe.

Dano mi możliwość przedyskutowania tych problemów z członkiem zarządu firmy i muszę dowiedzieć się, co mu powiedzieć. Wydaje mi się, że już go przekonałem, że mamy problem i że zrobienie tego dobrze umożliwi lepszą naukę i pozwoli zaoszczędzić pieniądze. Pytanie brzmi: do czego powinniśmy dążyć i jak się tam dostać?

Dokładniej:

Jak powinniśmy przechowywać dane w taki sposób, abyśmy mogli śledzić je od stworzenia do publikacji w gazecie? (Bazy danych przechowywane na centralnym serwerze?)

Jak podchodzisz do standaryzacji formatów baz danych?

Czy są jakieś dobre zasoby do edukowania ludzi, jak dbać o dane? (Zasadniczo higieniści zawodowi i inżynierowie materiałów wybuchowych nie są frajerami danych; dlatego preferowane są treści nietechniczne).


Pytanie tytułowe różni się od pytania merytorycznego w poście. Pierwszy pyta, jak przekonać ludzi do dbania o dane, a drugi pyta o to, jak najlepiej przechowywać dane. Na jakie pytanie chcesz odpowiedzieć?
Przywróć Monikę

Odpowiedzi:


16

Warto rozważyć pomysły ze świata oprogramowania. W szczególności możesz pomyśleć o skonfigurowaniu: repozytorium kontroli wersji i centralnego serwera bazy danych.

Kontrola wersji prawdopodobnie pomaga w przypadku swobodnie pływających plików, takich jak Excel i pliki tekstowe itp. Może to jednak obejmować również pliki powiązane z danymi, takie jak R, SAS itp. Pomysł polega na tym, że istnieje system, który śledzi zmiany w Twoje pliki, dzięki czemu możesz wiedzieć, co się stało, i w razie potrzeby cofnij do przeszłości.

Tam, gdzie masz już bazy danych SQL, najlepszą rzeczą, jaką możesz zrobić, to skonfigurować serwer centralny i wynająć zdolnego DBA . DBA to osoba, której zadaniem jest zapewnienie i utrzymanie integralności danych. Część opisu zadania obejmuje takie rzeczy, jak tworzenie kopii zapasowych i strojenie. Ale bardziej istotna jest tutaj inna część - kontrolowanie sposobu, w jaki dane wchodzą do systemu, upewnianie się, że ograniczenia są spełnione, wprowadzono zasady dostępu zapobiegające uszkodzeniom danych, konfigurowanie widoków w celu ujawnienia niestandardowych lub uproszczonych formatów danych itp. Krótko mówiąc, wdrożenie metodologii wokół procesu przetwarzania danych. Nawet jeśli nie zatrudnisz prawdziwego DBA (dobre są bardzo trudne do rekrutacji), posiadanie centralnego serwera wciąż pozwala ci zacząć myśleć o wprowadzeniu jakiejś metodologii wokół danych.


3
Całkowicie zgodził się na kontrolę wersji. Używam tego; podobnie jak znaczna część programistów i statystyk. (Chciałbym zobaczyć 100% adopcji, ale na razie to kolejne marzenie z fajki.) Trudno jest sprowadzić nie-techników do korzystania z niego. Doceniamy wszelkie pomysły.
Richie Cotton

2
@Richie Cotton: Nie wiem dlaczego, ale kontrola wersji wydaje się być trudną koncepcją dla nie-techników. Ludzie nadal wprowadzają zmiany w pliku, zmieniają jego nazwę i wysyłają pocztą e-mail. Jak nienawidzę tych plików „PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc” ...
nico

12

1
Doskonałe linki. Myślę, że dwie ważne wiadomości, które muszę przekazać, to: potrzebujemy bardziej zautomatyzowanego sprawdzania danych i muszę zacząć wyjaśniać na temat oddzielania wprowadzania danych i prezentacji danych.
Richie Cotton

6

Myślę, że przede wszystkim musisz zadać sobie pytanie: dlaczego ludzie używają Excela do wykonywania zadań, do których Excel nie został stworzony?

1) Oni już wiedzą, jak go używać 2) To działa. Może w niezdarny sposób, ale działa i tego właśnie chcą

Kopiuję serię liczb, wciskam przycisk i mam fabułę. To takie proste.

Niech więc zrozumieją, jakie korzyści mogą mieć dzięki zastosowaniu scentralizowanych zestawów danych, odpowiednich baz danych (zauważ, że Access NIE jest jednym z nich) i tak dalej. Pamiętaj jednak o dwóch powyższych punktach: musisz skonfigurować system, który działa i jest łatwy w użyciu.

Zbyt wiele razy widziałem źle wykonane systemy, które sprawiły, że nie chciałem wracać do Excela, tylko do pisania i pisania!

Jako przykład mamy okropny system zamawiania, w którym pracuję.

Kiedyś musieliśmy wypełnić formularz zamówienia, który był arkuszem kalkulacyjnym Excel, w którym należy podać nazwę produktu, ilość, koszt itp. Dodałby wszystko, dodał TVA itp., Wydrukowałeś go, dał sekretarz, który wyda rozkaz i tyle. Niewystarczające, ale zadziałało.

Teraz mamy system zamówień online ze scentralizowaną bazą danych i wszystkim. To horror. Wypełnienie tego cholernego formularza nie powinno zająć mi 10 minut ze względu na przydatne skróty klawiaturowe i różne osobliwości oprogramowania. I zauważ, że jestem dość obeznany z informatyką, więc wyobraź sobie, co dzieje się z ludźmi, którzy nie lubią komputerów ...


Zgodzono się, że rzeczy muszą być przyjazne dla użytkownika. Ponieważ ludzie bardzo dbają o swoje praktyki pracy, wszelkie zmiany muszą ułatwić ludziom życie, w przeciwnym razie poniosą porażkę.
Richie Cotton

5

Podkreślam wszystkie udzielone odpowiedzi, ale nazwijmy kota kotem: w wielu obszarach roboczych trudno jest przekonać kierownictwo, że inwestycja w „egzotyczne” oprogramowanie (np. Dla nich egzotyczne) jest konieczna, nie mówiąc już o zatrudnieniu kogoś, kto mógłby ustawić utrzymywać i utrzymywać. Powiedziałem niektórym klientom, że skorzystaliby na zatrudnieniu statystyk z dogłębnym doświadczeniem w oprogramowaniu i bazach danych, ale ogólna odpowiedź brzmi: „nie da się”.

Tak długo, jak to się nie stanie, istnieje kilka prostych rzeczy, które możesz zrobić za pomocą Excela, które ułatwią życie. Pierwszym z nich jest bez wątpienia kontrola wersji. Więcej informacji na temat kontroli wersji w programie Excel można znaleźć tutaj .

Kilka rzeczy na temat korzystania z programu Excel

Osobom używającym EXCEL bardzo często podoba się formuła EXCEL. Jest to jednak najważniejsze źródło błędów w arkuszach EXCEL i problemów przy próbie odczytania plików EXCEL, o ile mi wiadomo. Odmawiam pracy z arkuszami zawierającymi formuły.

Zmuszam również wszystkich, z którymi współpracuję, do dostarczenia arkuszy EXCEL w zwykłym formacie, co oznacza, że:

  • Pierwszy wiersz zawiera nazwy różnych zmiennych
  • Arkusz kalkulacyjny rozpoczyna się w komórce A1
  • Wszystkie dane są umieszczane w kolumnach, bez przerw i bez formatowania.
  • Jeśli to możliwe, dane są również zapisywane w formacie .csv. Nie jest trudno napisać skrypt VBA, który wyodrębni dane, sformatuje je i umieści w pliku .csv. Pozwala to również na lepszą kontrolę wersji, ponieważ codziennie można wykonać zrzut danych w formacie .csv.

Jeśli istnieje ogólna struktura danych, zawsze warto opracować szablon z bazowymi makrami VB w celu dodania danych i wygenerowania zestawu danych do analizy. Ogólnie rzecz biorąc pozwoli to uniknąć sytuacji, w której każdy pracownik wymyśli swój własny „genialny” system przechowywania danych i pozwoli na napisanie kodu w związku z tym.

To powiedziawszy, jeśli możesz przekonać wszystkich do korzystania z SQL (i interfejsu do wprowadzania danych), możesz połączyć R bezpośrednio z tym. To znacznie zwiększy wydajność.

Struktura danych i zarządzanie

Zasadniczo dane przechowywane w bazach danych (lub arkuszach EXCEL, jeśli nalegają) powinny być absolutnym minimum, co oznacza, że ​​żadna zmienna, która może być obliczona na podstawie innych zmiennych, nie powinna być zawarta w bazie danych. Pamiętaj, że czasami może być korzystne przechowywanie również tych zmiennych pochodnych lub transformowanych, jeśli obliczenia są uciążliwe i zajmują dużo czasu. Ale powinny one być przechowywane w osobnej bazie danych, w razie potrzeby połączone z oryginalną bazą danych.

Należy również rozważyć to, co uważa się za jeden przypadek (a zatem jeden wiersz). Na przykład ludzie zwykle tworzą szeregi czasowe, tworząc nową zmienną dla każdego punktu czasowego. Chociaż ma to sens w EXCEL, wczytywanie tych danych wymaga dość pewnego odwrócenia matrycy danych. To samo dotyczy porównywania grup: powinien istnieć jeden wskaźnik grupy i jedna zmienna odpowiedzi, a nie zmienna odpowiedzi dla każdej grupy. W ten sposób struktury danych mogą być również znormalizowane.

Ostatnią rzeczą, na którą często napotykam, jest użycie różnych wskaźników. Długości podawane są w metrach lub centymetrach, temperatury w stopniach Celsjusza, Kelvina lub Farenheita ... W każdym interfejsie lub dowolnym szablonie należy wskazać jednostkę, w której mierzona jest zmienna.

I nawet po tych wszystkich rzeczach nadal chcesz przejść kontrolę danych, zanim zaczniesz od analizy. Znowu może to być dowolny skrypt uruchamiany codziennie (np. W nocy) na nowych wpisach i natychmiast oznaczający problemy (poza zakresem, zły typ, brakujące pola, ...), aby można je było jak najszybciej naprawić. Jeśli musisz wrócić do wpisu, który powstał 2 miesiące temu, aby dowiedzieć się, co jest nie tak i dlaczego, lepiej zdobądź dobre „umiejętności Sherlocka”, aby to poprawić.

moje 2 centy


Kilka bardzo interesujących punktów tutaj. Przekonanie ludzi do uproszczenia i ujednolicenia arkuszy kalkulacyjnych może być bardziej skuteczne niż skłonienie ich do porzucenia. Nie miałem też pojęcia, że ​​kontrola wersji może zostać zintegrowana z programem Excel. Dobrze wiedzieć.
Richie Cotton,

2
Odnośnie do rady, by nie przechowywać zbędnych zmiennych: jest to właściwe dla RDBMS, ale chciałbym zasugerować, że w arkuszach kalkulacyjnych należy zachęcać przeciwnie. Te ostatnie są tak podatne na błędy, że mechanizmy wykrywania i korygowania błędów są nieocenione. Jedna z najlepszych obejmuje nadmiarowe informacje, takie jak pola obliczeniowe i podsumowania statystyczne. Na przykład, jeśli kolumna C jest stosunkiem kolumn A i B, wówczas błąd w pojedynczej kolumnie w dowolnym wierszu można wykryć i zwykle naprawić.
whuber

1
@ whuber: to sprawdzamy na etapie kontroli danych. Możesz użyć tej dodatkowej kolumny, aby szybko sprawdzić, ale nie powinieneś trzymać jej w końcowym arkuszu. Formuły w arkuszach kalkulacyjnych są przerażające, a im większy arkusz kalkulacyjny, tym trudniej jest uzyskać z niego dane. Ponadto w przypadku programu Excel i tak będziesz walczył z różnicami między .xls i .xlsx. Upewnij się, że decyzja menedżera o aktualizacji pakietu Microsoft Office może złamać mnóstwo kodu, jeśli polegasz w dużej mierze na plikach programu Excel. Więc: zapisz jako csv i utrzymuj te pliki csv tak małe, jak to możliwe.
Joris Meys,

Po spędzeniu znacznej części ostatnich 24 lat mojej kariery zawodowej na radzeniu sobie z danymi przesyłanymi w arkuszach kalkulacyjnych i zarządzaniu dużymi bazami danych, z szacunkiem muszę się z tym nie zgodzić. Nie ma czegoś takiego jak „kontrola” nad arkuszami kalkulacyjnymi (czy .xls, .xlsx, .wks, .wb * itd.), A nawet plikami csv. Obecność zbędnych informacji w takich plikach - nawet jeśli są one dostępne tylko w formie drukowanej - wielokrotnie wskrzesiła niektóre dość duże bazy danych (ponad 100 000 rekordów). Za każdym razem, gdy tak się dzieje, ja (i moi klienci) jestem wdzięczny za zwolnienia.
whuber

@ whuber: Kontrolujemy dane za pomocą dodatkowych skryptów, szukając niemożliwych wartości / wartości odstających / nieparzystych przypadków. To właśnie mam na myśli w kroku kontroli danych. Jest to standard branżowy btw w firmach takich jak SGS i inni przeprowadzający analizy badań klinicznych itp. Potrzebne zbędne informacje są przechowywane w osobnych bazach danych. Jeśli jedna z nich zawiedzie, druga jest potrzebna do zmartwychwstania. Jeśli nie masz przyzwoitego systemu tworzenia kopii zapasowych, to jest ...
Joris Meys,

3

VisTrails: naukowy system przepływu pracy i pochodzenia oparty na języku Python . To wystąpienie na PyCon 2010 ma kilka dobrych pomysłów. Warto posłuchać, nawet jeśli nie jesteś zainteresowany korzystaniem z VisTrails lub Pythona. Na koniec myślę, że gdybyś był w stanie wymagać wyraźnego dokumentu do odtworzenia danych. I wymagają pewnej weryfikacji, którą mogą.

Cytowanie:

„W tym wykładzie przedstawimy przegląd VisTrails ( http://www.vistrails.org ), opartego na pythonie naukowego przepływu pracy typu open source, który w przejrzysty sposób przechwytuje pochodzenie (tj. Rodowód) zarówno produktów danych, jak i zastosowanych procesów aby uzyskać te produkty. Pokażemy, jak VisTrails można wykorzystać do usprawnienia eksploracji i wizualizacji danych. Na prawdziwych przykładach pokażemy kluczowe funkcje systemu, w tym możliwość wizualnego tworzenia potoków przetwarzania informacji, które łączą wiele narzędzi i bibliotek, takich jak VTK, pylab i matplotlib. Pokażemy również, w jaki sposób VisTrails wykorzystuje informacje o pochodzeniu nie tylko w celu wspierania odtwarzalności wyników, ale także w celu uproszczenia tworzenia i udoskonalania rurociągów ”.


Python nie jest rozpowszechniony w naszej organizacji, ale wygląda na ciekawy projekt. Zobaczę, czy uda mi się wskazać kilka pomysłów na to, jak należy postępować z ich dokumentacją.
Richie Cotton

2

Właśnie natknąłem się na tę stronę hostowaną przez ICPSR na temat planów zarządzania danymi . Chociaż myślę, że cele ICPSR będą nieco inne niż Twoja firma (np. Są bardzo zainteresowani tym, aby dane mogły być łatwo rozpowszechniane bez naruszenia poufności), wyobrażam sobie, że mają przydatne informacje dla firm. Wydaje mi się, że szczególnie porady dotyczące tworzenia metadanych są uniwersalne.


2

W przypadku znacznie mniejszych skal doświadczyłem używania dropbox fora do udostępniania / synchronizacji kopii plików danych (oraz skryptów i wyników) z innymi badaczami / współpracownikami (pisałem o tym tutaj ).

Innym narzędziem, z którego korzystałem, są dokumenty Google do zbierania i udostępniania danych (o których pisałem tutaj )


0

Dropbox + packrat jest dobry do udostępniania plików przy tworzeniu kopii zapasowych / wersjonowaniu.

Następnie ładujesz te pliki (po automatycznej kanonizacji / masażu) do bazy danych i wykonujesz analizy oczyszczonych danych. Umieść skrypty, aby zautomatyzować cykl Extract-Transform-Load pod kontrolą wersji (lub przynajmniej osobny folder dropbox z opcją packrat ...).

Gdy serwer bazy danych ostatecznie się zawiesi (lub musi zostać podzielony na fragmenty lub cokolwiek innego), istnieje możliwość przeniesienia danych z przyjaznych dla ludzi (Excel, formularze internetowe itp.) Na przyjazne dla analizy (zazwyczaj znormalizowane i ograniczone, zawsze usuwane).

Ta faza „ETL” pochodzi z hurtowni danych. A jeśli nie budujesz systemu przetwarzania transakcji online, prawdopodobnie budujesz hurtownię danych. Przyjmij to i skorzystaj z tego, czego ludzie nauczyli się budując je przez ostatnie 30 lat.

Baw się dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.