Czy próbkowanie w dół zmienia współczynniki regresji logistycznej?

34

Jeśli mam zestaw danych z bardzo rzadką klasą dodatnią i próbkuję w dół klasę ujemną, a następnie wykonuję regresję logistyczną, czy muszę dostosowywać współczynniki regresji, aby odzwierciedlić fakt, że zmieniłem częstość występowania klasy dodatniej?

Załóżmy na przykład, że mam zestaw danych z 4 zmiennymi: Y, A, B i C. Y, A i B są binarne, C jest ciągłe. Dla 11 100 obserwacji Y = 0, a dla 900 Y = 1:

set.seed(42)
n <- 12000
r <- 1/12
A <- sample(0:1, n, replace=TRUE)
B <- sample(0:1, n, replace=TRUE)
C <- rnorm(n)
Y <- ifelse(10 * A + 0.5 * B + 5 * C + rnorm(n)/10 > -5, 0, 1)

Dopasowuję regresję logistyczną, aby przewidzieć Y, biorąc pod uwagę A, B i C.

dat1 <- data.frame(Y, A, B, C)
mod1 <- glm(Y~., dat1, family=binomial)

Jednak, aby zaoszczędzić czas, mogłem usunąć 10200 obserwacji innych niż Y, dając 900 Y = 0, a 900 Y = 1:

require('caret')
dat2 <- downSample(data.frame(A, B, C), factor(Y), list=FALSE)
mod2 <- glm(Class~., dat2, family=binomial)

Współczynniki regresji z 2 modeli wyglądają bardzo podobnie:

> coef(summary(mod1))
              Estimate Std. Error   z value     Pr(>|z|)
(Intercept) -127.67782  20.619858 -6.191983 5.941186e-10
A           -257.20668  41.650386 -6.175373 6.600728e-10
B            -13.20966   2.231606 -5.919353 3.232109e-09
C           -127.73597  20.630541 -6.191596 5.955818e-10
> coef(summary(mod2))
              Estimate  Std. Error     z value    Pr(>|z|)
(Intercept) -167.90178   59.126511 -2.83970391 0.004515542
A           -246.59975 4059.733845 -0.06074284 0.951564016
B            -16.93093    5.861286 -2.88860377 0.003869563
C           -170.18735   59.516021 -2.85952165 0.004242805

Co prowadzi mnie do przekonania, że ​​próbkowanie w dół nie wpłynęło na współczynniki. Jest to jednak jeden wymyślony przykład i wolę wiedzieć na pewno.

Zach
źródło
8
Oprócz przechwytywania szacujesz te same parametry populacji, gdy próbkowanie jest zmniejszane, ale z mniejszą dokładnością - z wyjątkiem przechwytywania, które możesz oszacować, gdy wiesz, że populacja występuje w odpowiedzi. Dowód patrz Hosmer i Lemeshow (2000), Applied Logistic Regression , rozdz. 6.3. Czasami możesz wprowadzić separację, choć nie często, próbkując w dół próbkę odpowiedzi większościowej.
Scortchi - Przywróć Monikę
@Scortchi Opublikuj swój komentarz jako odpowiedź - wydaje się to wystarczające do mojego pytania. Dzięki za referencje.
Zach.
@Scortchi i Zach: Według modelu o zmniejszonej próbce ( mod2), Pr(>|z|)dla Awynosi prawie 1. Nie możemy odrzucić hipotezy zerowej, że współczynnik Awynosi 0, dlatego straciliśmy zmienną towarzyszącą, która jest używana mod1. Czy to nie jest istotna różnica?
Zhubarb,
@Zhubarb: Jak zauważyłem, możesz wprowadzić separację, co spowoduje, że standardowe błędy Wald będą całkowicie niewiarygodne.
Scortchi - Przywróć Monikę
Zobacz także Scott 2006
StasK,

Odpowiedzi:

29

Próbkowanie w dół jest równoważne projektom kontrolującym wielkość liter w statystykach medycznych - ustalasz liczbę odpowiedzi i obserwujesz wzorce towarzyszące (predyktory). Być może kluczowym odniesieniem jest Prentice i Pyke (1979), „Modele występowania chorób logistycznych i studia przypadków”, Biometrika , 66 , 3.

Wykorzystali Twierdzenie Bayesa do przepisania każdego terminu z prawdopodobieństwem prawdopodobieństwa danego wzorca zmiennego, pod warunkiem bycia przypadkiem lub kontrolą jako dwoma czynnikami; jedna reprezentuje zwykłą regresję logistyczną (prawdopodobieństwo bycia przypadkiem lub kontrolą uwarunkowaną wzorcem towarzyszącym), a druga reprezentuje marginalne prawdopodobieństwo wzoru współzmiennego. Wykazali, że maksymalizacja ogólnego prawdopodobieństwa z zastrzeżeniem ograniczenia, że ​​krańcowe prawdopodobieństwo bycia przypadkiem lub kontrolą są ustalone przez schemat próbkowania, daje takie same oszacowania ilorazu szans jak maksymalizacja pierwszego czynnika bez ograniczenia (tj. Przeprowadzenie zwykłej regresji logistycznej) .

Przechwytywanie dla populacji można oszacować na podstawie przechwytywania kontroli przypadku jeśli rozpowszechnienie populacji jest znane:β 0 πβ0β^0π

β^0=β^0-log(1-ππn1n0)

gdzie i to odpowiednio liczba kontrolnych i przypadków.n 1n0n1

Oczywiście, wyrzucając dane, które masz problem z gromadzeniem, chociaż najmniej przydatna część, zmniejszasz precyzję swoich szacunków. Ograniczenia dotyczące zasobów obliczeniowych to jedyny dobry powód, dla którego wiem o tym, ale wspominam o tym, ponieważ niektórzy ludzie myślą, że „zrównoważony zestaw danych” jest ważny z innego powodu, którego nigdy nie byłem w stanie ustalić.

Scortchi - Przywróć Monikę
źródło
Dziękuję za szczegółową odpowiedź. I tak, powód, dla którego robię to z uruchomieniem pełnego modelu (bez próbkowania w dół) jest obliczeniowo zabroniony.
Zach
Drogi @Scortchi, dziękuję za wyjaśnienie, ale w przypadku, gdy chcę użyć regresji logistycznej, zrównoważony zestaw danych wydaje się konieczny niezależnie od zasobów obliczeniowych. Próbowałem użyć „uprzedzonego zredukowanego logitu prawdopodobieństwa Firtha” bezskutecznie. Wygląda na to, że próbkowanie w dół jest dla mnie jedyną alternatywą, prawda?
Shahin
@Shahin Cóż, (1) dlaczego jesteś niezadowolony z regresji logistycznej dopasowanej według maksymalnego prawdopodobieństwa? & (2) co dokładnie idzie nie tak przy użyciu metody Firtha?
Scortchi - Przywróć Monikę
@Scortchi, Problem polega na tym, że model jest bardzo zły w wykrywaniu successinstancji. Innymi słowy, bardzo niski TPR. Zmieniając próg, TPR wzrasta, ale precyzja jest bardzo zła, co oznacza, że ​​ponad 70% przypadków oznaczonych jako pozytywne, rzeczywiście są negatywne. Czytałem, że w rzadkich przypadkach regresja logistyczna nie radzi sobie dobrze, tutaj zaczyna się metoda Firtha lub przynajmniej jedna z ról, jaką może ona przyjąć. Ale wyniki metody Firtha okazały się bardzo podobne do zwykłego logit. Pomyślałem, że mogę się mylić, robiąc Firtha, ale najwyraźniej wszystko jest w porządku
Shahin
4
@Shahin: Wygląda na to, że tam szczekasz na złe drzewo: próbkowanie w dół nie poprawi dyskryminacji twojego modelu. Korekta odchyleń lub regularyzacja może (w przypadku nowych danych - czy oceniasz jej wydajność na zestawie testowym?), Ale bardziej złożona specyfikacja może być pomocna lub po prostu potrzeba bardziej pouczających predyktorów. Prawdopodobnie powinieneś zadać nowe pytanie, podając szczegółowe dane, kontekst przedmiotu, model, diagnostykę i twoje cele.
Scortchi - Przywróć Monikę