Wybór modelu i wydajność modelu w regresji logistycznej

9

Mam pytanie dotyczące wyboru modelu i wydajności modelu w regresji logistycznej. Mam trzy modele oparte na trzech różnych hipotezach. Pierwsze dwa modele (nazwijmy je z i x) mają tylko jedną zmienną objaśniającą w każdym modelu, a trzeci (nazwijmy to w) jest bardziej skomplikowany. Używam AIC do wyboru zmiennych dla modelu w, a następnie AIC do porównywania, który z trzech modeli najlepiej wyjaśnia zmienną zależną. Odkryłem, że model w ma najniższy AIC i teraz chcę zrobić statystyki wydajności dla tego modelu, aby uzyskać pewne pojęcie o mocy predykcyjnej modelu. Ponieważ wiem tylko, że ten model jest lepszy od pozostałych dwóch, ale nie jest tak dobry.

Ponieważ wykorzystałem wszystkie dane do nauki modelu (aby móc porównać wszystkie trzy modele), jak mam postępować z wydajnością modelu? Z tego, co zebrałem, nie mogę po prostu wykonać k-krotnej walidacji krzyżowej na ostatecznym modelu, który otrzymałem z wyboru modelu za pomocą AIC, ale muszę zacząć od początku ze wszystkimi zmiennymi objaśniającymi, czy to prawda? Wydaje mi się, że jest to ostateczny model, który wybrałem z AIC, i chcę wiedzieć, jak dobrze działa, ale zdaj sobie sprawę, że trenowałem na wszystkich danych, więc model może być stronniczy. Więc jeśli zacznę od początku ze wszystkimi zmiennymi objaśniającymi we wszystkich fałdach, otrzymam różne modele końcowe dla niektórych fałdów, czy mogę po prostu wybrać model z fałdu, który dał najlepszą moc predykcyjną i zastosować go do pełnego zestawu danych do porównania AIC z dwoma innymi modelami (z i x)? Lub jak to działa?

Druga część mojego pytania jest podstawowym pytaniem o nadmiernej parametryzacji. Mam 156 punktów danych, 52 to 1, reszta to 0. Mam 14 zmiennych objaśniających do wyboru dla modelu w, zdaję sobie sprawę, że nie mogę uwzględnić wszystkich ze względu na nadmierną parametryzację, przeczytałem, że powinieneś używać tylko 10% grupy zmiennej zależnej z najmniejszą liczbą obserwacji, które dla mnie byłoby tylko 5. Próbuję odpowiedzieć na pytanie z ekologii, czy dobrze jest wybrać zmienne początkowe, które moim zdaniem wyjaśniają zależność najlepiej po prostu na podstawie ekologii? Lub jak wybrać początkowe zmienne objaśniające? Nie wydaje się słuszne całkowite wykluczenie niektórych zmiennych.

Tak naprawdę mam trzy pytania:

  • Czy testowanie wydajności na modelu wyuczonym na pełnym zbiorze danych z weryfikacją krzyżową może być w porządku?
  • Jeśli nie, jak wybrać ostateczny model podczas weryfikacji krzyżowej?
  • Jak wybrać zmienne początkowe, aby zmienić parametry?

Przepraszam za moje niechlujne pytania i moją ignorancję. Wiem, że zadawano podobne pytania, ale nadal czuję się trochę zdezorientowany. Doceń wszelkie przemyślenia i sugestie.

mael
źródło

Odpowiedzi:

7

Prawdą jest, że lepiej jest użyć zestawu danych testowych do sprawdzenia poprawności modelu. Jednak nadal możesz powiedzieć, jak dobrze twój model działał na twoich danych, o ile jesteś uczciwy w tym, co zrobiłeś. To, czego tak naprawdę nie możesz zrobić, to powiedzieć, że zrobi to dobrze na innych danych: prawdopodobnie nie. Niestety wiele opublikowanych artykułów przynajmniej wskazuje na to błędne pojęcie.

Ty pytasz

czy można wybrać zmienne początkowe, które moim zdaniem najlepiej wyjaśniają zależną po prostu na podstawie ekologii?

Jest nie tylko OK, jest lepszy niż jakikolwiek automatyczny program. Rzeczywiście mogą to być również zmienne końcowe . Zależy to w pewnym stopniu od zakresu wiedzy w tej dziedzinie. Jeśli niewiele wiadomo na temat tego, co badasz, konieczne może być bardziej eksploracyjne podejście. Ale jeśli masz dobry powód, by sądzić, że pewne zmienne powinny znajdować się w modelu, to w każdym razie włóż je. I argumentowałbym za pozostawieniem ich tam, nawet jeśli nie są istotne.

Peter Flom
źródło
1

Jeśli masz zamiar dokonać wyboru modelu, myślę, że lepiej jest przeprowadzić wyczerpujące wyszukiwanie i wyważenie każdego modelu, niż wybrać kompletny model. Masz tylko 14 zmiennych, co z pewnością jest wykonalne - 16384 różnych modeli nie jest zbyt duże, szczególnie dlatego, że wielkość próby jest niewielka. Chciałbym również spojrzeć na znormalizowane wagi, zdefiniowane przez:

wm=[lexp(12[AIClAICm])]1

Wagi te zakładają, że AIC jest ujemne dwukrotnie w stosunku do prawdopodobieństwa dziennika plus dwukrotność liczby bet. Jeśli najlepszy model ma wagę zbliżoną do1to po prostu użyj tego. w przeciwnym razie powinieneś uśrednić swoje wyniki modeli łusek o całkowitej masie zbliżonej do1. Zwykle dzieje się tak, że zawsze należy uwzględniać „podstawową” grupę zmiennych, z niepewnością co do zestawu „non-core”, oraz trzeci zestaw nieistotnych zmiennych, które nigdy nie pojawiają się w modelach o wysokiej wadze.

Możesz także zastąpić AIC BIC lub innym IC opartym na karach, aby zobaczyć, jak bardzo wagi zależą od konkretnej zastosowanej kary za złożoność.

prawdopodobieństwo prawdopodobieństwa
źródło
Używanie AIC we wszystkich możliwych modelach jest procesem o ogromnej różnorodności, dla którego zastanawiam się nad wydajnością. Mówiąc ogólnie, nie zawsze logiczne jest myślenie o tym jako o problemie ze zmienną selekcją, ale raczej jako problem z penalizacją (kurczeniem się).
Frank Harrell,
Czy istnieje proces, który nie ma ekstremalnej różnorodności w wyborze modelu? Masz do czynienia z ogromną dyskretną przestrzenią - to niezmiennie prowadzi do dużej liczby porównań. Myślę, że pytanie brzmi bardziej, czy domniemane wcześniejsze podejście do modeli jest rozsądne.
probabilityislogic
Dobrze wyłożone. Uważam jednak, że większość ćwiczeń związanych z selekcją modeli jest niepotrzebna (tzn. Parsimony nie jest twoim przyjacielem) i wynikają z braku priorytetów.
Frank Harrell,
Zgadzam się również, myślę, że współczynniki Bayesa najlepiej nadają się do zagadnień dotyczących struktury modelu, takich jak na przykład użycie rozkładu normalnego czy t. Nie są one bezużyteczne przy selekcji współzmiennej, ale są nieefektywne w porównaniu do skurczu.
probabilislogiczny
Przepraszam za mój późny komentarz, ale czy znasz jakiś prosty sposób na obliczenie tego w R? Mam AIC: s na liście lub macierzy. Jestem dość nowy w R, więc tworzenie skomplikowanych funkcji jest trudne. Dzięki!
mael
0

Aby odpowiedzieć „Czy może być w porządku testowanie wydajności modelu wyuczonego na pełnym zestawie danych z weryfikacją krzyżową?” NIE, nie sądzę, żeby to było w porządku. Powinieneś dopasować wszystkie 3 modele do tego samego podzbioru zestawu danych. Następnie wykonaj weryfikację krzyżową, aby zobaczyć, która jest lepsza.

Stat
źródło
1
Więc jeśli dobrze cię rozumiem, powinienem użyć tylko jednego treningu i jednego zestawu testowego dla wszystkich modeli? Czy nadal mogę używać moich 5 zmiennych dla ostatniego modelu, czy jest to ryzyko nadmiernej parametryzacji? I czy to nie jest ryzyko tylko z jednym zestawem treningów i testów - ponieważ będzie to bardzo zależało od tego, gdzie będzie podział przy względnie niewielkich danych, które mam - czy też nie ma się o co martwić? W przeciwnym razie wydaje się, że byłby to najbardziej poprawny sposób.
mael
0

Czy testowanie wydajności na modelu wyuczonym na pełnym zbiorze danych z weryfikacją krzyżową może być w porządku?

Myślę, że nie. Być może lepszym sposobem byłaby ocena każdego z trzech modeli przy użyciu powtarzanej weryfikacji krzyżowej. Ponieważ wybrałeś swoje funkcje na podstawie wcześniejszej wiedzy, nie musisz się martwić o wybór funkcji. Ta metoda pozwala ocenić wydajność modelu.

Jeśli nie, jak wybrać ostateczny model podczas weryfikacji krzyżowej?

Po dokonaniu oceny wydajności modelu przy użyciu wielokrotnej weryfikacji krzyżowej można następnie wyszkolić ostateczny model przy użyciu wszystkich dostępnych danych.

Jak wybrać zmienne początkowe, aby zmienić parametry?

Jeśli dobrze rozumiem: Jak sugeruje autor powyżej, możesz albo dodać swoje funkcje na podstawie wcześniejszej wiedzy o danym obszarze, albo musisz dokonać wyboru funkcji w ramach weryfikacji krzyżowej, aby uniknąć nadmiernego dopasowania. Ta sama procedura wyboru cech byłaby następnie zastosowana do wszystkich danych podczas szkolenia ostatecznego modelu. Nie można używać tego modelu do raportowania ogólnej wydajności modelu, musi to pochodzić z oszacowania wzajemnej weryfikacji.

BGreene
źródło