Jak porównać stoki regresji rozruchowej?

13

Załóżmy, że mam dwa zestawy danych z n obserwacjami par danych zmiennej niezależnej x i zmiennej zależnej y . Załóżmy dalej, że chcę wygenerować rozkład nachyleń regresji dla każdego zestawu danych, ładując obserwacje (z zamianą) N razy i obliczając regresję y = a + bxza każdym razem. Jak porównać oba rozkłady, aby stwierdzić, że stoki są znacząco różne? Test U do testowania różnicy między medianami rozkładów byłby silnie zależny od N, to znaczy im częściej powtarzam ładowanie, tym bardziej znacząca będzie różnica. Jak obliczyć nakładanie się rozkładów, aby ustalić znaczącą różnicę?

użytkownik7417
źródło

Odpowiedzi:

19

Bootstrapping jest wykonywany, aby uzyskać bardziej solidny obraz rozkładu próbkowania niż ten, który zakłada teoria dużych próbek. Podczas bootstrapu nie ma praktycznie żadnych ograniczeń co do liczby pobieranych `butów '; w rzeczywistości otrzymujesz lepsze przybliżenie rozkładu próbkowania, im więcej pobierzesz próbek. Oczywiste jest, aby używać bootsamples, choć nie ma nic magicznego tego numeru. Co więcej, nie uruchamiasz testu na bootamples; masz oszacowany rozkład próbkowania - użyj go bezpośrednio. Oto algorytm:B=10,000

  1. weź próbkę jednego zestawu danych, próbkując obserwacji rozruchu z zamiennikiem. [W odniesieniu do poniższych komentarzy, jednym istotnym pytaniem jest, co stanowi prawidłową „obserwację rozruchu”, którą należy zastosować w przypadku twojego przykładowego buta. W rzeczywistości istnieje kilka uzasadnionych podejść; Wspomnę o dwóch, które są solidne i pozwalają na odzwierciedlenie struktury danych: Gdy masz dane obserwacyjne (tj. Dane zostały próbkowane we wszystkich wymiarach, obserwacją rozruchową może być uporządkowana liczba-krotka (np. Wiersz z zestawu danych) .Na przykład, jeśli masz jedną zmienną predykcyjną i jedną zmienną odpowiedzi, próbujesz n 1 ( x , y )n1n1 (x,y)Zamówiłem parę. Z drugiej strony, podczas pracy z danymi eksperymentalnymi, wartości zmiennych predykcyjnych nie były próbkowane, ale jednostki eksperymentalne zostały przypisane do zamierzonych poziomów każdej zmiennej predykcyjnej. W takim przypadku możesz próbkować y wartości z każdego poziomu j zmiennej predyktora, a następnie sparować te y z odpowiednią wartością tego poziomu predyktora. W ten sposób nie próbujesz ponad X. ]n1j yjyX
  2. pasowały do modelu regresji i przechowywać oszacowanie nachylenia (nazywają to p 1 )β^1
  3. zrób próbkę innego zestawu danych, próbkując obserwacji rozruchu z wymianąn2
  4. dopasować inny model regresji i przechowywać oszacowania nachylenie (nazwać p 2 )β^2
  5. tworzą statystyki z dwóch oszacowań (propozycja: wykorzystanie różnicy nachylenia β 1 - β 2 )β^1β^2
  6. przechowuj statystyki i zrzuć inne informacje, aby nie marnować pamięci
  7. Powtórzyć kroki 1 - 6, razyB=10,000
  8. posortuj bootstrapped rozkład próbkowania różnic nachylenia
  9. obliczyć% bsd, który pokrywa się z 0 (w zależności od tego, która wartość jest mniejsza, prawy ogon% lub lewy ogon%)
  10. pomnóż ten odsetek przez 2

Logika tego algorytmu jako testu statystycznego jest zasadniczo podobna do klasycznych testów (np. Testów t), ale nie zakładasz, że dane lub wynikające z nich rozkłady próbkowania mają jakiś szczególny rozkład. (Na przykład, nie zakładasz normalności.) Podstawowym założeniem, które przyjmujesz, jest to, że twoje dane są reprezentatywne dla populacji, z której próbujesz / chcesz uogólnić. Oznacza to, że rozkład próby jest podobny do rozkładu populacji. Pamiętaj, że jeśli twoje dane nie są powiązane z populacją, którą jesteś zainteresowany, nie masz szczęścia.

Niektóre osoby martwią się np. Użyciem modelu regresji do określenia nachylenia, jeśli nie chcesz zakładać normalności. Ta obawa jest jednak błędna. Twierdzenie Gaussa-Markowa mówi nam, że oszacowanie jest obiektywne (tzn. Wyśrodkowane na prawdziwej wartości), więc jest w porządku. Brak normalności oznacza po prostu, że prawdziwy rozkład próbkowania może różnić się od teoretycznie założonego, a zatem wartości p są nieprawidłowe. Procedura ładowania początkowego pozwala rozwiązać ten problem.

Dwa inne kwestie dotyczące ładowania początkowego: Jeśli spełnione są klasyczne założenia, ładowanie początkowe jest mniej wydajne (tj. Ma mniejszą moc) niż test parametryczny. Po drugie, ładowanie początkowe działa najlepiej, gdy eksplorujesz w pobliżu środka rozkładu: środki i mediany są dobre, kwartyle nie są tak dobre, ładowanie początkowe min. Lub maks. Niekoniecznie. Jeśli chodzi o pierwszy punkt, może nie być konieczne rozpoczęcie ładowania w twojej sytuacji; w odniesieniu do drugiego punktu, ładowanie stoku jest idealnie w porządku.

gung - Przywróć Monikę
źródło
Chociaż mogę się mylić, pomyślałem, że bootstrap w regresji musiał opierać się na danych resztkowych, a nie na surowych danych, aby zostać zatwierdzony ...
Xi'an
@ Xi'an, myliłem się przed sobą, ale nie rozumiem, dlaczego uważasz, że tylko resztki ładowania początkowego są ważne. Efron i Tibshirani (1994) sekcja 9.5 mówi: „Pary ładowania początkowego są mniej wrażliwe na założenia niż resztki ładowania początkowego. Standardowy błąd uzyskany przez pary ładowania początkowego daje rozsądne odpowiedzi, nawet jeśli [struktura prawdopodobieństwa modelu liniowego] jest całkowicie błędna”. Implikacja jest taka, że ​​aplikacja bootstrap jest bardziej niezawodna, chociaż implikuje, że w niektórych przypadkach może być mniej wydajna.
gung - Przywróć Monikę
Moje obawy związane z ładowaniem par polegają na tym, że uwzględniacie również rozkład predyktorów, który zwykle pozostaje poza obrazem w zwykłych modelach liniowych. Dlatego zawsze uczę moich uczniów, aby ładowali tylko resztki.
Xi'an,
@ Xi'an, to rozsądny punkt, przypuszczam, że zakładałem strukturę danych obserwacyjnych. Zredagowałem swoją odpowiedź, aby dodać więcej szczegółów na temat tych obaw. Nie rozumiem jednak, jak to sugeruje, że pary ładowania początkowego są z konieczności nieprawidłowe.
gung - Przywróć Monikę
Wymuszanie parowania między dwoma niezależnymi zestawami danych jest sztuczne i nieefektywne. Możesz zrobić znacznie więcej!
whuber
4

si

yi=β0+β1xi+β2si+β3sixi+ϵi
β3
E[yix,si=1]=(β0+β2)+(β1+β3)xiE[yix,si=0]=β0+β1xi.
β3nn2n

Jeśli masz korelację między warunkami błędu, być może będziesz musiał nieco zmienić tę procedurę, więc odpisz, jeśli tak jest.

Możesz uogólnić to podejście do pozornie niepowiązanych ram regresji (SUR). To podejście nadal pozwala, aby współczynniki przechwytywania i nachylenia były dowolnie różne w dwóch zestawach danych.

Charlie
źródło
1
To dobry pomysł. Ale czy to również nie zakłada, że ​​w dwóch regresjach wystąpiły błędy?
whuber
1
Słuszna uwaga. Wymaga to, aby nie było różnych wariancji błędów według grup i aby błędy nie były skorelowane w różnych grupach.
Charlie,
0

Robienie wszystkiego w ramach jednej regresji jest zgrabne, a ważne jest założenie niezależności. Jednak obliczanie szacunków punktowych w ten sposób nie wymaga stałej wariancji. Wypróbuj ten kod R;

x <- rbinom(100, 1, 0.5)
z <- rnorm(100)
y <- rnorm(100)
coef(lm(y~x*z))
coef(lm(y~z, subset= x==1))[1] - coef(lm(y~z, subset= x==0))[1]
coef(lm(y~z, subset= x==1))[2] - coef(lm(y~z, subset= x==0))[2]

Tak czy inaczej otrzymujemy tę samą ocenę punktową. Szacunki standardowego błędu mogą wymagać stałej wariancji (w zależności od tego, którego używasz), ale rozważane tutaj ładowanie początkowe nie wykorzystuje szacowanych standardowych błędów.

Gość
źródło
1
Jeśli zamierzasz sprawdzić, czy różnica nachyleń wynosi zero (jak w odpowiedzi @ Charlie, do której zdajesz się śledzić), potrzebujesz dokładnego, prawidłowego oszacowania standardowych błędów. Nie ma znaczenia, czy ładujesz to oszacowanie, czy inaczej.
whuber