Jak radzić sobie z wielokoliniowością podczas wyboru zmiennych?

28

Mam zestaw danych z 9 ciągłymi zmiennymi niezależnymi. Staram się wybierać między tymi zmiennymi, aby dopasować model do jednego procentu (zależnej) zmiennej Score. Niestety wiem, że między kilkoma zmiennymi wystąpi poważna kolinearność.

Próbowałem użyć stepAIC()funkcji w R do wyboru zmiennych, ale ta metoda, co dziwne, wydaje się wrażliwa na kolejność, w której zmienne są wymienione w równaniu ...

Oto mój kod R (ponieważ są to dane procentowe, używam transformacji logit dla Score):

library(MASS)
library(car)

data.tst = read.table("data.txt",header=T)
data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 +
             Var8 + Var9, data = data.tst)

step = stepAIC(data.lm, direction="both")
summary(step)

Z jakiegoś powodu odkryłem, że zmienne wymienione na początku równania są ostatecznie wybierane przez stepAIC()funkcję, a wynikiem można manipulować przez listowanie, np. Var9Najpierw (po tyldie).

Jaki jest bardziej skuteczny (i mniej kontrowersyjny) sposób dopasowania modelu tutaj? W rzeczywistości nie jestem całkowicie zdeterminowany, aby zastosować regresję liniową: jedyne, czego chcę, to móc zrozumieć, która z 9 zmiennych naprawdę napędza zmianę w Scorezmiennej. Najlepiej byłoby, gdyby była to metoda uwzględniająca duży potencjał kolinearności w tych 9 zmiennych.

Julie
źródło
6
Kolinearność będzie oznaczać, niezależnie od analizy, że w zasadzie niemożliwe jest ustalenie, czy jedna zmienna „napędza” zmienność mniej więcej lub mniej niż zmienna, z którą jest wysoce współliniowa. Mając na uwadze to ograniczenie, możesz wypróbować lasso jako sposób na wybranie niewielkiej liczby zmiennych, które optymalnie przewidują, a następnie zgłoszenie zestawu wybranych zmiennych i tych, z którymi ten zestaw jest wysoce współliniowy. Zgrupowane lasso to kolejna opcja.
gość
4
@guest: Lasso nie działa szczególnie dobrze w obecności silnej kolinearności, szczególnie w odniesieniu do problemu wyboru modelu.
kardynał
2
@ cardinal, lasso ma się dobrze, ale jeśli kilka zmiennych jest skorelowanych, zwykle wybierze tylko jedną z nich, dlatego zasugerowałem przyjrzenie się zestawowi zmiennych wysoce współliniowych. Decyzja o zastosowaniu czegoś bardziej złożonego niż to „domyślne” wymagałaby oceny użyteczności i silniejszego pojęcia, do czego ten model jest przeznaczony.
gość
2
Możesz zajrzeć do funkcji bicreg {pakiet BMA}. Pamiętaj, że potrzebujesz zestawu danych z kompletnymi przypadkami, aby działał poprawnie. Uważam, że jest to bardzo przydatne do wyboru modelu.
Dominic Comtois
1
@guest: Cóż, zależy to bardzo od sposobu wyboru parametru regularyzacji. Faktycznie, w niektórych systemach, lasso (ma tendencję do udowodnienia) nad wybranymi parametrami. OP zapytał: „jedyne, czego chcę, to móc zrozumieć, która z 9 zmiennych naprawdę napędza zmianę w Scorezmiennej”, czyli zdanie, na którym mogłem się nadmiernie skoncentrować. W obecności silnej kolinearności lasso nie pomoże w tym, przynajmniej w bardziej rygorystycznych interpretacjach uwagi OP.
kardynał

Odpowiedzi:

14

Po pierwsze, bardzo dobrym źródłem tego problemu jest T. Keith, Multiple Regression i Beyond. Książka zawiera wiele materiałów na temat modelowania ścieżek i wyboru zmiennych i myślę, że znajdziesz tam wyczerpujące odpowiedzi na swoje pytania.

Jednym ze sposobów rozwiązania problemu wielokoliniowości jest wyśrodkowanie predyktorów, czyli odjęcie średniej z jednej serii od każdej wartości. Regresji grzbietu można również użyć, gdy dane są wysoce współliniowe. Wreszcie regresja sekwencyjna może pomóc w zrozumieniu związków przyczynowo-skutkowych między predyktorami, w połączeniu z analizą sekwencji czasowej zdarzeń predykcyjnych.

Czy wszystkie 9 zmiennych wykazuje kolinearność? Do diagnozy można użyć współczynnika inflacji wariancji Cohena 2003. Wartość VIF> = 10 wskazuje na wysoką kolinearność i zawyżone błędy standardowe. Rozumiem, że jesteś bardziej zainteresowany relacją przyczynowo-skutkową między predyktorami a wynikami. Jeśli nie, multikolinearność nie jest uważana za poważny problem z prognozowaniem, co można potwierdzić, sprawdzając MAE danych nieobjętych próbką w porównaniu z modelami zbudowanymi z dodaniem predyktorów jednocześnie. Jeśli twoje predyktory mają marginalną moc predykcyjną, przekonasz się, że MAE zmniejsza się nawet w obecności wielokoliniowości modelu.

Robert Kubrick
źródło
16

Ponieważ tak trudno jest określić, które zmienne mają zostać upuszczone, często lepiej jest nie upuszczać zmiennych. Dwa sposoby postępowania wzdłuż tej linii to (1) zastosowanie metody redukcji danych (np. Grupowanie zmiennych lub główne składniki) i umieszczenie podsumowań w modelu zamiast poszczególnych zmiennych oraz (2) umieszczenie wszystkich zmiennych w modelu, ale nie testowanie dla efektu jednej zmiennej skorygowanej o skutki zmiennych konkurencyjnych. W przypadku (2) testy fragmentów konkurencyjnych zmiennych są potężne, ponieważ zmienne współliniowe łączą siły w ogólnym teście asocjacji wielokrotnego stopnia swobody, zamiast konkurować ze sobą, jak w przypadku testowania zmiennych indywidualnie.

Frank Harrell
źródło
czy mógłbyś tak po prostu wyjaśnićand put summary scores into the model
SIslam
1
Moje notatki z kursu na biostat.mc. vanderbilt.edu/rms idą w szczegółach
Frank Harrell
1

Jeśli chcesz dokonać wyboru zmiennej w obecności wysokiej kolinearności, mogę polecić pakiet L0ara , który pasuje do karanych GLM L0 za pomocą iteracyjnej adaptacyjnej procedury grzbietu . Ponieważ metoda ta ostatecznie opiera się na regresji regularnej grzbietu, może bardzo dobrze radzić sobie z kolinearnością, aw moich symulacjach dawała znacznie mniej fałszywych wyników dodatnich, a jednocześnie zapewnia doskonałą wydajność przewidywania, w porównaniu np. Z LASSO, elastyczną siatką lub adaptacyjnym LASSO. Możesz też wypróbować pakiet L0Learnz kombinacją kary L0 i L2. Kara L0 sprzyja wtedy rzadkości (tj. Małym modelom), podczas gdy kara L2 reguluje kolinearność. Często sugerowana jest również elastyczna siatka (która wykorzystuje kombinację kary L1 i L2), ale w moich testach spowodowało to znacznie więcej fałszywych trafień, a także współczynniki będą mocno tendencyjne. To uprzedzenie możesz pozbyć się, jeśli zamiast tego zastosujesz metody karane L0 (znany również jako najlepszy podzbiór) - jest to tak zwany estymator wyroczni, który jednocześnie uzyskuje spójne i obiektywne współczynniki parametrów. Parametry regularyzacji we wszystkich tych metodach należy zoptymalizować poprzez krzyżową weryfikację, aby uzyskać optymalną wydajność prognozowania poza próbą. Jeśli chcesz również uzyskać poziomy istotności i przedziały ufności dla swoich parametrów, możesz to również zrobić za pomocą nieparametrycznego ładowania początkowego.

Iteracyjny algorytm adaptacyjnego grzbietu l0ara(czasami nazywany zepsutym adaptacyjnym grzbietem), podobnie jak elastyczna siatka, ma efekt grupowania, który spowoduje, że wybierze wysoce skorelowane zmienne w grupach, gdy tylko wejdą do twojego modelu. Ma to sens - np. Gdybyś miał dwie zmienne prawie kolinearne w swoim modelu, podzieliłby efekt równomiernie na oba.

Jeśli analizujesz dane proporcji, lepiej użyć modelu regresji logistycznej btw - l0arapakiet pozwala to zrobić w połączeniu z karą L0; w przypadku L0Learnpakietu będzie to wkrótce obsługiwane.

Tom Wenseleers
źródło