Wie berechnet glmnet den maximalen Lambdawert?
Dasglmnet
Paket verwendet eine Reihe vonLASSO
Tuning-Parameterlambda
skaliert vom Maximumlambda_max
unter denen keine prädiktoren ausgewählt sind. Ich möchte herausfinden, wieglmnet
berechnet dieslambda_max
Wert. Zum Beispiel in einem trivialen Datensatz:
set.seed(1)
library("glmnet")
x <- matrix(rnorm(100*20),100,20)
y <- rnorm(100)
fitGLM <- glmnet(x,y)
max(fitGLM$lambda)
# 0.1975946
Die Verpackungsvignette (http://www.jstatsoft.org/v33/i01/paper) beschreibt in Abschnitt 2.5, dass es diesen Wert wie folgt berechnet:
sx <- as.matrix(scale(x))
sy <- as.vector(scale(y))
max(abs(colSums(sx*sy)))/100
# 0.1865232
Welches ist eindeutig nahe, aber nicht der gleiche Wert. Also, was verursacht diesen Unterschied? Und in einer verwandten Frage, wie könnte ich berechnenlambda_max
für eine logistische Rückführung?