Krzyżowa walidacja po LASSO w złożonych danych pomiarowych

11

Próbuję dokonać wyboru modelu na niektórych predyktorach kandydujących przy użyciu LASSO z ciągłym wynikiem. Celem jest wybór optymalnego modelu o najlepszej wydajności predykcji, co zwykle można wykonać przez K-krotnie walidację krzyżową po uzyskaniu ścieżki rozwiązania parametrów strojenia z LASSO. Problem polega na tym, że dane pochodzą ze złożonego, wieloetapowego projektu ankiety (NHANES), z próbkowaniem i stratyfikacją klastrów. Część szacunkowa nie jest trudna, ponieważ glmnetw R może przyjmować wzorce masy. Ale część dotycząca walidacji krzyżowej jest dla mnie mniej jasna, ponieważ obserwacje już nie są już dostępne, i w jaki sposób procedura może uwzględniać próbkowanie wag reprezentujących skończoną populację?

Więc moje pytania to:

1) Jak przeprowadzić K-krotnie weryfikację krzyżową ze złożonymi danymi pomiarowymi, aby wybrać optymalny parametr strojenia? Mówiąc dokładniej, jak odpowiednio podzielić przykładowe dane na zestawy szkoleniowe i walidacyjne? A jak zdefiniować oszacowanie błędu prognozy?

2) Czy istnieje alternatywny sposób wyboru optymalnego parametru strojenia?

aenima
źródło
Może ponowne próbkowanie (np. Bootstrap) byłoby bardziej odpowiednią procedurą zamiast k fold cv?
g3o2,
Lumley ostrzega, że ​​„Teoria ładowania początkowego została opracowana tylko dla sytuacji próbkowania z jednakowym prawdopodobieństwem w każdej warstwie, nie jest jasne, jak dobrze działałaby z dowolnymi prawdopodobieństwami”. (28) Wydaje się, że dane NHANES nie zawierają próbek o jednakowym prawdopodobieństwie w warstwach.
Dan Hicks
byłoby interesujące poznać ten drobiazg z PO. Nie widzę, co byłoby tak skomplikowane w wielostopniowym klastrze i próbkowaniu warstwowym ...
g3o2
@Dan Hicks: Nie sądzę, żeby to naprawdę miało znaczenie, podczas ponownego próbkowania replikujesz wiele instancji dokładnie tego samego planu próbkowania.
g3o2
Korzystasz z metod opisanych tutaj? amstat.tandfonline.com/doi/pdf/10.1080/01621459.1988.10478591 (A może coś nowszego?) Jeśli chcesz napisać ten pomysł z bardziej szczegółowymi odpowiedziami, dam ci nagrodę.
Dan Hicks,

Odpowiedzi:

2

Nie mam szczegółowej odpowiedzi, tylko kilka wskazówek do pracy, które chciałem przeczytać:

Możesz rzucić okiem na McConville (2011) na temat kompleksowej ankiety LASSO, aby upewnić się, że korzystanie z LASSO jest odpowiednie dla twoich danych. Ale może to nie jest wielka sprawa, jeśli robisz LASSO tylko do wyboru zmiennych, a następnie dopasowujesz coś innego do pozostałych zmiennych.

W celu weryfikacji krzyżowej ze złożonymi danymi ankietowymi (choć nie LASSO) McConville przytacza także Opsomer i Miller (2005) i You (2009). Ale wydaje się, że w ich metodach stosuje się pomijane CV, a nie K-fold.

Rezygnacja z jednego rozwiązania powinna być prostsza w realizacji dzięki złożonym ankietom - mniej obawy o to, jak odpowiednio podzielić dane na partycje. (Z drugiej strony, uruchomienie może potrwać dłużej niż składanie K. A jeśli Twoim celem jest wybór modelu, wiadomo, że pominięcie może być gorsze niż składanie K dla dużych próbek.)

Civilstat
źródło
0

EDYCJA przez PO: Nie dotyczy złożonych danych ankietowych.

Funkcja cv.glmet może pomóc w przeprowadzeniu wymaganej weryfikacji krzyżowej. Wartość lambda.min to wartość λ, przy której błąd CV jest minimalny. Lambda.1se reprezentuje wartość λ w wyszukiwaniu, która była prostsza niż najlepszy model (lambda.min), ale która zawiera błąd w granicach 1 błędu standardowego najlepszego modelu.

  1. Wybierz siatkę wartości, które możesz wybrać dla alfa i lambda

grid <- expand.grid (.alfa ((1:10) * 0,1, .lambda = (1:10) * 0,1)

  1. Skonfiguruj parametry kontrolne swojego modelu. Poniższy układ sterowania pociągiem wykonuje powtarzanie cv przez 10 iteracji. Przejrzyj dostępne metody i wybierz tę, która pasowałaby do twojego obecnego scenariusza.

cv.glmmod <-cv.glmnet (xTrain, y = yTrain, alpha = grid .alfa .lambda).zalphza,> =T.,lzambreza=solrjare

Dostęp do wartości lambda.min można uzyskać z samego modelu, jak pokazano poniżej.

cv.glmmod $ lambda.min

karthikbharadwaj
źródło
1
Wiem, jak przeprowadzić weryfikację krzyżową dla danych IDID za pomocą glmnet. Pytałem o skorelowane złożone dane ankietowe.
aenima,