Dwa światy się zderzają: używanie ML do złożonych danych ankiet

14

Uderza mnie pozornie łatwy problem, ale od kilku tygodni nie znalazłem odpowiedniego rozwiązania.

Mam całkiem sporo danych ankietowych / ankietowych (dziesiątki tysięcy respondentów, powiedzmy 50 tys. Na zbiór danych), pochodzących z czegoś, co, mam nadzieję, nazywa się kompleksowo zaprojektowaną ankietą z wagami, stratyfikacją, określonym routingiem i tak dalej. Dla każdego respondenta istnieją setki zmiennych, takich jak dane demograficzne (wiek, region ...), a następnie głównie zmienne binarne (najwyżej kategorialne).

Pochodzę bardziej z informatyki / uczenia maszynowego i musiałem wiele się nauczyć o klasycznych statystykach ankietowych i metodologii. Teraz chcę zastosować klasyczne uczenie maszynowe do tych danych (np. Przewidywanie niektórych brakujących wartości dla podzbioru respondentów - w zasadzie zadanie klasyfikacji). Ale trzymaj się i patrz, nie mogę znaleźć odpowiedniego sposobu, aby to zrobić. Jak powinienem uwzględnić te warstwy, wagi lub trasy (np .: jeśli na pytanie 1 udzielono odpowiedzi w opcji 2, zadaj pytanie 3, w przeciwnym razie pomiń)?

Samo zastosowanie moich modeli (drzewa, regresja logistyczna, SVM, XGBoost ...) wydaje się niebezpieczne (i w większości przypadków zawodzą), ponieważ zazwyczaj zakładają, że dane pochodzą z prostej losowej próbki lub iid.

Wiele metod ma przynajmniej ciężary, ale to niewiele pomaga. Co więcej, nie jest jasne, w jaki sposób powinienem łączyć niezbilansowane klasy i wagi podane przez definicję ankiety razem, nie mówiąc o tych rzeczach dotyczących stratyfikacji. Ponadto modele wyników powinny być dobrze skalibrowane - przewidywany rozkład powinien być bardzo zbliżony do pierwotnego. Dobra wydajność prognozowania nie jest tu jedynym kryterium. Zmieniłem metrykę optymalizacji, aby wziąć to również pod uwagę (np. Odległość przewidywanego rozkładu od rozkładu rzeczywistego + dokładność / MCC) i pomogło w niektórych przypadkach, dlaczego obniżało wydajność w innych.

Czy istnieje jakiś kanoniczny sposób rozwiązania tego problemu? Wydaje mi się, że to bardzo niedoceniany obszar badań. Wiele ankiet IMO mogłoby skorzystać z siły ML, ale nie ma żadnych źródeł. Jakby to były dwa światy, które nie wchodzą ze sobą w interakcje.

Co znalazłem do tej pory:

Powiązane pytania CV, ale żadne z nich nie zawiera żadnej użytecznej odpowiedzi, jak podejść do tego (albo brak odpowiedzi, nie to, o co proszę, lub przedstawienie mylących zaleceń):

kotrfa
źródło
Czy możesz zdefiniować, co rozumiesz przez „ niepowodzenie w większości przypadków ”? Jak oceniasz sukces modelu w obecnych warunkach?
usεr11852 mówi Przywróć Monic
Nie są nawet zbliżone do oryginalnej dystrybucji lub wydaje się nonsensowne, aby je uruchomić (np. Gdy uwzględniono routing).
kotrfa

Odpowiedzi:

3

( Aktualizacja: Nie ma jeszcze wiele pracy nad „nowoczesnymi” metodami ML ze złożonymi danymi ankietowymi, ale najnowszy numer Science Science zawiera kilka artykułów przeglądowych. Zobacz zwłaszcza Breidt i Opsomer (2017), „Model-Assisted Oszacowanie ankiety za pomocą nowoczesnych technik prognozowania ” .

Ponadto, w oparciu o wspomniany dokument Toth i Eltinge, istnieje teraz pakiet R rms implementujący CART dla danych z kompleksowych badań).

Teraz chcę zastosować klasyczne uczenie maszynowe do tych danych (np. Przewidywanie niektórych brakujących wartości dla podzbioru respondentów - w zasadzie zadanie klasyfikacji).

Nie jestem w pełni jasny na temat twojego celu. Czy przede wszystkim próbujesz przypisać brakujące obserwacje, aby mieć „kompletny” zestaw danych, aby dać komuś innemu? A może masz już pełne dane i chcesz zbudować model do przewidywania / klasyfikowania odpowiedzi na nowe obserwacje? Czy masz jakieś pytanie, na które chcesz odpowiedzieć za pomocą swojego modelu (modeli), czy też eksplorujesz dane szerzej?

W obu przypadkach regresja logistyczna złożonej próby / ważonej ankietą jest rozsądną, dość dobrze zrozumiałą metodą. Istnieje również regresja porządkowa dla więcej niż 2 kategorii. Uwzględnią one warstwy i wagi ankiet. Czy potrzebujesz bardziej wymyślnej metody ML niż to?

Na przykład możesz użyć svyglmw surveypakiecie R. Nawet jeśli nie używasz R, autor pakietu, Thomas Lumley, napisał także przydatną książkę „Complex Surveys: A Guide to Analysis Using R”, która obejmuje zarówno regresję logistyczną, jak i brakujące dane do ankiet.

(W przypadku imputacji mam nadzieję, że znasz już ogólne problemy związane z brakującymi danymi. Jeśli nie, przyjrzyj się podejściom takim jak wielokrotna imputacja, aby pomóc ci wyjaśnić, w jaki sposób krok imputacji wpływa na twoje oszacowania / prognozy).

Rutowanie pytań jest rzeczywiście dodatkowym problemem. Nie jestem pewien, jak najlepiej sobie z tym poradzić. Aby przypisać przypisanie, być może można przypisać jeden „krok” w routingu naraz. Np. Używając modelu globalnego, najpierw przypisuj wszystkim odpowiedź na „ile masz dzieci?”; następnie uruchom nowy model dla odpowiedniej subpopulacji (osoby z więcej niż 0 dziećmi), aby przypisać następny krok „Ile masz lat?”

Civilstat
źródło