Nierównowaga niekoniecznie stanowi problem, ale sposób jej uzyskania może być. Opieranie strategii próbkowania na zmiennej docelowej jest niewłaściwe. Ponieważ zmienna ta uwzględnia losowość w modelu regresji, jeśli spróbujesz na jej podstawie, będziesz mieć duże problemy z wnioskowaniem. Wątpię, czy można „cofnąć” te problemy.
Można zgodnie z prawem nadmiernie lub niedostatecznie próbować w oparciu o zmienne predykcyjne . W takim przypadku, o ile dokładnie sprawdzisz, czy założenia modelu wydają się prawidłowe (np. Homoscedastyczność, która przychodzi na myśl jako równie ważna w tej sytuacji, jeśli masz „zwykłą” regresję z przyjętymi założeniami), nie sądzę, że musisz to robić cofnij nadpróbkowanie podczas przewidywania. Twój przypadek byłby teraz podobny do analityka, który specjalnie zaprojektował eksperyment, aby mieć zrównoważony zakres zmiennych predykcyjnych.
Edycja - dodawanie - rozwinięcie, dlaczego próbkowanie na podstawie Y jest złe
W dopasowaniu standardowego modelu regresji oczekuje się, że będzie normalnie rozłożone, ma średnią zero, będzie niezależne i identycznie rozłożone. Jeśli wybierzesz próbkę na podstawie wartości y (która obejmuje udział a także ), e nie będzie już miało średniej zero lub będzie identycznie rozmieszczone. Na przykład niskie wartości y, które mogą obejmować bardzo niskie wartości e, mogą być mniej prawdopodobne. Rujnuje to wszelkie wnioskowanie oparte na zwykłych sposobach dopasowania takich modeli. Korekty mogą być wykonane podobnie do tych wykonanych w ekonometrii w celu dopasowania skróconych modeli, ale są uciążliwe i wymagają dodatkowych założeń i powinny być stosowane tylko wtedy, gdy nie ma alternatywy.y= Xb + emimiXb
Rozważ skrajną ilustrację poniżej. Jeśli obetniesz dane o dowolnej wartości dla zmiennej odpowiedzi, wprowadzisz bardzo znaczące uprzedzenia. Jeśli obetniesz ją dla zmiennej objaśniającej, niekoniecznie będzie to problem. Widzisz, że zielona linia, oparta na podzbiorze wybranym ze względu na ich wartości predyktorów, jest bardzo zbliżona do prawdziwie dopasowanej linii; nie można tego powiedzieć o niebieskiej linii, opartej tylko na niebieskich punktach.
Rozciąga się to na mniej poważny przypadek niedoszacowania lub nadmiernego próbkowania (ponieważ obcięcie można postrzegać jako niedoszacowanie doprowadzone do jego logicznej skrajności).
# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)
# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
"Fitted - subset based on y"), lty=1, col=1:4, bty="n")
Jest to pytanie, czy przeprowadzasz analizę przyczynową czy przewidujesz. Przeczytaj http://m.statystycznyhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatistichorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640
Ponowne próbkowanie zmiennej docelowej do celów szkoleniowych do celów prognozowania działa tak długo, jak długo jeden test na próbce niepoddanej ponownej próbce zawiera próbkę. Ostateczna tabela wyników musi opierać się wyłącznie na zawieszeniu. Aby uzyskać największą dokładność w określaniu przewidywalności modelu, należy zastosować techniki walidacji krzyżowej.
„Cofasz” przez ostateczną analizę modelu regresji i niezrównoważonego zestawu danych.
źródło
Nie jest to próba praktycznego rozwiązania twojego problemu, ale właśnie przeprowadziłem trochę badań nad radzeniem sobie z niezrównoważonymi zestawami danych w problemach z regresją i chciałem podzielić się moimi wynikami:
źródło
po pierwsze, racja 1:10 wcale nie jest zła. istnieje prosty sposób cofnięcia próbkowania
1) w przypadku problemu z klasyfikacją, jeśli podpróbkowano dowolną klasę ujemną do 10. prawdopodobieństwo wynikowe jest 10 razy większe niż powinno. możesz po prostu podzielić wynikowe prawdopodobieństwo przez 10. (znane jako ponowna kalibracja modelu)
2) Facebook również podpróbkuje (do przewidywania kliknięć w regresji logistycznej) i wykonuje próbkowanie ujemne w dół. ponowne kalibrowanie odbywa się za pomocą prostej formuły p / (p + (1-p) / w); gdzie p jest prognozą w próbkowaniu w dół, nw jest ujemną częstotliwością próbkowania w dół.
źródło
Myślę, że tym, co może ci pomóc, biorąc pod uwagę twój problem, jest technika nadpróbkowania mniejszości syntetycznej dla regresji (SMOTER). Istnieje kilka badań na ten temat. Jednak pozostaje mniej zbadany niż jego odpowiednik w klasyfikacji, jak prawdopodobnie się zetknąłeś.
Mogę zasugerować artykuł cytowany poniżej (i konferencję, którą przedstawiono na stronie http://proceedings.mlr.press/v74/ ) w zależności od tego, jak bardzo jesteś zainteresowany jego zrozumieniem z perspektywy badań. Naprawdę doceniam wprowadzenie szumu Gaussa w generowaniu obserwacji syntetycznych.
Jeśli bardziej interesuje Cię praktyczne rozwiązanie, pierwsza autorka ma implementację R dostępną na swojej stronie Github. https://github.com/paobranco/SMOGN-LIDTA17
Jeśli bardziej przekonuje Cię Python, niedawno rozpowszechniłem całkowicie Pythonową implementację algorytmu SMOGN, która jest teraz dostępna i jest obecnie testowana jednostkowo. https://github.com/nickkunz/smogn
Mam nadzieję, że to pomogło!
Branco, P., Torgo, L., Ribeiro, R. (2017). „SMOGN: Podejście wstępne do przetwarzania w przypadku niezrównoważonej regresji”. Proceedings of Machine Learning Research, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .
źródło