Wiele prac statystycznych wymaga doświadczenia z danymi na dużą skalę. Jakie są umiejętności statystyczne i obliczeniowe, które byłyby potrzebne do pracy z dużymi zestawami danych. Na przykład, co powiesz na budowanie modeli regresji z zestawem danych z 10 milionami próbek?
regression
machine-learning
multivariate-analysis
large-data
pytanie bitowe
źródło
źródło
Odpowiedzi:
Dobre odpowiedzi już się pojawiły. Dlatego podzielę się przemyśleniami opartymi na osobistym doświadczeniu: w razie potrzeby dostosuj odpowiednie do swojej sytuacji.
Dla tła i kontekstu- abyś mógł uwzględnić wszelkie osobiste uprzedzenia, które mogłyby wkraść się w tę wiadomość - większość mojej pracy polegała na pomaganiu ludziom w podejmowaniu ważnych decyzji na podstawie stosunkowo niewielkich zbiorów danych. Są małe, ponieważ gromadzenie danych może być kosztowne (na przykład 10 000 dolarów za pierwszą próbkę studni monitorującej wody gruntowe lub kilka tysięcy dolarów za analizy nietypowych chemikaliów). Przywykłem do uzyskiwania jak największej ilości dostępnych danych, ich eksploracji na śmierć i wymyślania nowych metod ich analizy w razie potrzeby. Jednak w ciągu ostatnich kilku lat byłem zaangażowany w pracę nad dość dużymi bazami danych, takimi jak jedna z danych społeczno-ekonomicznych i inżynieryjnych obejmujących całe USA na poziomie bloku spisu powszechnego (8,5 miliona rekordów,
Przy bardzo dużych zestawach danych całe podejście i zmiana sposobu myślenia . Obecnie jest za dużo danych do analizy. Niektóre z bezpośrednich (i retrospektywnych) oczywistych implikacji (z naciskiem na modelowanie regresji) obejmują
Każda analiza, o której myślisz, może zająć dużo czasu i obliczeń. Konieczne będzie opracowanie metod podpróbkowania i pracy na częściowych zestawach danych, aby można było zaplanować przepływ pracy podczas obliczania całego zestawu danych. (Podpróbkowanie może być skomplikowane, ponieważ potrzebujesz reprezentatywnego podzbioru danych, który jest tak bogaty jak cały zestaw danych. I nie zapomnij o krzyżowej weryfikacji modeli z przetrzymywanymi danymi).
Z tego powodu poświęcisz więcej czasu na dokumentowanie tego, co robisz i pisanie skryptów wszystkiego (aby można je było powtórzyć).
Jak zauważył @dsimcha, przydatne są dobre umiejętności programowania . W rzeczywistości nie potrzebujesz dużo doświadczenia w środowisku programistycznym, ale potrzebujesz chęci do programowania, umiejętności rozpoznania, kiedy programowanie pomoże (na każdym etapie, naprawdę) i dobrego zrozumienia podstawowych elementów informatyka, na przykład projektowanie odpowiednich struktur danych i analiza złożoności obliczeniowej algorytmów. Jest to przydatne, aby wiedzieć z góry, czy kod, który zamierzasz napisać, będzie skalowany do pełnego zestawu danych.
Niektóre zestawy danych są duże, ponieważ mają wiele zmiennych (tysiące lub dziesiątki tysięcy, wszystkie inne). Spodziewaj się, że poświęcisz dużo czasu na podsumowanie i zrozumienie danych . Słownika lub słownik danych i inne formy metadanych , staje się niezbędne.
Większość czasu spędzasz na przenoszeniu danych i ich formatowaniu. Potrzebujesz umiejętności obsługi dużych baz danych i umiejętności podsumowywania i tworzenia wykresów dużych ilości danych. ( Tufte's Small Multiple wychodzi na pierwszy plan.)
Niektóre z twoich ulubionych narzędzi programowych zawiodą. Zapomnij na przykład o arkuszach kalkulacyjnych. Wiele oprogramowania open source i akademickiego po prostu nie będzie w stanie poradzić sobie z dużymi zbiorami danych: przetwarzanie potrwa wieczność lub oprogramowanie ulegnie awarii. Spodziewaj się tego i upewnij się, że masz wiele sposobów na wykonanie kluczowych zadań.
Prawie każdy przeprowadzony test statystyczny będzie tak potężny, że niemal na pewno zidentyfikuje „znaczący” efekt. Musisz skupić się bardziej na znaczeniu statystycznym , takim jak wielkość efektu, niż na znaczeniu.
Podobnie wybór modelu jest kłopotliwy, ponieważ prawie każda zmienna i każda interakcja, którą możesz wziąć pod uwagę, będzie wyglądać na znaczącą. Musisz bardziej skoncentrować się na znaczeniu zmiennych, które wybierzesz do analizy.
Będzie więcej niż wystarczająca ilość informacji, aby zidentyfikować odpowiednie nieliniowe transformacje zmiennych. Wiedz jak to zrobić.
Będziesz miał wystarczającą ilość danych, aby wykryć relacje nieliniowe, zmiany trendów, niestacjonarność, heteroscedastyczność itp.
Nigdy nie skończysz . Jest tyle danych, że możesz je studiować na zawsze. Dlatego ważne jest, aby od samego początku ustalić swoje cele analityczne i stale o nich pamiętać.
Skończę z krótką anegdotę , która ilustruje jedną nieoczekiwaną różnicę między modelowanie regresji z dużego zestawu danych w porównaniu do mniejszego. Pod koniec tego projektu z danymi Spisu, opracowany przeze mnie model regresji musiał zostać zaimplementowany w systemie komputerowym klienta, co oznaczało pisanie kodu SQL w relacyjnej bazie danych. Jest to rutynowy krok, ale kod wygenerowany przez programistów baz danych obejmował tysiące wierszy SQL. To prawie uniemożliwiło zagwarantowanie, że nie zawiera błędów - chociaż mogliśmy wykryć błędy (dawało różne wyniki w danych testowych), znalezienie ich było inną sprawą. (Wystarczy jeden błąd typograficzny we współczynniku ...) Częścią rozwiązania było napisanie programu, który generował polecenia SQL bezpośrednio z oszacowań modelu. Zapewniło to, że to, co wyszło z pakietu statystyk, było dokładnie tym, co trafiło do RDBMS. Jako bonus, kilka godzin spędzonych na pisaniu tego skryptu zastąpiło prawdopodobnie kilka tygodni kodowania i testowania SQL. Jest to niewielka część tego, co oznacza dla statystyki możliwość komunikowania swoich wyników.
źródło
Twoje pytanie powinno dać kilka dobrych odpowiedzi. Oto kilka punktów wyjścia.
Umiejętność pracy z kompromisami między precyzją a wymaganiami dotyczącymi mocy obliczeniowej.
Obiekt z technikami eksploracji danych, które można wykorzystać jako wstępne narzędzia przesiewowe przed przeprowadzeniem regresji. Np. Sieci chaid, cart lub neuronowe.
Dogłębne zrozumienie związku między znaczeniem statystycznym a znaczeniem praktycznym. Szeroki repertuar metod selekcji zmiennych.
Instynkt do weryfikacji krzyżowej.
źródło
Dobre umiejętności programowania są koniecznością. Musisz być w stanie napisać skuteczny kod, który poradzi sobie z ogromną ilością danych bez dławienia się, i być może być w stanie zrównoleglić ten kod, aby uruchomić go w rozsądnym czasie.
źródło
Dodałbym również, że dane na dużą skalę również wprowadzają problem potencjalnej „złej jakości danych”. Nie tylko brakujące dane, ale błędy danych i niespójne definicje wprowadzone przez każdy element systemu, który kiedykolwiek dotknął danych. Tak więc, oprócz umiejętności statystycznych, musisz stać się ekspertem w dziedzinie czyszczenia danych, chyba że zrobi to za Ciebie ktoś inny.
-Ralph Winters
źródło
źródło