Estou implementando a versão GLMNET da rede elástica para regressão linear com outro software que não o R. Comparei meus resultados com a função R glmnet no modo de laço nos dados de diabetes .
A seleção da variável é boa ao variar o valor do parâmetro (lambda), mas obtenho valores ligeiramente diferentes de coeficientes. Por essa e outras razões, acho que vem da interceptação no loop de atualização, quando computo o ajuste atual, porque não vario a interceptação (que considero a média da variável de destino) em todo o algoritmo: explicado no artigo de Trevor Hastie ( Caminhos de regularização para modelos lineares generalizados via descida de coordenadas , página 7, seção 2.6):
a interceptação não é regularizada, [...] para todos os valores de [...] lambda [o parâmetro de restrição L1]
Mas, apesar do artigo, a função R glmnet fornece valores diferentes para a interceptação no caminho da regularização (os valores lambda diferentes). Alguém tem uma pista sobre como os valores do Intercept são calculados?
glmnet
Acho que pode ser que você esteja errado: ao contrário do modelo linear, não é possível remetereter os preditores de forma que eles sempre sejam ortogonais à interceptação, portanto, a interceptação não pode ser apenas calculada como a média.
fonte