Jeśli mam bardzo wypaczone pozytywne dane, często biorę dzienniki. Ale co mam zrobić z mocno wypaczonymi nieujemnymi danymi, które zawierają zera? Widziałem dwie zastosowane transformacje:
- który ma ciekawą funkcję, która 0 odwzorowuje na 0.
- gdzie c jest albo oszacowane, albo ustawione na bardzo małą wartość dodatnią.
Czy są jakieś inne podejścia? Czy są jakieś dobre powody, aby preferować jedno podejście od innych?
data-transformation
large-data
Rob Hyndman
źródło
źródło
Odpowiedzi:
Wydaje mi się, że najwłaściwszy wybór transformacji zależy od modelu i kontekstu.
Punkt „0” może wynikać z kilku różnych powodów, z których każdy może wymagać innego traktowania:
Naprawdę nie oferuję odpowiedzi, ponieważ podejrzewam, że nie ma uniwersalnej, „poprawnej” transformacji, gdy masz zera.
źródło
Nikt nie wspominał o odwrotnej hiperbolicznej transformacji sinusoidalnej. Więc dla kompletności dodam go tutaj.
Jest to alternatywa dla transformacji Box-Coxa i jest zdefiniowana przez gdzie . Dla dowolnej wartości zero zmienia się na zero. Istnieje również wersja dwuparametrowa umożliwiająca przesunięcie, podobnie jak w przypadku dwuparametrowej transformacji BC. Burbidge, Magee i Robb (1988) omawiają transformację IHS, w tym oszacowanie .θ > 0 θ θ
Transformacja IHS działa z danymi zdefiniowanymi na całej linii rzeczywistej, w tym wartościami ujemnymi i zerami. W przypadku dużych wartości zachowuje się jak transformacja dziennika, niezależnie od wartości (z wyjątkiem 0). Ograniczająca wielkość liter jako daje .θ θ → 0 f ( y , θ ) → yr θ θ → 0 fa( y, θ ) → y
Wydaje mi się, że transformacja IHS powinna być o wiele lepiej znana niż obecnie.
źródło
Przydatnym podejściem, gdy zmienna jest używana jako niezależny czynnik w regresji, jest zastąpienie jej dwiema zmiennymi: jedna jest binarnym wskaźnikiem tego, czy wynosi zero, a druga jest wartością oryginalnej zmiennej lub jej ponownym wyrażeniem, takie jak jego logarytm. Technikę tę omówiono w książce Hosmer & Lemeshow na temat regresji logistycznej (i w innych miejscach, jestem pewien). Skrócone wykresy prawdopodobieństwa dodatniej części oryginalnej zmiennej są przydatne do identyfikacji odpowiedniego ponownego wyrażenia. (Zobacz przykłady na https://stats.stackexchange.com/a/30749/919 ).
Kiedy zmienna jest zależna w modelu liniowym, regresja ocenzurowana (jak Tobit ) może być użyteczna, ponownie eliminując potrzebę tworzenia logarytmu początkowego. Ta technika jest powszechna wśród ekonometrów.
źródło
Transformacje logów ze zmianami są specjalnymi przypadkami transformacji Box-Cox :
Są to rozszerzone formularze dla wartości ujemnych, ale mają również zastosowanie do danych zawierających zera. Box and Cox (1964) przedstawia algorytm znajdowania odpowiednich wartości dla przy maksymalnym prawdopodobieństwie. To daje ostateczną transformację.λ
Powodem preferowania transformacji Box-Coxa jest to, że opracowano je w celu zapewnienia założeń dla modelu liniowego. Wykonano pewne prace, aby wykazać, że nawet jeśli twoich danych nie można przekształcić do normalności, szacowana nadal prowadzi do rozkładu symetrycznego.λ
Nie jestem pewien, jak dobrze to adresuje twoje dane, ponieważ może być tak, że która jest tylko logarytmiczną transformacją, o której wspomniałeś, ale może warto oszacować wymagane , aby sprawdzić, czy inna transformacja jest właściwa.λ=(0,1) λ
W R
boxcox.fit
funkcja w pakieciegeoR
obliczy parametry.źródło
lambda2=TRUE
w argumentach doboxcox.fit
. (Również zaktualizowałem odpowiedź.)boxcoxfit
.Zakładam, że zero! = Brakujące dane, ponieważ to zupełnie inne pytanie.
Myśląc o tym, jak radzić sobie z zerami w wielu regresjach liniowych, zastanawiam się, ile faktycznie mamy zer?
Tylko kilka zer
Jeśli mam jedno zero w stosunkowo dużym zbiorze danych, mam tendencję do:
Czy dopasowanie modelu się zmienia? Co z wartościami parametrów? Jeśli model jest dość odporny na usunięcie punktu, wybiorę szybkie i brudne podejście do dodawania .c
Możesz uczynić tę procedurę nieco mniej surową i zastosować metodę boxcox z przesunięciami opisanymi w odpowiedzi ars.
Duża liczba zer
Jeśli mój zestaw danych zawiera dużą liczbę zer, oznacza to, że prosta regresja liniowa nie jest najlepszym narzędziem do zadania. Zamiast tego użyłbym czegoś takiego jak modelowanie mieszanin (jak sugerują Srikant i Robin).
źródło
Jeśli chcesz czegoś szybkiego i brudnego, dlaczego nie użyć pierwiastka kwadratowego?
źródło
Zakładam, że masz ciągłe dane.
Jeśli dane zawierają zera, oznacza to, że masz skok zerowy, co może wynikać z określonego aspektu twoich danych. Pojawia się na przykład w energii wiatru, wiatr poniżej 2 m / s wytwarza zerową moc (nazywa się to odcięciem), a wiatr nad (coś około) 25 m / s również wytwarza zerową moc (ze względów bezpieczeństwa nazywany jest odcięciem) . Podczas gdy dystrybucja wytwarzanej energii wiatrowej wydaje się ciągła, skok jest zerowy.
Moje rozwiązanie: w tym przypadku sugeruję, aby traktować zera osobno, pracując z mieszaniną wartości szczytowej zera i modelem, który planowałeś zastosować dla części rozkładu, która jest ciągła (wrt Lebesgue).
źródło
Porównując odpowiedź dostarczoną przez @RobHyndman z transformacją log-plus-one rozszerzoną na wartości ujemne z formą:
Jak widać, wraz ze wzrostem transformacja wygląda jak funkcja krokowa. Z wygląda bardzo podobnie do transformacji log-plus-one. A kiedy zbliża się do linii.θ ≈ 1 θ → 0θ θ≈1 θ→0
EDYCJA: Pamiętaj, że transformacja dziennika może być podobnie zmieniona do dowolnej skali, z podobnymi wynikami. Chciałem tylko pokazać, co daje podobne wyniki na podstawie poprzedniej odpowiedzi. Największa różnica między obydwoma podejściami to region blisko , co widać po ich pochodnych.x = 0θ x=0
źródło
Ponieważ zaproponowano dwuparametrowe dopasowanie Box-Coxa, oto R, aby dopasować dane wejściowe, uruchomić na nim dowolną funkcję (np. Prognozowanie szeregów czasowych), a następnie zwrócić odwrócone dane wyjściowe:
źródło
Załóżmy, że Y to kwota, jaką każdy Amerykanin wydaje na nowy samochód w danym roku (całkowita cena zakupu). Y wzrośnie do zera; nie będzie miał żadnych wartości od 0 do około 12 000; i przyjmą inne wartości, głównie w wieku dwudziestu i trzydziestu tysięcy. Predyktorzy byliby przybliżeniami do poziomu potrzeby i / lub zainteresowania dokonaniem takiego zakupu. Nie można powiedzieć, że potrzeba lub zainteresowanie wynosi zero dla osób, które nie dokonały zakupu; w tych skalach osoby niebędące nabywcami byłyby znacznie bliżej nabywców niż Y, a nawet log Y sugerowałby. W przypadku bardzo podobnym do tego, ale w służbie zdrowia, stwierdziłem, że najdokładniejsze przewidywania, ocenione na podstawie krzyżowej walidacji zestawu testowego / zestawu treningowego, zostały uzyskane w kolejności rosnącej,
Niektórzy odskoczą od tej kategoryzacji ciągłej zmiennej zależnej. Ale choć poświęca niektóre informacje, kategoryzacja wydaje się pomóc, przywracając ważny podstawowy aspekt sytuacji - ponownie, że „zera” są znacznie bardziej podobne do reszty, niż wskazuje Y.
źródło
Omówiona tutaj transformacja mocy Yeo-Johnsona ma doskonałe właściwości zaprojektowane do radzenia sobie z zerami i negatywami przy jednoczesnym wykorzystaniu mocnych stron transformacji mocy Boxa Coxa. Do tego zazwyczaj chodzę, gdy mam do czynienia z zerami lub danymi ujemnymi.
Oto podsumowanie transformacji z zaletami / wadami, aby zilustrować, dlaczego Yeo-Johnson jest lepszy.
Log
Plusy: Dobrze sobie radzi z pozytywnymi danymi.
Minusy: nie obsługuje zer.
Log Plus 1
Zalety: Przesunięcie plus 1 dodaje możliwość obsługi zer oprócz pozytywnych danych.
Minusy: kończy się niepowodzeniem z negatywnymi danymi
Pierwiastek kwadratowy
Zalety: Wykorzystuje transformację mocy, która może obsługiwać zera i dane dodatnie.
Minusy: kończy się niepowodzeniem z negatywnymi danymi
Box Cox
Kod R:
Zalety: Umożliwia skalowane transformacje mocy
Wady: cierpi na problemy z zerami i negatywami (tzn. Może obsługiwać tylko dane dodatnie.
Yeo Johnson
Kod R:
Plusy: radzą sobie z danymi dodatnimi, zerowymi i ujemnymi.
Minusy: Brak, o którym mogę myśleć. Właściwości są bardzo podobne do Box-Coxa, ale mogą obsługiwać dane zerowe i ujemne.
źródło
Aby wyjaśnić, jak radzić sobie z logarytmem zerowym w modelach regresji, napisaliśmy artykuł pedagogiczny wyjaśniający najlepsze rozwiązanie i typowe błędy, które ludzie popełniają w praktyce. Opracowaliśmy również nowe rozwiązanie tego problemu.
Artykuł możesz znaleźć, klikając tutaj: https://ssrn.com/abstract=3444996
W naszym artykule podajemy przykład, w którym dodanie bardzo małych stałych zapewnia najwyższe odchylenie. Zapewniamy wyraz wyrażenia stronniczości.
W rzeczywistości Pseudo maksymalne prawdopodobieństwo Poissona (PPML) można uznać za dobre rozwiązanie tego problemu. Należy wziąć pod uwagę następujący proces:
Pokazujemy, że ten estymator jest bezstronny i że można go po prostu oszacować za pomocą GMM za pomocą dowolnego standardowego oprogramowania statystycznego. Na przykład można to oszacować, wykonując tylko jedną linię kodu za pomocą Stata.
Mamy nadzieję, że ten artykuł może pomóc i chcielibyśmy uzyskać od Ciebie informację zwrotną.
Christophe Bellégo i Louis-Daniel Pape CREST - Ecole Polytechnique - ENSAE
źródło