Zasada zwijania zmiennych jakościowych na wielu poziomach?

58

Jakie techniki są dostępne do zwijania (lub łączenia) wielu kategorii do kilku, w celu wykorzystania ich jako danych wejściowych (predyktorów) w modelu statystycznym?


Rozważ zmienną taką jak kierunek studiów studenckich (dyscyplina wybrana przez studenta). Jest nieuporządkowany i kategoryczny, ale potencjalnie może mieć dziesiątki różnych poziomów. Powiedzmy, że chcę użyć major jako predyktora w modelu regresji.

Używanie tych poziomów bezpośrednio do modelowania prowadzi do różnego rodzaju problemów, ponieważ jest ich tak wiele. Wykorzystanie ich wymagałoby dużej precyzji statystycznej, a wyniki są trudne do interpretacji. Rzadko interesują nas określone kierunki - znacznie bardziej prawdopodobne jest zainteresowanie szerokimi kategoriami (podgrupami) kierunków. Ale nie zawsze jest jasne, jak podzielić poziomy na takie kategorie wyższego poziomu, a nawet ile kategorii wyższych poziomów użyć.

W przypadku typowych danych chętnie zastosuję analizę czynnikową, faktoryzację macierzy lub dyskretną technikę modelowania ukrytego. Ale kierunki są wzajemnie wykluczającymi się kategoriami, więc waham się wykorzystać ich kowariancję do wszystkiego.

Ponadto same nie dbam o główne kategorie. Zależy mi na tworzeniu kategorii wyższego poziomu, które byłyby spójne z moim wynikiem regresji . W przypadku wyniku binarnego sugeruje mi to coś w rodzaju liniowej analizy dyskryminacyjnej (LDA) w celu wygenerowania kategorii wyższego poziomu, które maksymalizują wydajność dyskryminacyjną. Ale LDA jest ograniczoną techniką i wydaje mi się, że pogłębiam brudne dane. Ponadto każde ciągłe rozwiązanie będzie trudne do interpretacji.

Tymczasem coś opartego na kowariancjach, takie jak analiza wielokrotnej korespondencji (MCA), wydaje mi się w tym przypadku podejrzane ze względu na nieodłączną zależność między wzajemnie wykluczającymi się zmiennymi fikcyjnymi - lepiej nadają się one do badania wielu zmiennych kategorycznych, a nie wielu kategorii ta sama zmienna.

edycja : aby wyjaśnić, chodzi o zwijanie kategorii (nie wybieranie ich), a kategorie to predyktory lub zmienne niezależne. Z perspektywy czasu ten problem wydaje się odpowiednim czasem na „uregulowanie ich wszystkich i pozwolenie, by Bóg je uporządkował”. Cieszę się, że to pytanie jest interesujące dla tak wielu osób!

Shadowtalker
źródło
2
W moim komentarzu na stats.stackexchange.com/questions/230636/... Mam tutaj długą listę podobnych pytań! Spójrz ... Przeszukaj również tę stronę za pomocą słów kluczowych „wiele poziomów”, znajdziesz wiele podobnych pytań, kilka dobrych odpowiedzi.
kjetil b halvorsen
3
Wrócę do tego, kiedy będę miał czas ... w międzyczasie następujący artykuł jest bardzo trafny i wydaje się częściowo odpowiadać na pytanie: epub.ub.uni-muenchen.de/12164/1/petry_etal_TR102_2011. pdf
kjetil b halvorsen
2
Nie sądzę, że dostaję to pytanie, moim naturalnym impulsem byłoby dodanie większej liczby zmiennych zastępczych w celu zakodowania hierarchii (prawdopodobnie tyle różnych hierarchii, ile tylko można sobie wyobrazić), a następnie użycie regularyzacji L1 / L2, aby zapewnić, że kategorie najwyższego poziomu są wybierane raczej niż kategorie poziomu dokładniejszego. problem z kierunkami itp. polega na tym, że oczywiście nie ma podobieństwa (gdy jest reprezentowane jako zmienna
fikcyjna
1
@ssdecontrol, tak, moim prototypowym przykładem są numery telefonów (lub inne identyfikatory). Zasadniczo poprawną odpowiedzią na pytanie, jak modelować przy użyciu tych jest - nie!
seanv507
2
Jeśli chcesz wnioskować o hierarchiach, możesz zajrzeć do schematów osadzania sieci neuronowej. Zasadniczo używają zredukowanego zestawu neuronów między kategoriami i resztą modelu, więc model musi znaleźć liniowe rzuty podobnych kategorii w rozwiązywaniu. Jest to zasadniczo nielinearyzowana wersja maszyn faktoryzujących. tensorflow.org/guide/embedding
seanv507

Odpowiedzi:

41

Jeśli dobrze zrozumiałem, wyobrażasz sobie model liniowy, w którym jeden z predyktorów jest kategoryczny (np. Studia wyższe); i oczekujesz, że dla niektórych podgrup jego poziomów (podgrup kategorii) współczynniki mogą być dokładnie takie same. Być może więc współczynniki regresji dla matematyki i fizyki są takie same, ale różne od tych dla chemii i biologii.

W najprostszym przypadku byłby to model liniowy „ANOVA jednokierunkowy” z jednym predyktorem : gdzie koduje poziom zmiennej ( Kategoria). Ale możesz preferować rozwiązanie, które zwija niektóre poziomy (kategorie) razem, np.i { α 1 = α 2 , α 3 = α 4 = α 5 .

yij=μ+αi+ϵij,
i
{α1=α2,α3=α4=α5.

Sugeruje to, że można spróbować zastosować karę regularyzacji, która karałaby rozwiązania za pomocą różnych alf. Jednym z terminów karnych, które natychmiast przychodzi na myśl, jestTo przypomina lasso i powinno wymuszać rzadkość , co jest dokładnie tym, czego chcesz: chcesz, aby wiele z nich było zerowych. Parametr regulacyjny należy wybrać z walidacją krzyżową.α i - α j ω

L=ωi<j|αiαj|.
αiαjω

Nigdy nie miałem do czynienia z takimi modelami, a powyższe jest pierwszą rzeczą, jaka przyszła mi do głowy. Potem postanowiłem sprawdzić, czy istnieje coś takiego. Przeprowadziłem kilka wyszukiwań w Google i wkrótce zdałem sobie sprawę, że nazywa się to łączeniem kategorii; wyszukiwanie lasso fusion categoricalda wiele referencji do przeczytania. Oto kilka, na które krótko spojrzałem:

Gertheiss i Tutz 2010, opublikowane w Annals of Applied Statistics, wyglądają jak najnowszy i bardzo czytelny artykuł zawierający inne odniesienia. Oto jego streszczenie:

Metody zmniejszania w analizie regresji są zwykle projektowane dla predyktorów metrycznych. W tym artykule zaproponowano jednak metody skurczowe dla predyktorów jakościowych. Jako aplikację rozważamy dane ze standardu wynajmu w Monachium, gdzie na przykład dzielnice miejskie są traktowane jako predyktor jakościowy. Jeśli zmienne niezależne są kategoryczne, konieczne są pewne modyfikacje zwykłych procedur zmniejszania. Przedstawiono i zbadano dwie L_1 metody selekcji czynników i grupowania kategorii. Pierwsze podejście jest zaprojektowane dla poziomów skali nominalnej, drugie dla predyktorów porządkowych. Oprócz zastosowania ich do standardu czynszu w Monachium, metody są zilustrowane i porównane w badaniach symulacyjnych.L1

Lubię ich ścieżki rozwiązania podobne do Lasso, które pokazują, jak poziomy dwóch zmiennych jakościowych łączą się ze sobą, gdy rośnie siła regularyzacji:

Gertheiss i Tutz 2010

ameba mówi Przywróć Monikę
źródło
1
I dopiero po napisaniu wszystkiego, co zauważyłem, @Kjetil podał link do jednego z artykułów Tutza już tydzień temu ...
Amoeba mówi Przywrócenie Moniki
1
Dzięki za zagłębianie się w literaturę na ten temat! Jest to zdecydowanie dobry punkt wyjścia, zwłaszcza mając nazwę tej techniki („fuzji”), której mogę szukać
shadowtalker
10

Walczyłem z tym nad projektem, nad którym pracowałem, i w tym momencie zdecydowałem, że naprawdę nie jest dobry sposób na połączenie kategorii, więc próbuję modelu hierarchicznego / mieszanego, w którym mój odpowiednikiem twojej specjalizacji jest efekt losowy.

Ponadto w sytuacjach takich jak ta wydaje się, że w rzeczywistości należy podjąć dwie decyzje dotyczące łączenia: 1) jak połączyć kategorie, które masz po dopasowaniu do modelu, oraz 2) która to kategoria staje się „inna”, w której domyślnie zostaną uwzględnione wszelkie nowe kierunki, o których ktoś marzy po dopasowaniu swojego modelu. (Losowy efekt może automatycznie obsłużyć ten drugi przypadek).

Kiedy łączenie wiąże się z jakimkolwiek osądem (w przeciwieństwie do całkowicie zautomatyzowanych procedur), jestem sceptycznie nastawiony do „innej” kategorii, która często jest zbiorem kategorii z kilkoma rzeczami, a nie jakimkolwiek zasadniczym grupowaniem.

Efekt losowy obsługuje wiele poziomów, dynamicznie łączy („czerpie siłę”) z różnych poziomów, może przewidywać wcześniej niewidzialne poziomy itp. Jednym minusem może być to, że rozkład poziomów prawie zawsze przyjmuje się za normalny.

Wayne
źródło
1
Czy zastanawiałeś się nad użyciem macierzy zbliżeniowej jako macierzy odległości do skupienia? stats.stackexchange.com/questions/270201/… ?
Keith
7

Jednym ze sposobów poradzenia sobie z tą sytuacją jest przekodowanie zmiennej kategorialnej na ciągłą, przy użyciu tak zwanego „kodowania docelowego” (inaczej „kodowania uderzeniowego”) [1]. Niech będzie zmienną wejściową o poziomach jakościowych , a niech będzie zmienną wyjściową / docelową / odpowiedzi. Wymienić o , w którymZz1,...,zKYZImpact(Z)

Impact(zk)=E(Y | Z=zk)E(Y)

nieprzerwanie wartościach . W przypadku wartości binarnej użyj zamiast po prostu .YYlogitEE

W bibliotece category_encoders [2] znajduje się implementacja języka Python .

W pakiecie R Vtreat [3] [4] zaimplementowano wariant o nazwie „kodowanie wpływu” . Pakiet (i samo kodowanie wpływu) opisano w artykule tych autorów z 2016 r. [5] oraz w kilku postach na blogu [6]. Należy zauważyć, że obecna implementacja R nie obsługuje odpowiedzi wielomianowych (kategorycznych z więcej niż 2 kategoriami) ani odpowiedzi wielowymiarowych (o wartościach wektorowych).

  1. Daniele Micci-Barreca (2001). Schemat wstępnego przetwarzania dla atrybutów kategorialnych o wysokiej liczności w problemach klasyfikacji i prognozowania. ACM SIGKDD Explorations Newsletter , tom 3, wydanie 1, lipiec 2001, strony 27-32. https://doi.org/10.1145/507533.507538
  2. Kodery kategorii. http://contrib.scikit-learn.org/categorical-encoding/index.html
  3. John Mount i Nina Zumel (2017). vtreat: A Statystically Sound „data.frame” Processor / Conditioner. Wersja pakietu R 0.5.32. https://CRAN.R-project.org/package=vtreat
  4. Win-Vector (2017). vtreat. Repozytorium GitHub na https://github.com/WinVector/vtreat
  5. Zumel, Nina and Mount, John (2016). vtreat: procesor data.frame do modelowania predykcyjnego. 1611.09477v3, e-wydruki ArXiv . Dostępne na https://arxiv.org/abs/1611.09477v3 .
  6. http://www.win-vector.com/blog/tag/vtreat/
Shadowtalker
źródło
Co to jest logit E? Czy możesz podzielić się samą formułą?
Optimus Prime
@OptimusPrime logit E jest
logitem
W porządku. W takim przypadku wpływ (zk) = log (E (Y | Z = zk) -E (Y)) LUB wpływ (zk) = log (E (Y | Z = zk)) - log (E (Y) )?
Optimus Prime
2
Jest to nadzorowana nauka i będzie wymagała skomplikowanych korekt, aby rozpoznać liczbę stopni swobody, które są „skradzione” Y.
Frank Harrell
3
Na pewno - każda metoda, która używa Y do kierowania sposobem obsługi kategorii dla predyktora jakościowego, będzie podlegać nadmiernemu dopasowaniu i trudno będzie uzyskać przedziały niepewności, które będą wystarczająco szerokie, aby były dokładne. Skupiłem się na uczeniu się bez nadzoru, aby te problemy nie występowały.
Frank Harrell,
6

Jeśli masz pomocniczą zmienną niezależną, która jest logiczna w użyciu jako kotwica dla predyktora jakościowego, rozważ użycie optymalnego algorytmu oceniania Fishera, który jest powiązany z jego liniową analizą dyskryminacyjną. Załóżmy, że chciałeś zmapować kierunek studiów w jedną ciągłą metrykę, i załóżmy, że właściwą kotwicą jest ilościowy wynik testu wstępnego SAT. Obliczyć średnią ocenę ilościową dla każdej specjalizacji i zastąpić major tą średnią. Możesz z łatwością rozszerzyć to na wiele kotwic, tworząc więcej niż jeden stopień swobody, z którymi można podsumować główne.

Zauważ, że w przeciwieństwie do niektórych wcześniejszych sugestii, optymalna punktacja reprezentuje podejście do nauki bez nadzoru, więc stopnie swobody (liczba parametrów oszacowana względem Y) są nieliczne i dobrze określone, skutkują właściwym wnioskowaniem statystycznym (jeśli często, dokładnymi błędami standardowymi, pewnością (zgodność) przedziały i wartości p).

Bardzo podoba mi się sugestia dotycząca kary autorstwa https://stats.stackexchange.com/users/28666/amoeba @amoeba.

Frank Harrell
źródło
Czy byłbyś tak miły, aby spojrzeć na moje pytanie stats.stackexchange.com/q/383887/44368 ? Dziękuję Ci.
Hans
Czy metoda punktacji optymalnej jest opisana na slajdzie 15 tego wykładu ? Wyszukiwanie tych terminów jest nieco trudne, ponieważ wszystkie są wspólne w innych kontekstach.
shadowtalker
1
Jestem 0,85 na pewno tak
Frank Harrell
To brzmi jak (lepsza) wersja idei kodowania docelowego z uczenia maszynowego, na przykład stats.stackexchange.com/questions/398903/…
kjetil b halvorsen
2

Artykuł „ Schemat wstępnego przetwarzania atrybutów kategorialnych o wysokiej kardynalności w problemach klasyfikacji i prognozowania ” wykorzystuje strukturę hierarchiczną w atrybutach kategorii w zagnieżdżonym schemacie „empirycznym Bayesa” na każdym basenie / poziomie w celu odwzorowania zmiennej kategorialnej na prawdopodobieństwo klasy tylnej, które może być stosowany bezpośrednio lub jako wkład do innych modeli.

Sealander
źródło
Jest to w zasadzie to, co sugerował @Wayne (modele z efektami mieszanymi ~ częstokształtna wersja Bayesowskich modeli hierarchicznych) i to, co zasugerowałem w komentarzu do pytania. Jednak OP chce wnioskować o hierarchiach.
seanv507
1

Tutaj jest wiele pytań, a niektóre z nich są zadawane i udzielane wcześniej. Jeśli problem polega na obliczeniach, które zajmują dużo czasu: istnieje wiele metod, aby sobie z tym poradzić, zobacz regresję na dużą skalę z macierzą rzadkich cech oraz papier autorstwa Maechlera i Batesa .

Ale może się zdarzyć, że problem tkwi w modelowaniu, nie jestem pewien, czy zwykłe metody leczenia jakościowych zmiennych predykcyjnych naprawdę dają wystarczające wskazówki, gdy mamy zmienne jakościowe z bardzo wieloma poziomami, zobacz tę stronę dla znacznika [many-categories]. Jest na pewno wiele sposobów, które można wypróbować, może być (jeśli jest to dobry pomysł dla twojego przykładu, nie wiem, nie powiedziałeś nam o swojej konkretnej aplikacji) rodzaj hierarchicznych zmiennych kategorialnych, to znaczy inspirowanych przez system stosowany w klasyfikacji biologicznej, patrz https://en.wikipedia.org/wiki/Taxonomy_(biology). Tam osoba (roślina lub zwierzę) jest najpierw klasyfikowana do domeny, następnie do Królestwa, Gromady, Klasy, Porządku, Rodziny, Rodzaju i na końcu Gatunku. Tak więc dla każdego poziomu w klasyfikacji można utworzyć zmienną czynnikową. Jeśli twoje poziomy, powiedzmy, produkty sprzedawane w supermarkecie, możesz stworzyć hierarchiczną klasyfikację zaczynającą się od [artykuły spożywcze, przybory kuchenne, inne], a następnie artykuły spożywcze można sklasyfikować jako [mięso, ryby, warzywa, zboża, ...] i wkrótce. Tylko możliwość, która daje wcześniejszą hierarchię, niezwiązaną konkretnie z wynikiem.

Ale powiedziałeś:

Zależy mi na tworzeniu kategorii wyższego poziomu, które byłyby spójne z moim wynikiem regresji.

Następnie możesz wypróbować lasso połączone , zobacz inne odpowiedzi w tym wątku, które można postrzegać jako sposób na zwijanie poziomów na większe grupy, całkowicie oparte na danych, a nie wcześniejszą organizację poziomów, jak sugeruje moja propozycja hierarchii organizacja poziomów.

kjetil b halvorsen
źródło