Używam LASSO, który ma pewne predyktory zmiennych jakościowych i niektóre ciągłe. Mam pytanie dotyczące zmiennych kategorialnych. Pierwszym krokiem, jaki rozumiem, jest rozbicie każdego z nich na atrapy, ujednolicenie ich pod kątem uczciwej kary, a następnie regres. Pojawia się kilka opcji traktowania zmiennych fikcyjnych:
Uwzględnij wszystkie manekiny oprócz jednego dla każdego czynnika, pozostawiając go jako poziom odniesienia. Interpretacja współczynnika fikcyjnego odnosi się do wykluczonej kategorii „referencyjnej”. Punkt przecięcia jest teraz średnią odpowiedzią dla kategorii odniesienia.
Pogrupuj zmienne w każdym czynniku, aby były albo wszystkie wykluczone, albo wszystkie oprócz jednego. Wierzę, że to, co @Glen_b sugeruje tutaj :
Zwykle tak, wszystkie czynniki trzymasz razem. Jest kilka pakietów R, które mogą to zrobić, w tym glmnet
Uwzględnij wszystkie poziomy, zgodnie z sugestią @Andrew M. tutaj :
Możesz także zmienić domyślną funkcję kontrastu, która domyślnie pomija jeden poziom każdego czynnika (kodowanie leczenia). Ale z powodu kary lasso nie jest to już konieczne do identyfikacji, a w rzeczywistości komplikuje interpretację wybranych zmiennych. Aby to zrobić, ustaw
contr.Dummy <- function(contrasts, ...){ conT <- contr.treatment(contrasts=FALSE, ...) conT } options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy'))
Teraz, niezależnie od poziomów wybranego czynnika, możesz myśleć o nim jako o sugerowaniu, że te konkretne poziomy mają znaczenie, w porównaniu do wszystkich poziomów pominiętych. W uczeniu maszynowym widziałem to kodowanie nazywane kodowaniem „na gorąco”.
Pytania:
- Jaka jest interpretacja przechwytywania i współczynników dla każdego z tych podejść?
- Jakie są względy związane z wyborem jednego z nich?
- Czy odskalowujemy współczynniki pozorne, a następnie interpretujemy je jako zmianę przejścia z trybu off na tryb on?