Estou executando um LASSO que possui alguns preditores de variáveis categóricos e outros contínuos. Eu tenho uma pergunta sobre as variáveis categóricas. O primeiro passo que entendo é dividir cada um deles em manequins, padronizá-los para uma penalização justa e depois regredir. Várias opções surgem para o tratamento das variáveis fictícias:
Inclua todos, exceto um dos manequins para cada fator, deixando-o como um nível de referência. A interpretação de um coeficiente fictício é relativa à categoria de "referência" excluída. A interceptação agora é a resposta média para a categoria de referência.
Agrupe as variáveis em cada fator para que sejam todas excluídas ou todas, exceto uma. Acredito que é o que @Glen_b está sugerindo aqui :
Normalmente, sim, você mantém seus fatores todos juntos. Existem vários pacotes R que podem fazer isso, incluindo glmnet
Inclua todos os níveis, conforme sugerido por @Andrew M aqui :
Você também pode alterar a função de contraste padrão, que, por padrão, deixa de fora um nível de cada fator (codificação do tratamento). Porém, devido à penalidade no laço, isso não é mais necessário para a identificabilidade e, de fato, torna a interpretação das variáveis selecionadas mais complicada. Para fazer isso, defina
contr.Dummy <- function(contrasts, ...){ conT <- contr.treatment(contrasts=FALSE, ...) conT } options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy'))
Agora, quaisquer que sejam os níveis de um fator selecionados, você pode pensar nisso como sugerindo que esses níveis específicos são importantes, versus todos os níveis omitidos. No aprendizado de máquina, eu vi essa codificação conhecida como codificação one-hot.
Questões:
- Qual é a interpretação do intercepto e coeficientes sob cada uma dessas abordagens?
- Quais são as considerações envolvidas na seleção de uma delas?
- Nós redimensionamos os coeficientes fictícios e os interpretamos como uma mudança de passar de off para on?