Czy regresja logistyczna jest tendencyjna, gdy zmienna wynikowa jest podzielona między 5% a 95%?

10

Buduję model skłonności za pomocą regresji logistycznej dla klienta użyteczności publicznej. Obawiam się, że z całej próby moje „złe” konta wynoszą zaledwie 5%, a reszta jest dobra. Przepowiadam „źle”.

  • Czy wynik zostanie zakłócony?
  • Jaka jest optymalna proporcja „złej do dobrej”, aby zbudować dobry model?
navaneeth
źródło
Myślę, że zawsze lepiej jest mieć 50% towarów i 50% złych według ogólnej zasady. Model out of og nie może być stronniczy na próbce.

Odpowiedzi:

7

Nie zgodziłem się z innymi odpowiedziami w komentarzach, więc sprawiedliwie daję własne. Niech będzie odpowiedzią (konta dobre / złe), a X będzie współzmiennymi.YX

W przypadku regresji logistycznej model jest następujący:

log(p(Y=1|X=x)p(Y=0|X=x))=α+ja=1kxjaβja

Zastanów się, w jaki sposób mogą być gromadzone dane:

  • Możesz wybrać obserwacje losowo z jakiejś hipotetycznej „populacji”
  • Możesz wybrać dane na podstawie i zobaczyć, jakie wartości Y występują.XY

Oba są odpowiednie dla powyższego modelu, ponieważ modelujesz tylko rozkład . Można by je nazwać badaniem prospektywnym .Y|X

Alternatywnie:

  • Możesz wybrać obserwacje na podstawie (powiedzmy 100 każdego) i zobaczyć względne rozpowszechnienie X (tj. Rozwarstwiasz się na Y ). Nazywa się to badaniem retrospektywnym lub kontrolą przypadków .YXY

(Można również wybrać dane w oparciu o i pewne zmienne X : byłoby to stratyfikowane badanie kontroli przypadków i jest o wiele bardziej skomplikowane w pracy, więc nie będę się tutaj zajmował).YX

Jest ładny wynik z epidemiologii (patrz Prentice i Pyke (1979) ), że dla badania kontrolnego przypadku, maksymalne oszacowania prawdopodobieństwa dla można znaleźć za pomocą regresji logistycznej, która wykorzystuje model prospektywny dla danych retrospektywnych.β

Jak to ma związek z twoim problemem?

Cóż, oznacza to, że jeśli jesteś w stanie zebrać więcej danych, możesz po prostu spojrzeć na złe konta i nadal używać regresji logistycznej, aby oszacować (ale musiałbyś dostosować α, aby uwzględnić nadmierną reprezentację ). Załóżmy, że kosztuje to 1 USD za każde dodatkowe konto, może to być bardziej opłacalne niż po prostu przeglądanie wszystkich kont.βjaα

Ale z drugiej strony, jeśli masz już WSZYSTKIE możliwe dane, nie ma sensu stratyfikować: po prostu wyrzucałbyś dane (dając gorsze oszacowania), a następnie miałbyś problem z oszacowaniem .α

Simon Byrne
źródło
Jest to prawdą tylko wtedy, gdy masz wystarczającą ilość danych, aby odpowiednio reprezentować klasę mniejszości (co jest zwykle problemem w przypadku dużej nierównowagi klasy - problemem jest sama nierównowaga sama w sobie, ale nie masz wystarczającej liczby próbek od mniejszości klasa). W takim przypadku ważenie różnicowe oparte na walidacji krzyżowej klas dodatnich i ujemnych, dostosowanie alfa lub dostosowanie mnożnikowe (wszystkie równoważne IIRC) byłoby dobrym pomysłem na zwiększenie klasy mniejszości. Stratyfikacja danych byłaby tanim i wesołym odpowiednikiem.
Dikran Marsupial
@Dikran: Nie rozumiem, jak to wszystko nie jest prawdą w tym przypadku: nie musisz reprezentować klasy mniejszości, wystarczy reprezentować względną różnicę w stosunku do większości. Jeśli nie masz na to wystarczających danych, odrzucenie obserwacji większości nie pomoże.
Simon Byrne
@ Simon, zgodziłem się z tobą, że rozwarstwienie nie jest dobrym pomysłem, chyba że nie chcesz dostosowywać alfa, ponownie wyważać wzorców ani dopasowywać wyników modelu. Jak powiedziałem, problemem związanym z nierównowagą klasową nie jest sama nierównowaga, ale brak wystarczających danych dla klasy mniejszości, aby odpowiednio zdefiniować „względną różnicę w stosunku do większości”. Kiedy tak się dzieje, przeciętnie wpływa to na wynik w kierunku klasy większościowej, a zatem pomocne jest zrobienie czegoś w celu zrekompensowania tego błędu. Stratyfikacja to jeden ze sposobów, ale nie prawie najlepszy.
Dikran Marsupial
@ Simon, BTW dziękuję za referencje Prentice i Pyke, wygląda to na przydatne.
Dikran Marsupial
1
@Dikran: Może być stronniczy w przypadku innych modeli, ale NIE w przypadku regresji logistycznej, o to właśnie chodzi.
Simon Byrne,
3

Asymptotycznie stosunek wzorców pozytywnych do negatywnych jest w zasadzie nieistotny. Problem pojawia się głównie wtedy, gdy masz za mało próbek klasy mniejszości, aby odpowiednio opisać jej rozkład statystyczny. Zwiększenie zbioru danych zasadniczo rozwiązuje problem (tam, gdzie jest to możliwe).

Jeśli nie jest to możliwe, najlepiej jest ponownie próbkować dane, aby uzyskać zrównoważony zestaw danych, a następnie zastosować mnożnikową korektę na wyjściu klasyfikatora, aby skompensować różnicę między zestawem treningowym a operacyjnymi częstotliwościami względnymi klas. Podczas gdy można obliczyć (asymptotycznie) optymalny współczynnik dostosowania, w praktyce najlepiej jest dostroić dostosowanie za pomocą weryfikacji krzyżowej (ponieważ mamy do czynienia z konkretnym przypadkiem praktycznym, a nie asymptotycznym).

W takiej sytuacji często używam komitetu modeli, w którym każdy jest szkolony we wszystkich wzorcach mniejszości i innej losowej próbce wzorców większości tego samego rozmiaru co wzorce mniejszości. Zapobiega to pechowi przy wyborze jednego podzbioru wzorców większości.

Dikran Torbacz
źródło
2
Ale czy dotyczy to regresji logistycznej? Nie musimy opisywać rozkładu statystycznego żadnej z klas, tylko względne ilorazy szans (patrz mój komentarz do @Henry).
Simon Byrne
Być może w jednym przykładzie, ale jeśli masz więcej niż jedną zmienną objaśniającą, potrzebujesz informacji o rozkładzie wzorców, aby poprawnie zorientować „dyskryminatora”.
Dikran Torbacz
Czy nie byłoby lepiej zastosować korekcję mnożnikową w przestrzeni szans logarytmicznych przed zastosowaniem funkcji logistycznej?
rm999
IIRC, asymptycznie optymalna regulacja ma zostać pomnożona przez stosunek częstotliwości klas operacyjnych do treningowych, jest to oparte na zasadzie Bayesa, więc stosuje się ją do prawdopodobieństw, a nie do ilorazu logarytmu. Ponieważ jednak próbujemy po prostu skorygować matematycznie trudną do oszacowania wadę oszacowania, prawdopodobnie nie ma to większego znaczenia, w jaki sposób dokonana jest korekta, tak naprawdę jest to po prostu „czynnik krówki”.
Dikran Marsupial
@Dikran: Nie rozumiem, co masz na myśli mówiąc o prawidłowym ukierunkowaniu „dyskryminatora”. Nawet w przypadku wielowymiarowym regresja logistyczna wciąż tylko oblicza względne ilorazy szans.
Simon Byrne
1

Teoretycznie będziesz w stanie lepiej rozróżniać, jeśli proporcje „dobrego” i „złego” są mniej więcej podobne. Być może uda Ci się to osiągnąć poprzez próbkowanie warstwowe, nadpróbkowanie złych przypadków, a następnie ponowne ważenie, aby powrócić do prawdziwych proporcji później.

Niesie to za sobą pewne ryzyko. W szczególności Twój model prawdopodobnie będzie oznaczać osoby jako „potencjalnie złe” - prawdopodobnie te, które mogą nie płacić rachunków za media w terminie. Ważne jest, aby wpływ błędów podczas wykonywania tej czynności był odpowiednio rozpoznawany: w szczególności ilu „dobrych klientów” zostanie oznaczonych przez model jako „potencjalnie zła”, a prawdopodobieństwo błędnej zmiany wagi jest mniejsze, jeśli nie zniekształcisz swojej model przez próbkowanie warstwowe.

Henz
źródło
W rzeczywistości nie sądzę, że jest to prawdą w przypadku regresji logistycznej: parametr iloraz szans (który dokonuje dyskryminacji) jest niezmienny dla stratyfikacji zmiennej odpowiedzi. Dlatego można go wykorzystać do badań kontrolnych.
Simon Byrne
@ Simon: Nie zgadzam się z twoim komentarzem na temat ilorazu szans, ale widziałem, że ludzie nie przywrócili tego konsekwencjom dla populacji poprawnie po warstwowym próbkowaniu, gdy zrobili to w innych przypadkach. Na przykład, jeśli okaże się, że ludzie, dla których czynnik A jest prawdziwy, mają dwa razy większe szanse na bycie „złymi” niż ci bez czynnika A, nie powinno się to zmieniać w przypadku próbkowania warstwowego, ale jeśli chcesz wiedzieć, jaki odsetek populacji będzie niepotrzebnie zmienione, jeśli kierujesz reklamy na czynniki o współczynniku A, musisz dokładnie wyważyć informacje z próbek.
Henry
przepraszam, z tym nie zgadzałem się. To był pierwszy bit: konsekwencją niezmienniczości jest to, że gdy masz dane, stratyfikacja nie ma sensu, po prostu wyrzucasz dane. (historia jest inna, jeśli chodzi o koszt gromadzenia danych, stąd istnienie badań kontrolnych).
Simon Byrne,
@ Simon: Kiedy mówisz „studium kontroli przypadków”, czy masz na myśli, że pierwotnie planujesz wziąć próbkę „złych” przypadków i próbkę „dobrych” przypadków? Przy wyższym odsetku „złych” przypadków niż niewielki odsetek w populacji? Jeśli tak, to właśnie tego chciałem w mojej odpowiedzi „próbkowanie warstwowe, nadpróbkowanie złych przypadków”.
Henry
Tak, dokładnie to miałem na myśli. Pytanie zdawało się wskazywać, że mają już dane, dlatego stratyfikacja nie miałaby sensu.
Simon Byrne,
0

yjapjapja

yjaBernoulli(pja)
pja=logit-1(za+b1x1+...+bnxn)
logit-1=exp(X)1+exp(x)

Czy to ma teraz znaczenie, że masz niski odsetek awarii (złych kont)? Nie bardzo, o ile twoje przykładowe dane są zrównoważone, jak niektórzy już wskazywali. Jeśli jednak Twoje dane nie są zrównoważone, uzyskanie większej ilości danych może być prawie bezużyteczne, jeśli istnieją pewne efekty wyboru, których nie bierzesz pod uwagę. W takim przypadku powinieneś użyć dopasowania, ale brak równowagi może sprawić, że dopasowanie będzie zupełnie bezużyteczne. Inna strategia polega na znalezieniu naturalnego eksperymentu, aby można było zastosować zmienną instrumentalną lub projekt nieciągłości regresji.

Wreszcie, jeśli masz zrównoważoną próbkę lub nie ma stronniczości w selekcji, możesz martwić się faktem, że złe konto jest rzadkie. Nie sądzę, że 5% to rzadkość, ale na wszelki wypadek przejrzyj artykuł Gary'ego Kinga na temat prowadzenia logistyki rzadkich zdarzeń. W pakiecie Zelig w R można uruchomić logistykę rzadkich zdarzeń.

Manoel Galdino
źródło
0

Okej, więc pracuję w wykrywaniu oszustw, więc ten problem nie jest dla mnie nowy. Myślę, że społeczność uczenia maszynowego ma wiele do powiedzenia na temat niezrównoważonych danych (ponieważ w klasach są niezrównoważone). Istnieje więc kilka bardzo łatwych strategii, o których myślę, że już zostały wspomniane, oraz kilka zgrabnych pomysłów i pewne rozwiązania. Nie zamierzam nawet udawać, że wiem, co to oznacza dla asymptotyków dla twojego problemu, ale zawsze wydaje mi się, że daje to rozsądne wyniki w regresji logistycznej. Może gdzieś tam jest papier, choć nie jestem pewien.

Oto twoje opcje, jakie widzę:

  1. Przekrój klasę mniejszości. Sprowadza się to do próbkowania klasy mniejszości z zastępstwem, dopóki nie uzyska się takiej samej liczby obserwacji jak klasa większości. Istnieją fantazyjne sposoby na zrobienie tego, aby zrobić takie rzeczy, jak wstrząsanie wartościami obserwacji, aby mieć wartości zbliżone do oryginału, ale nie są doskonałymi kopiami itp.
  2. Undsample, tutaj bierzesz podpróbkę klasy większościowej. Znów wymyślne sposoby, aby to zrobić, aby usunąć próbki większości, które są najbliższe próbkom mniejszości, używając algorytmów najbliższego sąsiada i tak dalej.
  3. Ponownie waż klasy. W przypadku regresji logistycznej to właśnie robię. Zasadniczo zmieniasz funkcję straty, aby karać przypadek błędnie sklasyfikowanej mniejszości znacznie bardziej niż klasę błędnie sklasyfikowanej. Ale z drugiej strony technicznie nie robisz maksymalnego prawdopodobieństwa.
  4. Symuluj dane. Wiele fajnych pomysłów, którymi się tutaj bawiłem. Możesz używać SMOTE do generowania danych, Generatywnych sieci przeciwnych, Autoencoderów wykorzystujących część generacyjną, estymatorów gęstości jądra do rysowania nowych próbek.

W każdym razie zastosowałem wszystkie te metody, ale uważam, że najprostszym jest ponowne rozważenie problemu regresji logistycznej. Jedną rzeczą, którą możesz zrobić, aby sprawdzić swój model, jest wzięcie:

-Intercept/beta

To powinna być granica decyzji (50% prawdopodobieństwa przynależności do jednej z klas) na danej zmiennej ceteris paribus . Jeśli to nie ma sensu, np. Granica decyzji jest liczbą ujemną na zmiennej, która jest ściśle dodatnia, oznacza to, że masz regres logistyczny, który należy poprawić.

Ryan
źródło