Eu gostaria de usar o GLM e o Elastic Net para selecionar esses recursos relevantes + criar um modelo de regressão linear (ou seja, previsão e entendimento, para que seja melhor ficar com relativamente poucos parâmetros). A saída é contínua. São genes por casos. Eu tenho lido sobre o pacote, mas não tenho 100% de certeza sobre as etapas a seguir:glmnet
Execute o CV para escolher lambda:
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) dados os dados de entrada, você escolheria um valor alfa diferente?
(Q2) preciso fazer outra coisa antes de construir o modelo?Encaixar no modelo:
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
(Q3) algo melhor que "covariância"?
(Q4) Se o lambda foi escolhido pelo CV, por que essa etapa precisanlambda=?
(Q5) é melhor usarlambda.minoulambda.1se?Obtenha os coeficientes para ver quais parâmetros caíram ("."):
predict(model, type="coefficients")Na página de ajuda existem muitos
predictmétodos (por exemplo,predict.fishnet,predict.glmnet,predict.lognet, etc.). Mas qualquer previsão "simples" como eu vi em um exemplo.
(Q6) Devo usarpredictoupredict.glmnetou outro?
Apesar do que li sobre métodos de regularização, sou bastante novo no R e nesses pacotes estatísticos, por isso é difícil ter certeza se estou adaptando meu problema ao código. Todas as sugestões serão bem-vindas.
UPDATE
Com base em "Como observado anteriormente, um objeto de trem de classe contém um elemento chamado finalModel, que é o modelo ajustado com os valores dos parâmetros de ajuste selecionados por reamostragem. Esse objeto pode ser usado da maneira tradicional para gerar previsões para novas amostras, usando o função de previsão do modelo ".
Usando caretpara ajustar alpha e lambda:
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
Será que fitMsubstitua a etapa anterior 2? Se sim, como especificar as opções glmnet ( type.gaussian="naive",lambda=cv$lambda.min/1se) agora?
E o seguinte predictpasso, eu posso substituir modela fitM?
Se eu fizer
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
faz algum sentido ou estou misturando incorretamente o vocabulário de ambos os pacotes?