Klasyczny model liniowy - wybór modelu

16

Mam klasyczny model liniowy z 5 możliwymi regresorami. Nie są ze sobą skorelowane i mają dość niską korelację z odpowiedzią. Doszedłem do modelu, w którym 3 regresory mają znaczące współczynniki dla ich statystyki t (p <0,05). Dodanie jednej lub obu pozostałych 2 zmiennych daje wartości p> 0,05 dla statystyki t, dla dodanych zmiennych. To prowadzi mnie do przekonania, że ​​model 3 zmiennych jest „najlepszy”.

Jednak używając komendy anova (a, b) w R, gdzie a jest modelem 3 zmiennych, a b jest modelem pełnym, wartość p dla statystyki F wynosi <0,05, co mówi mi, że wolę model pełny od zmiennej 3 Model. Jak pogodzić te pozorne sprzeczności?

Dzięki PS Edytuj: Dalsze informacje. To praca domowa, więc nie będę publikować szczegółów, ale nie podajemy szczegółów tego, co reprezentują regresory - są one ponumerowane od 1 do 5. Jesteśmy proszeni o „wyprowadzenie odpowiedniego modelu, podając uzasadnienie”.

P Sellaz
źródło
6
Odpowiedni model może być rozumiany jako model, który skutecznie wykorzystuje wszystkie wcześniej określone zmienne (uwzględniając nieliniowość itp.). Mam nadzieję, że twój instruktor rozumie, że wybór zmiennej krokowej jest nieprawidłowy. Mało kto.
Frank Harrell,
1
Cześć jeszcze raz i dzięki. Przepraszam za wszystkie tam iz powrotem. Instrukcje mówią również „Nie ma jednego„ najlepszego ”modelu i niekoniecznie musisz uwzględniać wszystkie predyktory”. Ponadto nie ma kolinearności ani nieliniowości. W rzeczywistości wszystkie 5 predyktorów jest generowanych przez niezależne symulacje z rozkładu normalnego. W związku z tym korelacje między predyktorami a odpowiedzią są również niewielkie (największa jest mniejsza niż 0,1). Szczerze mówiąc, moja intuicja mówi, że „najlepszym” modelem może być po prostu średnia próbki (skorygowane r do kwadratu jest mniejsze niż 0,03)
P Sellaz
@P Sellaz: biorąc pod uwagę, że jest to praca domowa z wykorzystaniem danych symulowanych, Twoja intuicja może ci tu dobrze służyć. Napisz uzasadnione wyjaśnienie swojej intuicji.
Zach
1
Nie można przejść przez w ogóle, jak duże jest jak duży jest zależny od kontekstu. Ale w zależności od tego, jak dokładnie miała być przeprowadzona symulacja, masz rację, że ogólny środek może być tym, czego potrzebujesz. R2
Frank Harrell,
1
Ogólnie rzecz biorąc, prawdą jest, że nie trzeba uwzględniać wszystkich predyktorów, aby wykonać dobrą robotę. Ale dane nie są w stanie powiedzieć, jakich predyktorów należy użyć.
Frank Harrell,

Odpowiedzi:

18

Problem zaczął się, gdy szukałeś zredukowanego modelu i korzystałeś z danych, a nie z wiedzy merytorycznej, aby wybrać predyktory. Krokowe wybieranie zmiennych bez jednoczesnego przesuwania się w celu ukarania za wybór zmiennych, choć często stosowane, jest podejściem niewłaściwym. Wiele o tym napisano. Nie ma powodu, aby ufać, że model z trzema zmiennymi jest „najlepszy” i nie ma powodu, aby nie używać oryginalnej listy predyktorów. Wartości P obliczone po użyciu wartości P do wyboru zmiennych są nieprawidłowe. W literaturze z zakresu obrazowania funkcjonalnego nazywa się to „podwójnym zanurzeniem”.

Oto analogia. Załóżmy, że ktoś jest zainteresowany porównywaniem 6 zabiegów, ale używa parowych testów t, aby wybrać, które zabiegi są „różne”, co skutkuje zmniejszonym zestawem 4 zabiegów. Następnie analityk sprawdza ogólną różnicę przy 3 stopniach swobody. Ten test F spowoduje napompowanie błędu typu I. Oryginalny test F z 5 df jest dość ważny.

Więcej informacji można znaleźć na stronie http://www.stata.com/support/faqs/stat/stepwise.html i .

Frank Harrell
źródło
1
Dzięki za odpowiedź. Dodałem edycję oryginalnego pytania. Mam nadzieję, że to OK. Wszelkie dalsze porady będą mile widziane.
P Sellaz,
6

Jedna odpowiedź brzmiałaby „nie można tego zrobić bez wiedzy merytorycznej”. Niestety, prawdopodobnie dostaniesz literę F na twoim zadaniu. Chyba że byłem twoim profesorem. Wtedy otrzyma A.

R2 wynosi 0,03 i między wszystkimi zmiennymi istnieje niska korelacja, zastanawiam się, czy jakikolwiek model jest w ogóle znaczący. Co to jest N? Domyślam się, że jest bardzo duży.

Potem jest

wszystkie 5 predyktorów jest generowanych przez niezależne symulacje z rozkładu normalnego.

Cóż, jeśli WIESZ (to znaczy, instruktor ci powiedział) i jeśli przez „niezależny” masz na myśli „niezwiązany z DV”, to wiesz, że najlepszy model to taki bez predyktorów, a Twoja intuicja jest prawidłowa.

Peter Flom - Przywróć Monikę
źródło
Cześć Peter i dziękuję. N wynosi 900. Wszystkie dane zostały wygenerowane przez symulację. WIEM, bo musieliśmy sami wykonywać symulacje. Powinny one reprezentować prawdziwe dane, jeśli chodzi o pracę domową. Przeprowadzono 100 symulacji, a 5 z największymi korelacjami z odpowiedzią (również symulowanych, ale tylko raz) wybrano jako kandydatów na regresory.
P Sellaz,
1
Po prostu upewnij się, że symulujesz brak związku między dowolnym X i Y. Następnie, jak powiedzieli inni, model regresji jest nieistotny i ogólna średnia jest wystarczająca.
Frank Harrell,
1
Tak, są całkowicie niezależni. Jako potencjalne regresory wybraliśmy dane o największej 5 korelacjach, z których musimy „wyprowadzić odpowiedni model, podając uzasadnienie”, ale „niekoniecznie musimy uwzględnić wszystkie 5 predyktorów”.
P Sellaz,
Wygląda na to, że twój profesor albo: a) jest całkowicie zdezorientowany, albo b) robi coś całkiem interesującego. Trudno powiedzieć, które. Jeśli on / ona zamierzało to pokazać coś, na co wskazywali @FrankHarrell, ja i inni, to dobrze! (to byłoby b). OTOH, jeśli on / ona zamierza to być „prawdziwą” regresją, to uh-oh to a).
Peter Flom - Przywróć Monikę
1
Dam ci znać, kiedy to jest zaznaczone papiery :)
P Sellaz,
4

Możesz spróbować przeprowadzić weryfikację krzyżową. Wybierz podzbiór próbki, znajdź „najlepszy” model dla tego podzbioru za pomocą testów F lub t, a następnie zastosuj go do pełnego zestawu danych (pełna weryfikacja krzyżowa może być bardziej skomplikowana, ale to byłby dobry początek). Pomaga to złagodzić niektóre problemy związane z testowaniem krokowym.

Zobacz notatkę na temat równań regresji skriningowej autorstwa Davida Freedmana, aby uzyskać uroczą symulację tego pomysłu.

Charlie
źródło
2

Naprawdę podoba mi się metoda zastosowana w caretpakiecie: rekurencyjna eliminacja funkcji. Możesz przeczytać więcej na ten temat w winiecie , ale oto podstawowy proces: Wybór zmiennych

Podstawową ideą jest zastosowanie kryteriów (takich jak statystyki t) w celu wyeliminowania nieistotnych zmiennych i zobaczenia, jak to poprawia dokładność predykcyjną modelu. Całość zawijasz w pętlę ponownego próbkowania, na przykład sprawdzanie poprawności krzyżowej. Oto przykład użycia modelu liniowego do uszeregowania zmiennych w sposób podobny do opisanego przez Ciebie:

#Setup
set.seed(1)
p1 <- rnorm(50)
p2 <- rnorm(50)
p3 <- rnorm(50)
p4 <- rnorm(50)
p5 <- rnorm(50)
y <- 4*rnorm(50)+p1+p2-p5

#Select Variables
require(caret)
X <- data.frame(p1,p2,p3,p4,p5)
RFE <- rfe(X,y, sizes = seq(1,5), rfeControl = rfeControl(
                    functions = lmFuncs,
                    method = "repeatedcv")
                )
RFE
plot(RFE)

#Fit linear model and compare
fmla <- as.formula(paste("y ~ ", paste(RFE$optVariables, collapse= "+")))
fullmodel <- lm(y~p1+p2+p3+p4+p5,data.frame(y,p1,p2,p3,p4,p5))
reducedmodel <- lm(fmla,data.frame(y,p1,p2,p3,p4,p5))
summary(fullmodel)
summary(reducedmodel)

W tym przykładzie algorytm wykrywa, że ​​istnieją 3 „ważne” zmienne, ale otrzymuje tylko 2 z nich.

Zach
źródło