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!
źródło
Odpowiedzi:
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 .
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 ω
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 categorical
da wiele referencji do przeczytania. Oto kilka, na które krótko spojrzałem:Gerhard Tutz, Regresja dla danych kategorycznych, patrz strony 175-175 w Google Books . Tutz wymienia następujące cztery artykuły:
Land and Friedman, 1997, Variable fusion: nowa metoda adaptacyjnej regresji sygnału
Bondell and Reich, 2009, Jednoczesny wybór czynników i poziomy upadku w ANOVA
Gertheiss i Tutz, 2010, Rzadkie modelowanie kategorialnych zmiennych objaśniających
Tibshirani i in. 2005, Sparowność i gładkość poprzez połączone lasso jest dość istotna, nawet jeśli nie dokładnie taka sama (dotyczy zmiennych porządkowych)
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:
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:
źródło
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.
źródło
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órymZ z1,...,zK Y Z Impact(Z)
nieprzerwanie wartościach . W przypadku wartości binarnej użyj zamiast po prostu .Y Y logit∘E E
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).
źródło
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.
źródło
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.
źródło
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ś:
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.
źródło