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).
źródło
Odpowiedzi:
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.
źródło
Jeden wolny zasobów internetowych jest zbiorem statystycznych Dobrych Praktyk wytycznych z Statystycznego Services Center na University of Reading .
W szczególności:
źródło
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 ...
źródło
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:
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
źródło
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:
źródło
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.
źródło
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 )
źródło
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.
źródło