Używam pakietu randomForest w R do opracowania losowego modelu lasu w celu wyjaśnienia ciągłego wyniku w „szerokim” zestawie danych z większą liczbą predyktorów niż próbek.
W szczególności dopasowuję jeden model RF, umożliwiając procedurze wybranie zestawu ~ 75 zmiennych predykcyjnych, które moim zdaniem są ważne.
Testuję, jak dobrze ten model przewiduje rzeczywisty wynik dla zarezerwowanego zestawu testowego, wykorzystując podejście opisane tutaj wcześniej , a mianowicie:
... lub w R:
1 - sum((y-predicted)^2)/sum((y-mean(y))^2)
Ale teraz mam dodatkowe ~ 25 zmiennych predykcyjnych, które mogę dodać. Przy użyciu zestawu ~ 100 predyktorów, R² jest wyższy. Chcę to przetestować statystycznie, innymi słowy, używając zestawu ~ 100 predyktorów, czy model testuje znacznie lepiej w testowaniu danych niż dopasowanie modelu przy użyciu ~ 75 predyktorów. To znaczy, że R² od testowania dopasowania modelu RF w pełnym zbiorze danych jest znacznie wyższy niż R² od przetestowania modelu RF w zredukowanym zbiorze danych.
Jest to dla mnie ważne, aby to przetestować, ponieważ są to dane pilotażowe, a zdobycie dodatkowych 25 predyktorów było kosztowne i muszę wiedzieć, czy powinienem zapłacić za pomiar tych predyktorów w większym badaniu uzupełniającym.
Próbuję wymyślić jakieś podejście do ponownego próbkowania / permutacji, ale nic nie przychodzi mi do głowy.
źródło
Zgadzam się z Zachem, że najlepszym pomysłem jest walidacja krzyżowa obu modeli, a następnie porównanie , na przykład poprzez zebranie wartości z każdej fałdy i porównanie powstałych wektorów z testem Wilcoxona (sparowany dla k-krotnie, niesparowany dla losowego CV).R2
Opcja boczna polega na wybraniu wszystkich odpowiednich funkcji, co powiedziałoby, które atrybuty mają szansę być bardzo przydatne w klasyfikacji - a zatem te drogie atrybuty są warte swojej ceny. Można to zrobić na przykład za pomocą owijarki RF Boruta .
źródło
Możesz myśleć w kategoriach znaczenia praktycznego, a nie statystycznego (lub obu). Przy wystarczającej ilości danych można znaleźć rzeczy znaczące statystycznie, które nie będą miały rzeczywistego wpływu na wykorzystanie. Pamiętam, jak analizowałem kiedyś model, w którym interakcje 5-kierunkowe były istotne statystycznie, ale kiedy prognozy z modelu obejmujące wszystko aż do 5-drogowych interakcji zostały porównane z prognozami z modelu obejmującymi tylko interakcje 2-drogowe i główne efekty , największa różnica wynosiła mniej niż 1 osoba (odpowiedzią była liczba osób, a wszystkie interesujące wartości były od 0). Tak więc dodatkowa złożoność nie była tego warta. Spójrz więc na różnice w swoich prognozach, aby zobaczyć, czy różnice są wystarczające, aby uzasadnić dodatkowy koszt, jeśli nie, to po co w ogóle szukać znaczenia statystycznego? Jeśli różnice są wystarczająco duże, aby uzasadnić koszt, jeśli są rzeczywiste, to popieram pozostałe sugestie dotyczące stosowania weryfikacji krzyżowej.
źródło
Jedną z opcji byłoby utworzenie przedziału ufności dla średniego błędu kwadratu. Użyłbym średniego błędu kwadratu zamiast ponieważ mianownik jest taki sam dla obu modeli. Artykuł Dudoita i van der Laana ( artykuł i artykuł roboczy ) zawiera ogólne twierdzenie o konstrukcji przedziału ufności dla dowolnego estymatora ryzyka. Korzystając z przykładu z danych tęczówki, oto trochę kodu R tworzącego 95% przedział ufności przy użyciu metody:R2
Metodę można również rozszerzyć, aby działała w ramach walidacji krzyżowej (nie tylko podział próby jak pokazano powyżej).
źródło
Ponieważ używasz już
randomForest
po weryfikacji krzyżowej, możesz wyemitować obliczenia wybranego dopasowania dopasowania wartości ważności predyktora.źródło
Widzę, że to pytanie zostało zadane dawno temu; jednak żadna odpowiedź nie wskazuje na znaczące niedociągnięcia i nieporozumienia w tym pytaniu.
Proszę zanotować:
Oświadczasz, że R ^ 2 = ESS / TSS = 1 - RSS / TSS. Jest to prawdą tylko w kontekście liniowym. Równość TSS = RSS + ESS jest prawdziwa tylko w regresji liniowej z przechwytywaniem. Dlatego nie można zamiennie używać tych definicji dla losowych lasów. Dlatego RMSE i podobne są bardziej typowymi funkcjami strat.
Co ważniejsze dla celów statystycznych: R ^ 2 ma nieznany rozkład (także w ustawieniu liniowym). Oznacza to, że testowanie hipotezy o znaczeniu statystycznym przy użyciu R ^ 2 nie jest tak proste. Cross-Validation, jak wspomniał Zach , jest dobrym wyborem.
Jeśli chodzi o odpowiedź użytkownika88: Poprawna weryfikacja za pomocą testu Wilcoxona jest poprawnym podejściem. Niedawny artykuł wykorzystuje test rang podpisanych przez Wilcoxona i testy Friedmana do porównywania różnych metod i algorytmów.
źródło