Jak ocenić moc predykcyjną zestawu predyktorów jakościowych wyniku binarnego? Oblicz prawdopodobieństwo lub regresję logistyczną?

10

Próbuję ustalić, czy proste prawdopodobieństwa będą działać na mój problem, czy też lepiej będzie użyć (i dowiedzieć się więcej) bardziej wyrafinowanych metod, takich jak regresja logistyczna.

Zmienna odpowiedzi w tym problemie jest odpowiedzią binarną (0, 1). Mam wiele zmiennych predykcyjnych, które są kategoryczne i nieuporządkowane. Próbuję ustalić, które kombinacje zmiennych predykcyjnych dają najwyższy odsetek 1. Czy potrzebuję regresji logistycznej? Jaka byłaby korzyść z obliczania proporcji w moim zestawie próbek dla każdej kombinacji predyktorów jakościowych?

Rachel
źródło
Jeśli masz więcej niż 1 predyktor, może to być trudne bez jakiegoś modelu regresji. Co miałeś na myśli? Po prostu duża wymiarowa tabela zakaźności ( k to liczba predyktorów)? kk
Makro
Czy kategorie predyktorów są pogrupowane w więcej niż jeden czynnik, a jeśli tak, to czy są one skrzyżowane czy zagnieżdżone? Czy jesteś zainteresowany jedynie opisowym stwierdzeniem? Jeśli twoje dane są złożone, model LR może być wygodniejszy, a jeśli chcesz wyciągać wnioski, LR jest zdecydowanie lepsza.
gung - Przywróć Monikę
@Macro - Tak, pomyślałem, że byłby to zasadniczo duży stół, z jedną kolumną pokazującą liczbę przykładowych punktów, które odpowiadają scenariuszowi, a drugą kolumną pokazującą proporcję 1. Mam pięć predyktorów jakościowych, każdy z 10-30 możliwymi wartościami, więc wiem, że lista scenariuszy byłaby wysoka. Myślałem o napisaniu pętli w R, która przechodzi przez każdą z nich i generuje znaczące wyniki (wysoki odsetek 1 plus duża liczba punktów próbki w scenariuszu).
Rachel
@gung - Czynniki są tylko częściowo skrzyżowane. Żaden z czynników nie będzie uważany za zagnieżdżony. Chciałbym znaleźć kombinacje czynników (np. Stan, klient, pracownik), które prawdopodobnie będą miały wysokie prawdopodobieństwo, że zmienna odpowiedzi będzie równa 1.
Rachel,
1
@EmreA - Niestety zmienne jakościowe nie są całkowicie niezależne. Niektóre kombinacje będą bardziej prawdopodobne niż inne ...
Rachel,

Odpowiedzi:

11

Regresja logistyczna, aż do nieprecyzyjności liczbowej, da dokładnie takie same pasowania jak odsetki w tabelach. Dlatego jeśli twoje niezależne zmienne są obiektami czynnikówfactor1 itp., A zależnymi wynikami (0 i 1) są x, możesz uzyskać efekty za pomocą wyrażenia takiego jak

aggregate(x, list(factor1, <etc>), FUN=mean)

Porównaj to z

glm(x ~ factor1 * <etc>, family=binomial(link="logit"))

Na przykład wygenerujmy losowe dane:

set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))

Podsumowanie uzyskuje się za pomocą

aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results

Jego wyniki obejmują

   Group.1 Group.2 Group.3         x
1        0       0       0 0.5128205
2        1       0       0 0.4210526
3        0       1       0 0.5454545
4        1       1       0 0.6071429
5        0       2       0 0.4736842
6        1       2       0 0.5000000
...
24       1       2       3 0.5227273

Dla przyszłego odniesienia szacunek dla czynników na poziomach (1,2,0) w wierszu 6 wyniku wynosi 0,5.

Regresja logistyczna rezygnuje ze swoich współczynników w ten sposób:

model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients

Aby z nich skorzystać, potrzebujemy funkcji logistycznej:

logistic <- function(x) 1 / (1 + exp(-x))

Aby uzyskać np. Oszacowanie czynników na poziomach (1,2,0), oblicz

logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])

(Zwróć uwagę, jak wszystkie interakcje muszą zostać uwzględnione w modelu i wszystkie powiązane współczynniki muszą być zastosowane, aby uzyskać prawidłowe oszacowanie.)

(Intercept) 
        0.5

zgadzając się z wynikami aggregate. (Nagłówek „(przechwytuj)” w danych wyjściowych jest pozostałością danych wejściowych i w rzeczywistości nie ma znaczenia dla tego obliczenia.)


Ta sama informacja w jeszcze innej formie pojawia się na wyjściutable . Np. (Długi) wynik działania

table(x, factor1, factor2, factor3)

zawiera ten panel:

, , factor2 = 2, factor3 = 0

   factor1
x    0  1
  0 20 21
  1 18 21

factor121/(21+21)=0,5x1aggregateglm


Wreszcie, kombinacja czynników dających najwyższy odsetek w zbiorze danych jest dogodnie otrzymywana z danych wyjściowych aggregate:

> aggregate.results[which.max(aggregate.results$x),]
  Group.1 Group.2 Group.3         x
4       1       1       0 0.6071429
Whuber
źródło
1
To dużo informacji i zajmie mi to trochę czasu, ale z przyjemnością słyszę tabele procentowe, a regresje logistyczne w zasadzie dadzą mi te same wyniki. Uruchomiłem funkcję agregującą na dwóch predyktorach i zakończyła się natychmiast ... wyniki dopasowania logistycznego działały przez kilka minut i jeszcze się nie zakończyły. Będę nadal poprawiał rzeczy, ale mogę skończyć tylko na tabelach procentowych. Dziękuję Ci!
Rachel,
(+1), Off the mankiet Zastanawiam się, czy standardowe błędy w tym kontekście z regresji logistycznej można włączyć do graficznych podsumowań mozaiki, które zasugerowałem. Podejrzewam też, że może to być dobry sposób na szybkie „filtrowanie” wyników pod kątem interesujących interakcji (to tylko moje rozmyślania!)
Andy W
„Regresja logistyczna da, aż do niedokładności liczbowych, dokładnie takie same dopasowania jak odsetki w tabelach”: Czy ona nie tabelaruje procentów dla każdej konfiguracji predyktorów? W takim przypadku regresja logistyczna nie może zakodować wszystkich możliwych relacji.
Neil G,
@ Neil Pewnie może zakodować wszystkie „relacje” (kombinacje czynników): użyj wszystkich możliwych interakcji. Zobacz kod R na przykład. Gdy czynników jest wiele, w praktyce będzie wiele pustych kombinacji, ale przyzwoite oprogramowanie nie będzie miało z tym problemu. Jeszcze lepsze oprogramowanie poradzi sobie z kombinacjami bez zmian odpowiedzi.
whuber
@Andy Uwielbiam twoją odpowiedź na temat grafiki - musimy znaleźć sposób na stworzenie wątku, w którym jest to właściwa odpowiedź! Być może twoja myśl o włączeniu oszacowań błędów do mozaikowych wykresów byłaby sposobem na podejście do tego: w jaki sposób przedstawiałbyś w nich szacunki logistyczne, rzeczywiste dane i / lub błąd jednocześnie?
whuber
6

W celu szybkiego spojrzenia na odsetek odpowiedzi binarnych w każdej kategorii i / lub uwarunkowanych wieloma kategoriami, wykresy graficzne mogą być przydatne. W szczególności, aby jednocześnie wizualizować proporcje uwarunkowane wieloma kategorycznymi zmiennymi niezależnymi, sugerowałbym wykresy mozaikowe .

Poniżej znajduje się przykład zaczerpnięty z postu na blogu, Zrozumienie wykresów obszarowych: Wykresy mozaiki z grafiki statystycznej i więcej blogów. Ten przykład ilustruje niebieski odsetek osób, które przeżyły na Titanicu, w zależności od klasy pasażera. Można jednocześnie ocenić odsetek osób, które przeżyły, a jednocześnie docenić całkowitą liczbę pasażerów w każdej z podgrup (z pewnością przydatne informacje, szczególnie gdy niektóre podgrupy są rzadkie i spodziewalibyśmy się większej zmienności losowej).

Mozaika fabuły Titanica
(źródło: theusrus.de )

Następnie można uzależnić kolejne wykresy mozaiki od wielu niezależnych zmiennych jakościowych. Następny przykład z tego samego posta na blogu w krótkim wizualnym podsumowaniu pokazuje, że wszyscy pasażerowie dzieci w pierwszej i drugiej klasie przeżyli, podczas gdy w trzeciej klasie dzieci nie radziły sobie tak dobrze. Wyraźnie pokazuje również, że kobiety dorosłe miały znacznie wyższy wskaźnik przeżycia w porównaniu z mężczyznami w każdej klasie, chociaż odsetek kobiet, które przeżyły między klasami, znacznie się zmniejszył z pierwszej do drugiej do trzeciej klasy (a następnie był ponownie stosunkowo wysoki dla załogi, chociaż jeszcze raz zauważ, że nie ma zbyt wielu kobiet-członków załogi, biorąc pod uwagę, jak wąski jest pasek).

Mozaika uzależniona od trzeciej zmiennej
(źródło: theusrus.de )

To niesamowite, jak wiele informacji jest wyświetlanych, są to proporcje w czterech wymiarach (klasa, dorosły / dziecko, płeć i odsetek ocalałych)!

Zgadzam się, że jeśli jesteś zainteresowany prognozowaniem lub bardziej ogólnym wyjaśnieniem przyczynowym, będziesz chciał przejść do bardziej formalnego modelowania. Wykresy graficzne mogą być bardzo szybkimi wskazówkami wizualnymi co do natury danych i mogą dostarczyć innych informacji, często pomijanych podczas zwykłego szacowania modeli regresji (szczególnie przy rozważaniu interakcji między różnymi zmiennymi kategorialnymi).

Andy W.
źródło
+1, to jest punkt, o którym starałem się wspomnieć w moim komentarzu powyżej, czy celem był prosty opis, czy wnioskowanie. Uwaga: punkt jest jaśniejszy i lepiej wykonany z postaciami!
gung - Przywróć Monikę
@ Gung dzięki, co oznacza Nb? Zawsze mówię też lepiej z liczbami!
Andy W,
2
„Nb” nie jest nic związane ze statystykami, oznacza nota bene , co z kolei oznacza łacinę „uwaga dobrze” (dosłownie) lub „uwaga” / „uwaga” (bardziej potocznie).
gung - Przywróć Monikę
3

W zależności od potrzeb może się okazać, że partycjonowanie rekurencyjne stanowi łatwą do interpretacji metodę przewidywania zmiennej wynikowej. Aby zapoznać się z wprowadzeniem R do tych metod, zobacz stronę Model oparty na drzewie Quick-R . Generalnie wolę ctree()implementację w pakiecie party R, ponieważ nie trzeba się martwić o przycinanie i domyślnie produkuje ładną grafikę.

To mieściłoby się w kategorii algorytmów wyboru funkcji sugerowanych w poprzedniej odpowiedzi i ogólnie daje tak dobre, jeśli nie lepsze prognozy, jak regresja logistyczna.

fmark
źródło
2

205 parametrów. Każdy z tych parametrów wymaga wielu przykładów szkolenia, aby można było się dobrze nauczyć. Czy masz co najmniej dziesięć milionów przykładów szkoleń rozłożonych na wszystkie konfiguracje? Jeśli tak, idź dalej i zrób to w ten sposób.

Jeśli masz mniej danych, chcesz nauczyć się mniej parametrów. Można zmniejszyć liczbę parametrów, zakładając na przykład, że konfiguracje poszczególnych predyktorów mają spójny wpływ na zmienną odpowiedzi.

Jeśli uważasz, że twoje predyktory są od siebie niezależne, to regresja logistyczna jest unikalnym algorytmem, który działa właściwie. (Nawet jeśli nie są niezależne, nadal może działać całkiem dobrze.)

Podsumowując, regresja logistyczna przyjmuje założenie o niezależnym wpływie predyktorów, co zmniejsza liczbę parametrów modelu i daje model, który jest łatwy do nauczenia.

Neil G.
źródło
1

Powinieneś spojrzeć na algorytmy wyboru funkcji. Odpowiednim dla twojego przypadku (klasyfikacja binarna, zmienne kategorialne) jest metoda „minimalnej redundancji maksymalnej trafności” (mRMR). Możesz go szybko wypróbować online pod adresem http://penglab.janelia.org/proj/mRMR/

emrea
źródło
Czy można uruchomić ten program z więcej niż jednym predyktorem jakościowym? Na stronie przesyłania wygląda na to, że tylko pierwsza kolumna może być „klasą” danych ... Być może nie rozumiem, jak dane mają zostać sformatowane.
Rachel
Czy też „klasa” ma być zmienną wyjściową, w tym przypadku 0 lub 1? Jeśli tak, to czy ważne jest przekształcenie zmiennych kategorialnych w zmienne zastępcze, aby wyświetlić wskaźniki dla każdej z nich?
Rachel
Możesz mieć dowolną liczbę predyktorów. Pierwszy wiersz pliku danych musi zawierać nazwy funkcji, a pierwsza kolumna musi być klasami (zmienną odpowiedzi) dla próbek. Przykładem jest: response,predictor1,predictor2,predictor3 <line break here> 1,5,4,3 <line break here> 0,5,3,-1 <line break here> 1,1,2,3
emrea
1

Pracuję w dziedzinie punktacji kredytowej, gdzie normą jest to, co przedstawia się tutaj jako dziwny przypadek.

Używamy regresji logistycznej i przekształcamy zmienne jakościowe i ciągłe w wagi dowodów (WOE), które są następnie wykorzystywane jako predyktory w regresji. Dużo czasu poświęca się na grupowanie zmiennych kategorialnych i dyskretyzację (binowanie / klasyfikowanie) zmiennych ciągłych.

Ciężar dowodu jest prostym obliczeniem. Jest to dziennik szans dla klasy, pomniejszony dziennik szans dla populacji:
WOE = ln (Dobra (Klasa) / Zła (Klasa)) - ln (Dobra (WSZYSTKO) / Zła (WSZYSTKO)) To jest standardowa metodologia transformacji dla prawie wszystkich modeli scoringowych zbudowanych przy użyciu regresji logistycznej. Możesz użyć tych samych liczb w częściowym podejściu.

Piękno tego polega na tym, że zawsze będziesz wiedział, czy współczynniki przypisane do każdej WOE mają sens. Współczynniki ujemne są sprzeczne z wzorcami w danych i zwykle wynikają z wielokoliniowości; a współczynniki powyżej 1,0 wskazują na nadmierną kompensację. Większość współczynników wyjdzie gdzieś pomiędzy zero a jeden.

Raymond Anderson
źródło
Dziękujemy za interesujący i pouczający post. Nie mogę jednak zrozumieć, w jaki sposób odpowiada na pytanie zawarte w tym wątku. Do jakiego „dziwnego przypadku” odwołujesz się? Czy może zamierzałeś to wykorzystać, aby odpowiedzieć na inne pytanie w innym miejscu?
whuber