Wybór zmiennych do uwzględnienia w modelu wielokrotnej regresji liniowej

35

Obecnie pracuję nad zbudowaniem modelu przy użyciu wielokrotnej regresji liniowej. Po manipulowaniu moim modelem nie jestem pewien, jak najlepiej określić, które zmienne zachować, a które usunąć.

Mój model zaczął się od 10 predyktorów dla DV. Przy zastosowaniu wszystkich 10 predyktorów cztery zostały uznane za znaczące. Jeśli usunę tylko niektóre z oczywiście niepoprawnych predyktorów, niektóre z moich predyktorów, które początkowo nie były znaczące, staną się znaczące. Co prowadzi mnie do pytania: w jaki sposób można określić, które predyktory należy uwzględnić w ich modelu? Wydawało mi się, że należy raz uruchomić model ze wszystkimi predyktorami, usunąć te, które nie są znaczące, a następnie ponownie uruchomić. Ale jeśli usunięcie tylko niektórych z tych predyktorów czyni inne znaczącymi, pozostawiam pytanie, czy podchodzę do tego źle.

Uważam, że ten wątek jest podobny do mojego pytania, ale nie jestem pewien, czy poprawnie interpretuję dyskusję. Być może jest to bardziej eksperymentalny temat projektowania, ale może ktoś ma doświadczenie, którym może się podzielić.

cryptic_star
źródło
Odpowiedź na to zależy w dużej mierze od twoich celów i wymagań: czy szukasz prostego skojarzenia, czy też przewidujesz; jak wysoki jesteś interpretowalności; czy masz jakieś informacje na temat zmiennych z innych publikacji, które mogłyby wpłynąć na proces; co z interakcjami lub transformowanymi wersjami zmiennych: czy możesz je uwzględnić; itp. Musisz podać więcej szczegółów na temat tego, co próbujesz zrobić, aby uzyskać dobrą odpowiedź.
Nick Sabbe
Na podstawie tego, o co prosiłeś, będzie to do przewidywania. Wpływ na inne zmienne oferuje tylko możliwe powiązanie. Nie ma między nimi interakcji. Tylko jedna wartość musi zostać przekształcona i zostało to zrobione.
cryptic_star
1
Czy istnieje teoria, która mówi, jakie predyktory powinieneś uwzględnić? Jeśli masz wiele zmiennych, które zmierzyłeś i nie ma teorii, zaleciłbym przeprowadzenie zestawu obserwacji, abyś mógł przetestować swój model na danych, które nie zostały użyte do jego utworzenia. Błędne jest testowanie i sprawdzanie poprawności modelu na tych samych danych.
Michelle,
Walidacja krzyżowa (jak omawia Nick Sabbe), metody karane (Dikran Marsupial) lub wybór zmiennych w oparciu o wcześniejszą teorię (Michelle) są opcjami. Należy jednak pamiętać, że wybór zmiennych jest z natury bardzo trudnym zadaniem. Aby zrozumieć, dlaczego jest tak potencjalnie obarczony, pomocne może być przeczytanie mojej odpowiedzi tutaj: algorytmy automatycznego wyboru modelu . Na koniec warto zauważyć, że problemem jest logiczna struktura tego działania, a nie to, czy komputer robi to automatycznie, czy robisz to ręcznie.
gung - Przywróć Monikę
Sprawdź również odpowiedzi na ten post: stats.stackexchange.com/questions/34769/…
jokel,

Odpowiedzi:

19

Na podstawie twojej reakcji na mój komentarz:

Szukasz prognozy. Dlatego tak naprawdę nie powinieneś polegać na (nie) znaczeniu współczynników. Lepiej byś to zrobił

  • Wybierz kryterium, które najlepiej opisuje twoją prognozę (np. Wskaźnik błędnej klasyfikacji, AUC ROC, niektóre z nich wraz z wagami, ...)
  • Dla każdego interesującego modelu oceń to kryterium. Można to zrobić np. Poprzez dostarczenie zestawu walidacyjnego (jeśli masz szczęście lub bogactwo), poprzez walidację krzyżową (zwykle dziesięciokrotnie) lub dowolne inne opcje, na jakie pozwala twoje kryterium zainteresowania. Jeśli to możliwe, znajdź także oszacowanie SE kryterium dla każdego modelu (np. Używając wartości dla różnych fałdów w walidacji krzyżowej)
  • Teraz możesz wybrać model z najlepszą wartością kryterium, chociaż zwykle zaleca się wybranie najbardziej oszczędnego modelu (najmniej zmiennych), który mieści się w obrębie jednej SE o najlepszej wartości.

Wrt każdy interesujący model : tutaj leży całkiem niezły haczyk. Z 10 potencjalnymi predyktorami, to jest mnóstwo potencjalnych modeli. Jeśli masz na to czas lub procesory (lub jeśli Twoje dane są wystarczająco małe, aby modele były odpowiednio dopasowane i ocenione): przygotuj piłkę. Jeśli nie, możesz to zrobić przez wyuczone domysły, modelowanie do przodu lub do tyłu (ale przy użyciu kryterium zamiast znaczenia) lub jeszcze lepiej: użyj algorytmu, który wybiera rozsądny zestaw modeli. Jednym z algorytmów, który to robi, jest regresja karana, w szczególności regresja Lasso. Jeśli używasz R, po prostu podłącz pakiet glmnet i już jesteś gotowy.

Nick Sabbe
źródło
+1, ale czy mógłbyś wyjaśnić, dlaczego dokładnie „wybierałbyś najbardziej oszczędny model (najmniej zmiennych), który mieści się w obrębie jednej SE o najlepszej wartości”?
rolando2
Parsimony jest w większości sytuacji pożądaną właściwością: zwiększa interpretowalność i zmniejsza liczbę pomiarów, które należy wykonać, aby nowy podmiot mógł korzystać z modelu. Druga strona historii jest taka, że ​​to, co otrzymujesz za swoje kryterium, jest jedynie szacunkiem, z pasującym SE: Widziałem całkiem sporo wykresów pokazujących oszacowania kryterium w odniesieniu do jakiegoś parametru strojenia, gdzie „najlepsza” wartość była po prostu wyjątkowa szczyt. W związku z tym reguła 1 SE (która jest arbitralna, ale jest przyjętą praktyką) chroni przed tym, oferując dodatkową oszczędność.
Nick Sabbe
13

Nie ma na to prostej odpowiedzi. Po usunięciu niektórych nieistotnych zmiennych objaśniających inne, skorelowane z nimi, mogą stać się znaczące. Nie ma w tym nic złego, ale sprawia, że ​​wybór modelu jest przynajmniej częściowo sztuką, a nie nauką. Właśnie dlatego eksperymenty mają na celu zachowanie względem siebie zmiennych objaśniających, aby uniknąć tego problemu.

Tradycyjnie analitycy krok po kroku dodawali i odejmowali zmienne do modelu (podobnie do tego, co zrobiliście) i testowali je pojedynczo lub w małych grupach za pomocą testów t lub F. Problem polega na tym, że możesz przeoczyć pewną kombinację zmiennych, aby odjąć (lub dodać), gdzie ich połączony efekt (lub brak efektu) jest ukryty przez kolinearność.

Dzięki nowoczesnej mocy obliczeniowej możliwe jest dopasowanie wszystkich 2 ^ 10 = 1024 możliwych kombinacji zmiennych objaśniających i wybranie najlepszego modelu według jednego z wielu możliwych kryteriów, np. AIC, BIC lub mocy predykcyjnej (na przykład zdolność do przewidywania wartości testowego podzbioru danych, które oddzieliłeś od zestawu używanego do dopasowania do modelu). Jeśli jednak zamierzasz testować (domyślnie lub jawnie) 1024 modele, musisz przemyśleć swoje wartości p z klasycznego podejścia - zachowaj ostrożność ...

Peter Ellis
źródło
Dzięki za wysoki poziom przejścia plusów i minusów obu stron. Potwierdziło to wiele z tego, co podejrzewałem.
cryptic_star
11

Jeśli interesuje Cię tylko wydajność predykcyjna, prawdopodobnie lepiej jest użyć wszystkich funkcji i użyć regresji grzbietu, aby uniknąć nadmiernego dopasowania próbki treningowej. Jest to zasadniczo rada zawarta w załączniku do monografii Millara na temat „wyboru podzbiorów w regresji” , więc ma rozsądny rodowód!

Powodem tego jest to, że jeśli wybierzesz podzbiór oparty na oszacowaniu wydajności opartym na stałej próbce danych (np. AIC, BIC, walidacja krzyżowa itp.), Kryterium wyboru będzie miało skończoną wariancję, dzięki czemu możliwe jest przewyższają same kryterium wyboru. Innymi słowy, na początku, gdy minimalizujesz kryterium wyboru, poprawi się ogólna wydajność, jednak przyjdzie moment, w którym im bardziej zmniejszysz kryterium wyboru, tym gorsza będzie generalizacja. Jeśli masz pecha, możesz łatwo skończyć z modelem regresji, który działa gorzej niż ten, który zacząłeś (tj. Model ze wszystkimi atrybutami).

Jest to szczególnie prawdopodobne, gdy zestaw danych jest mały (więc kryterium wyboru ma dużą wariancję) i gdy istnieje wiele możliwych wyborów modelu (np. Wybór kombinacji cech). Wydaje się, że regularyzacja jest mniej podatna na nadmierne dopasowanie, ponieważ jest to parametr skalarowy, który należy dostosować, co daje bardziej ograniczony obraz złożoności modelu, tj. Mniej efektywnych stopni swobody, z którymi można by przesadzić kryterium wyboru .

Dikran Torbacz
źródło
0

Użyj biblioteki skoków. Podczas kreślenia zmiennych oś y pokazuje skorygowane R ^ 2. Patrzysz, gdzie pola są czarne przy najwyższym R ^ 2. Spowoduje to wyświetlenie zmiennych, których należy użyć do wielokrotnej regresji liniowej.

Przykład wina poniżej:

library(leaps)
regsubsets.out <-
  regsubsets(Price ~ Year + WinterRain + AGST + HarvestRain + Age + FrancePop,
         data = wine,
         nbest = 1,       # 1 best model for each number of predictors
         nvmax = NULL,    # NULL for no limit on number of variables
         force.in = NULL, force.out = NULL,
         method = "exhaustive")
regsubsets.out

#----When you plot wherever R^2 is the highest with black boxes,
#so in our case AGST + HarvestRain + WinterRain + Age and the dependent var.is Price----#
summary.out <- summary(regsubsets.out)
as.data.frame(summary.out$outmat)
plot(regsubsets.out, scale = "adjr2", main = "Adjusted R^2")
zschleien
źródło
Nie brzmi to bardzo różnie od tak zwanego wyboru „najlepszych podzbiorów”, który ma znane problemy.
Gung - Przywróć Monikę
leaps wyraźnie oblicza „najlepsze podzbiory”, chociaż nie radzi, jak wybierać spośród podzbiorów o różnych rozmiarach. (To kwestia między tobą a duchownym statystycznym.)
steveo'america
Zabawne leapsjest to, że opiera się na „kodzie FORTRAN77 Alana Millera [...] opisanym bardziej szczegółowo w jego książce„ Subset Selection in Regression ””, książce wspomnianej przez Dikrana w innej odpowiedzi na to pytanie :-)
jorijnsmit
-2

Dlaczego nie zrobić najpierw analizy korelacji, a następnie włączyć w regresji tylko te, które korelują z Dv?

Ania
źródło
2
Jest to ogólnie zły sposób wyboru zmiennych, patrz np. Czy użycie macierzy korelacji do wyboru predyktorów regresji jest prawidłowe? Analiza korelacji jest zupełnie inna niż regresja wielokrotna, ponieważ w tym drugim przypadku musimy pomyśleć o „partycjonowaniu” (nachylenia regresji pokazują związek, gdy uwzględni się inne zmienne ), ale macierz korelacji tego nie pokazuje.
Silverfish,
To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować dowolny post ; zamiast tego podaj odpowiedzi, które nie wymagają wyjaśnienia od pytającego . - Z recenzji
Sycorax mówi Przywróć Monikę
1
@GeneralAbrial Uderza mnie, że jest to odpowiedź na pytanie, choć krótkie. Nie jest to dobre rozwiązanie problemu, ale właśnie po to są głosy w górę / w dół. (Myślę, że „dlaczego nie” ma na celu raczej retoryczne pytanie niż prośbę autora o wyjaśnienie).
Silverfish,
-4

Mój doradca zaproponował inny możliwy sposób rozwiązania tego problemu. Uruchom wszystkie zmienne jeden raz, a następnie usuń te, które nie spełniają pewnego progu (ustawiliśmy nasz próg na p <0,25). Kontynuuj iterację w ten sposób, aż wszystkie zmienne spadną poniżej tej wartości .25, a następnie zgłoś te wartości, które są znaczące.

cryptic_star
źródło
1
Cześć allie, o tym wspomniał @Peter Ellis w drugim akapicie swojej odpowiedzi. Jego drugie zdanie dotyczy problemu, który wprowadza ta technika. Czy masz teorię, która mówi ci, jakie predyktory zastosować w swoim modelu?
Michelle,
Tak, @Michelle słusznie podkreśla odpowiedzialność za to podejście. Może dawać bardzo dowolne wyniki.
rolando2
Tak, kryje się za tym teoria, którą mamy nadzieję rozwinąć. W szczególności przyglądamy się interakcjom niektórych sygnałów społecznych (takich jak mowa). Zdajemy sobie sprawę, które z nich mają lub nie mają już siły przebicia. Staramy się jednak dostarczać wersje bardziej szczegółowe. Tak więc mowa może zostać podzielona na pytania, opinie, oceny itp.
cryptic_star
2
Okej, więc przeprowadzasz analizę eksploracyjną. :) Możesz wypróbować różne kombinacje, ale musisz przetestować model, w którym się znajdziesz, na nowych danych. Z definicji, dzięki temu, co robisz, będziesz mieć „najlepszy” model dla swoich danych, ale może nie działać, jeśli zbierzesz inny zestaw danych.
Michelle,