Interpretação de gráficos de rastreio variável do LASSO

15

Eu sou novo no glmnetpacote e ainda não tenho certeza de como interpretar os resultados. Alguém poderia me ajudar a ler o seguinte gráfico de rastreamento?

O gráfico foi obtido executando o seguinte:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

insira a descrição da imagem aqui

Mayou
fonte

Respostas:

20

Nos dois gráficos, cada linha colorida representa o valor obtido por um coeficiente diferente no seu modelo. Lambda é o peso atribuído ao termo de regularização (a norma L1); portanto, como o lambda se aproxima de zero, a função de perda do seu modelo se aproxima da função de perda do OLS. Aqui está uma maneira de especificar a função de perda do LASSO para tornar isso concreto:

βeuumasso=argmin [RSS(β)+λNorma L1(β)]

Portanto, quando o lambda é muito pequeno, a solução LASSO deve estar muito próxima da solução OLS e todos os seus coeficientes estão no modelo. À medida que o lambda cresce, o termo de regularização tem maior efeito e você verá menos variáveis ​​em seu modelo (porque mais e mais coeficientes terão valor zero).

Como mencionei acima, a norma L1 é o termo de regularização para o LASSO. Talvez uma maneira melhor de ver isso é que o eixo x é o valor máximo permitido que a norma L1 pode assumir . Então, quando você tem uma pequena norma L1, tem muita regularização. Portanto, uma norma L1 de zero fornece um modelo vazio e, à medida que você aumenta a norma L1, as variáveis ​​"entram" no modelo, pois seus coeficientes assumem valores diferentes de zero.

O gráfico à esquerda e o gráfico à direita mostram basicamente a mesma coisa, apenas em escalas diferentes.

David Marx
fonte
2
Resposta muito elegante, obrigado! É possível deduzir os "melhores preditores" dos gráficos acima, ou seja, um modelo final?
Mayou '
4
Não, você precisará validação cruzada ou algum outro procedimento de validação para isso; dirá qual valor da norma L1 (ou equivalente, qual log (lambda)) produz o modelo com melhor capacidade preditiva.
JAW 27/08/13
11
Se você estiver tentando determinar seus preditores mais fortes, poderá interpretar o gráfico como evidência de que as variáveis ​​que entram no modelo mais cedo são as mais preditivas e as variáveis ​​que entram no modelo mais tarde são menos importantes. Se você deseja o "melhor modelo", geralmente isso é encontrado via validação cruzada. Um método comum para obter isso usando o pacote glmnet foi sugerido aqui: stats.stackexchange.com/a/68350/8451 . Eu fortemente recomendo que você leia o capítulo curto Lasso em ESLII (3.4.2 e 3.4.3), que é gratuito para download: www-stat.stanford.edu/~tibs/ElemStatLearn
David Marx
@ David Marx, a que se referem os números no topo da trama? como escolher o melhor modelo via validação cruzada.
jeza
O @DavidMarx já faz um tempo, mas para qualquer pessoa que esteja se perguntando isso, esse é o número de coeficientes nesse peso que não têm valor zero.
Ian Belcher