Regresja logistyczna: maksymalizacja wyników pozytywnych - wyników fałszywych

9

Mam model regresji logistycznej (dopasowanie za pomocą glmnet w R z elastyczną regulacją sieci) i chciałbym zmaksymalizować różnicę między wartościami dodatnimi a fałszywymi. W tym celu przyszła mi do głowy następująca procedura:

  1. Dopasuj standardowy model regresji logistycznej
  2. Używając progu prognozy jako 0,5, zidentyfikuj wszystkie pozytywne prognozy
  3. Przypisz wagę 1 dla pozytywnie przewidywanych obserwacji, 0 dla wszystkich innych
  4. Dopasuj ważony model regresji logistycznej

Jakie byłyby wady tego podejścia? Jaki byłby właściwy sposób rozwiązania tego problemu?

Powodem, dla którego chcę zmaksymalizować różnicę między liczbą pozytywnych i fałszywych negatywów, jest projekt mojej aplikacji. W ramach projektu klasowego buduję autonomicznego uczestnika rynku internetowego - jeśli mój model przewiduje, że może coś kupić i sprzedać później po wyższej cenie, składa ofertę. Chciałbym trzymać się regresji logistycznej i wyjściowych wyników binarnych (wygrana, przegrana) w oparciu o koszty stałe i przyrosty ceny jednostkowej (zyskuję lub tracę tę samą kwotę przy każdej transakcji). Fałszywy pozytyw boli mnie, ponieważ oznacza, że ​​coś kupuję i nie jestem w stanie sprzedać go za wyższą cenę. Jednak fałszywy negatyw nie szkodzi mi (tylko pod względem kosztów alternatywnych), ponieważ oznacza to po prostu, że nie kupiłbym, ale gdybym to zrobił, zrobiłbym pieniądze. Podobnie,

Zgadzam się, że granica 0,5 jest całkowicie dowolna, a kiedy zoptymalizowałem model od kroku 1 na progu predykcji, co daje największą różnicę między pozytywnymi / fałszywymi pozytywami, okazuje się, że jest bliższy 0,4. Myślę, że wynika to z wypaczonej natury moich danych - stosunek negatywów do pozytywów wynosi około 1: 3.

W tej chwili wykonuję następujące kroki:

  1. Podziel dane na szkolenie / test
  2. Dopasuj model do treningu, dokonaj prognoz w zestawie testów i oblicz różnicę między pozytywnymi / fałszywymi wynikami dodatnimi
  3. Dopasuj model w całości, wykonaj prognozy w zestawie testowym i oblicz różnicę między pozytywnymi / fałszywymi wynikami dodatnimi

Różnica między pozytywnymi / fałszywymi pozytywami jest mniejsza w kroku 3 niż w kroku 2, pomimo że zestaw treningowy jest podzbiorem pełnego zestawu. Ponieważ nie dbam o to, czy model z nr 3 ma więcej prawdziwych negatywów i mniej fałszywych negatywów, czy jest coś, co mogę zrobić bez zmiany samej funkcji prawdopodobieństwa?

tmakino
źródło
Zanim zapytasz, jakie byłyby wady tego podejścia, być może powinieneś napisać, dlaczego Twoim zdaniem to podejście powinno działać. Jak myślisz, dlaczego kroki 2-4 poprawiają wynik?
user31264,
Czy mam również rację, że na końcu upuszczasz model z kroku 1 i używasz tylko modelu z kroku 4?
user31264,
Tak, planowałem użyć modelu wyposażonego w cały zestaw danych, ale nie ma sensu, aby to robić, ponieważ nie osiąga wyników modelu wyposażonego w zestaw szkoleniowy.
tmakino
2
Obecnie nie mam na to źródła ... ale czy wiesz, że możesz zoptymalizować model regresji logistycznej, aby zmaksymalizować obszar pod krzywą (charakterystyki operacyjnej odbiornika) (lub AUC)? Nie trzeba wymyślać koła na nowo.
AdamO,
2
Nie do końca rozumiem tutaj, dlaczego nie uwzględniłeś niczego w przewidywanej przyszłej cenie w swoim modelu ani nie uwzględniłeś wielkości zysku / straty w optymalizacji. Z pewnością decyzja „zakupu”, która prowadzi do 99% straty, jest znacznie gorsza niż decyzja „zakupu”, która prowadzi do 1% straty, mimo że oba są fałszywie pozytywne.
probabilityislogic

Odpowiedzi:

24

Wydaje się, że wcale nie chcesz regresji logistycznej. Mówisz: „Chciałbym zmaksymalizować różnicę między wynikami pozytywnymi a fałszywymi”. To dobra funkcja celu, ale nie jest to regresja logistyczna. Zobaczmy co to jest.

Po pierwsze, jakiś zapis. Będzie zmienna zależnaYja:

Yja={1Zakup ja był opłacalny0Zakup ja był nierentowny

Będą to zmienne niezależne (rzeczy, których używasz do przewidywania, czy powinieneś kupić) Xja(wektor). Będzie to parametr, który próbujesz oszacowaćβ(wektor). Przewidzisz, kiedy kupiszXjaβ>0. Do obserwacjija, przewidujesz, kiedy kupisz Xjaβ>0 lub gdy funkcja wskaźnika 1Xjaβ>0=1.

Prawdziwy pozytyw pojawia się podczas obserwacji ja gdy oboje Yja=1 i 1Xjaβ>0=1. Fałszywie pozytywny na podstawie obserwacjija dzieje się kiedy Yja=0 i 1Xjaβ>0=1. Chcesz znaleźćβ co maksymalizuje wyniki prawdziwie dodatnie minus wyniki fałszywie dodatnie, lub:

mzaxβja=1N.Yja1Xjaβ>0-ja=1N.(1-Yja)1Xjaβ>0

To nie jest szczególnie znana funkcja celu do oszacowania dyskretnego modelu reakcji, ale trzymaj się mnie, póki wykonuję małą algebrę na temat funkcji celu:

ja=1N.Yja1Xjaβ>0-ja=1N.(1-Yja)1Xjaβ>0=ja=1N.Yja1Xjaβ>0-ja=1N.1Xjaβ>0+ja=1N.Yja1Xjaβ>0=ja=1N.Yja1Xjaβ>0-ja=1N.1Xjaβ>0+ja=1N.Yja1Xjaβ>0+ja=1N.1-ja=1N.1+ja=1N.Yja-ja=1N.Yja=ja=1N.Yja1Xjaβ>0+ja=1N.(1-Yja)(1-1Xjaβ>0)-ja=1N.1+ja=1N.Yja

OK, zauważ teraz, że dwa ostatnie terminy w tej sumie nie są funkcjami β, abyśmy mogli je zignorować podczas maksymalizacji. Wreszcie, właśnie pokazaliśmy, że problem, który chcesz rozwiązać, „maksymalizacja różnicy między wartościami dodatnimi a fałszywymi” jest taki sam jak ten problem:

mzaxβja=1N.Yja1Xjaβ>0+ja=1N.(1-Yja)(1-1Xjaβ>0)

Teraz ten estymator ma nazwę! Nazywa się to estymatorem maksymalnego wyniku. Jest to bardzo intuicyjny sposób oszacowania parametru modelu reakcji dyskretnej. Parametr jest wybrany tak, aby zmaksymalizować liczbę poprawnych prognoz. Pierwszy termin to liczba prawdziwych pozytywów, a drugi to liczba prawdziwych negatywów.

Jest to całkiem dobry sposób na oszacowanie (binarnego) dyskretnego modelu odpowiedzi. Na przykład estymator jest spójny. (Manski, 1985, J of Econometrics) Jednak w tym estymatorze występują pewne osobliwości. Po pierwsze, nie jest to wyjątkowe w małych próbkach. Kiedy już znajdzieszβ co rozwiązuje maksymalizację, a następnie każdą inną β co sprawia, że ​​dokładnie te same prognozy w zbiorze danych rozwiążą maksymalizację - więc nieskończenie wiele βjest blisko tego, który znalazłeś. Ponadto estymator nie jest asymptotycznie normalny i zbiega się wolniej niż typowe estymatory maksymalnego prawdopodobieństwa --- pierwiastek kostnyN. zamiast rootowania N.konwergencja. (Kim and Pollard, 1990, Ann of Stat) Wreszcie, nie można użyć ładowania początkowego do wnioskowania na jego temat. (Abrevaya i Huang, 2005, Econometrica) Istnieje jednak kilka artykułów wykorzystujących ten estymator --- zabawne jest przewidywanie wyników w turnieju koszykówki NCAA przez Caudill, International Journal of Forecasting, kwiecień 2003, w. 19, iss. 2, ss. 313–17.

Estymatorem, który przezwycięża większość tych problemów, jest wygładzony estymator maksymalnego wyniku Horowitza (Horowitz, 1992, Econometrica i Horowitz, 2002, J of Econometrics). Daje root-N.spójny, asymptotycznie normalny, unikalny estymator, który może zostać załadowany. Horowitz podaje przykładowy kod do implementacji swojego estymatora na swojej stronie internetowej.

Rachunek
źródło
Dziękuję za włączenie algebry do zrównania mojej funkcji kosztu z estymatorem maksymalnego wyniku. Z podaną funkcją wskaźnika dlaβT.x>0, czy to oznacza, że ​​zawsze będę klasyfikować p>0,5 jako pozytywny i p<=0,5jako negatywny? Ponadto p jest obliczane za pomocą funkcji logistycznej z danymi wejściowymiβT.x? Obecne podejście, którego używam, to funkcja kosztu AUC, a następnie optymalizacja progu predykcji w celu znalezienia wartości o największej różnicy między wartościami rzeczywistymi i fałszywie dodatnimi. Rozumiem, że twoja odpowiedź wyraźnie określa maksymalną różnicę
tmakino,
(ciąg dalszy) poprzez zdefiniowanie go w funkcji kosztu (i ustalenie progu prognozy na 0,5), pomijając w ten sposób krok pośredni, który podjąłem. Jednak AUC już istnieje w pakiecie regresji, którego używam (glmnet), podczas gdy emulator maksymalnego wyniku nie. Czy uważasz, że moje podejście jest rozsądne, biorąc pod uwagę mój cel?
tmakino,
1
Niestety, nie znam się zbytnio na metodzie AUC, więc nie mogę powiedzieć, jak jest ona odpowiednia. W estymatorze maksymalnego wyniku naprawdę nie map, ponieważ nie zakładasz modelu logistycznego. Po prostu decydujesz się przewidzieć 1, kiedyXjaβ>0 a następnie znalezienie najlepszego β.
Bill
15

Jest kilka wad tego podejścia, w tym:

  • Poszukiwanie granicy dla ciągłego prawdopodobieństwa
  • Korzystanie z arbitralnej wartości granicznej 0,5
  • Zakładając, że koszty „fałszywie dodatniego” i „fałszywie ujemnego” są takie same dla wszystkich badanych
  • Korzystanie z wag, które nie są ułamkowe
  • Używanie oszacowanych wag
  • Przesłanianie oszacowania maksymalnego prawdopodobieństwa
  • Niezastosowanie teorii optymalnej decyzji Bayesa, która wskazuje, że optymalne decyzje opierają się na pełnej informacji (nie na tym, czy coś przekracza coś innego) i funkcjach użyteczności / strat / kosztów
Frank Harrell
źródło
1
Dziękuję, czy istnieje sposób na osiągnięcie tego przy jednoczesnym przestrzeganiu regresji logistycznej (tj. Bez dotykania funkcji wiarygodności)?
tmakino
To zależy od tego, co to „to”. Jaki jest ostateczny cel i jak będzie używany model?
Frank Harrell,
Zredagowałem swoje pytanie, aby podać szczegółowe informacje o tym, co próbuję osiągnąć.
tmakino
1
Chyba że coś mi umknie, nic, co dodałeś, nie oznaczałoby użycia punktu odcięcia. Należy pamiętać, że przewidywane prawdopodobieństwo zapewnia własny poziom błędu.
Frank Harrell,
8

Najlepszym podejściem do osiągnięcia tego, co próbujesz opisać, jest prawdopodobnie bezpośrednia optymalizacja parametrów regresji logistycznej za pomocą funkcji utraty AUC. Podręcznik „Metody statystyczne w medycynie diagnostycznej” autorstwa Zhou opisuje tę metodę.

AUC (pole pod krzywą charakterystyczną działania odbiornika - lub ROC) jest z grubsza interpretowane jako prawdopodobieństwo, że losowo dobrany „przypadek” ma wyższą wartość markera niż „kontrola”. Jest to miara dyskryminacji modelowej lub jej zdolności do prawidłowej klasyfikacji wyniku. ROC jest krzywą w płaszczyźnie jednostkowej, która pokazuje czułość względem 1 - specyficzności dla wszystkich możliwych wartości markerów (dopasowanych wyników) w modelu regresji.

Stosując tradycyjne sformułowanie modelu regresji logistycznej,

logit Pr(Y=1|X)=α+βX

z logarytmicznymi ilorazami szans dla parametrów modelu, można z grubsza zdefiniować funkcję strat opartą na AUC, aby uzyskać optymalne parametry. W przeciwieństwie do regresji logistycznej opartej na prawdopodobieństwie, regresja AUC nie jest regularna i może zbiegać się z lokalnymi maksimami w przestrzeni parametrów.

AdamO
źródło
1
Myślałem, że AUC nie jest tutaj najlepsze, ponieważ istnieje niewielka strata za fałszywie ujemny, ale duża strata za fałszywie dodatni.
probabilityislogic
Cóż, prawdziwym problemem jest to, że OP ma ciągły wynik (ROI) i dychotomizuje go jako stratę / zysk. Ale rozdzielanie włosów na bok, z regresją ROC w ogólności „głupie” regiony odcięcia markera rzeczywiście liczą się do AUC. Możesz użyć częściowego AUC, jeśli wcześniej określisz, co liczy się jako znaczące w porównaniu z głupimi wartościami markerów, a częściowa regresja AUC ma te same możliwości wydajności (i problemy).
AdamO