Tal vez no responda del todo a su pregunta, pero en lugar de utilizar la regresión de cresta con una penalización fija de sus coeficientes, sería mejor utilizar la regresión de cresta adaptativa iterada, ya que esta última se aproxima a la regresión penalizada L0 (también conocida como el mejor subconjunto), donde la probabilidad logarítmica de un modelo GLM se penaliza en función de un múltiplo del número de coeficientes distintos de cero en el modelo - véase Frommlet & Noel 2016 . Esto tiene la ventaja de que entonces no hay que afinar el nivel de regularización lambda. En su lugar, puede establecer a priori el nivel de regularización $lambda$ para $lambda = 2$ si desea optimizar directamente el AIC (coincidiendo aproximadamente con la minimización del error de predicción) o para $lambda=log(n)$ para optimizar el BIC (lo que resulta en una selección de modelos asintóticamente óptima en términos de consistencia de la selección). Esto es lo que se hace en el l0ara Paquete R. Para mí, esto tiene más sentido que optimizar primero sus coeficientes bajo un objetivo (por ejemplo, la cresta), sólo para luego ajustar el nivel de regularización de ese modelo basado en algún otro criterio (por ejemplo, minimizar el error de predicción de validación cruzada, AIC o BIC). La otra ventaja de la regresión penalizada por L0 sobre la regresión por crestas o la regresión LASSO es que proporciona estimaciones insesgadas, por lo que se puede eliminar el equilibrio entre sesgo y varianza que afecta a la mayoría de los enfoques de regresión penalizada. Además, al igual que la cresta, también funciona para problemas de alta dimensión con $p>n$ .
Si quiere seguir con la regresión de cresta normal, entonces esta presentación ofrece un buen resumen de las estrategias que se pueden utilizar para ajustar el factor de penalización de la cresta. Los criterios de información como el AIC o el BIC también pueden utilizarse para ajustar la regularización, y cada uno de ellos se aproxima asintóticamente a una forma particular de validación cruzada:
- El AIC minimiza aproximadamente el error de predicción y es asintóticamente equivalente a la validación cruzada leave-1-out (LOOCV) (Stone 1977); a su vez, la LOOCV se aproxima a la validación cruzada generalizada (GCV), pero la LOOCV debería ser siempre mejor que la GCV. Sin embargo, el AIC no es consistente, lo que significa que incluso con una gran cantidad de datos ( $n$ yendo al infinito) y si el modelo verdadero está entre los modelos candidatos, la probabilidad de seleccionar el modelo verdadero basándose en el criterio AIC no se acercaría a 1.
- El BIC es una aproximación a la probabilidad marginal integrada $P(D|M,A) (D=Data, M=model, A=assumptions)$ lo que bajo un prior plano equivale a buscar el modelo que maximiza $P(M|D,A)$ . Su ventaja es que es consistente, lo que significa que con una cantidad muy grande de datos ( $n$ que va a infinito) y si el modelo verdadero está entre los modelos candidatos, la probabilidad de seleccionar el modelo verdadero basándose en el criterio BIC se acercaría a 1. Sin embargo, esto tendría un ligero coste para el rendimiento de la predicción si $n$ eran pequeños. El BIC también es equivalente a la validación cruzada leave-k-out (LKOCV) donde $k=n[11/(log(n)1)]$ con $n=$ tamaño de la muestra (Shao 1997). Sin embargo, hay muchas versiones diferentes del BIC, que se reducen a realizar diferentes aproximaciones de la probabilidad marginal o a asumir diferentes priorizaciones. Por ejemplo, en lugar de utilizar una prioridad uniforme de todos los modelos posibles como en el BIC original, el EBIC utiliza una prioridad uniforme de modelos de tamaño fijo ( Chen & Chen 2008 ) mientras que El BICq utiliza una distribución de Bernouilli que especifica la probabilidad a priori de cada parámetro a incluir .
Tenga en cuenta que el error LOOCV también puede ser calculado analíticamente de los residuos y el diagonal de la matriz del sombrero sin tener que realizar ninguna validación cruzada. Esto sería siempre una alternativa al AIC como aproximación asintótica del error LOOCV.
Referencias
Stone M. (1977) Una equivalencia asintótica de la elección del modelo por validación cruzada y el criterio de Akaike. Journal of the Royal Statistical Society Series B. 39, 44-7.
Shao J. (1997) Una teoría asintótica para la selección de modelos lineales. Statistica Sinica 7, 221-242.
0 votos
Una pregunta similar para LASSO es aquí Una pregunta un poco menos similar es aquí .
1 votos
He necesitado varias relecturas para entender exactamente lo que estabas preguntando. ¿No se puede tomar realmente el valor límite (ya que todos los coeficientes se pondrán a cero - se puede averiguar el ajuste con bastante facilidad)? Por supuesto, no se pueden utilizar puntos con distancias exponenciales, pero se podría (por ejemplo) utilizar puntos uniformes en la inversa de $\lambda$ o se puede utilizar una función cuantificada conveniente para colocar los puntos.
1 votos
@Glen, gracias. He reformulado la pregunta; espero que ahora esté más clara. En realidad, yo sería probablemente tome el valor límite si lo supiera. A esto se refiere la pregunta. ¿Tienes una idea de cuál es el valor límite? Pensé que era $+\infty$ ...
6 votos
Una vez, intenté leer el código fuente de glmnet para responder a esta pregunta. No me fue bien.
0 votos
@MatthewDrury, yo también lo probé. Una vez que me enfrenté a la parte codificada en Fortran, desistí. Pero si no recuerdo mal, el $\lambda_{max}$ se selecciona como si la regularización fuera por LASSO (en cuyo caso es fácil), aunque sea por cresta?
0 votos
No lo sé, mi investigación no fue concluyente. Creo que mi estado de conocimiento es más o menos el mismo que el tuyo, para LASSO es bastante fácil (y se explica en el documento de glmnet), pero no dicen nada sobre lo que hacen cuando estás haciendo regresión de cresta pura.
4 votos
El efecto de $\lambda$ en el estimador de cresta es que reduce los valores singulares $s_i$ de $X$ a través de términos como $s_i^2/(s_i^2+\lambda)$ . Esto sugiere que la selección de $\lambda$ mucho más grande que $s_1^2$ encogerá todo muy fuertemente. Sospecho que $\lambda=\|X\|^2=\sum s_i^2$ será demasiado grande a efectos prácticos. Yo suelo normalizar mis lambdas por la norma cuadrada de $X$ y tener una cuadrícula que va desde $0$ a $1$ .
0 votos
@amoeba, Si lo escribes y lo amplías un poco (como incluir una instrucción paso a paso), me plantearía aceptarlo como respuesta. O en realidad, puede que no haga falta ninguna instrucción extra, tu comentario probablemente lo tiene todo.
1 votos
Sí, es el infinito. Todo mi comentario anterior se refiere a ese hecho
0 votos
Hola @RichardHardy, acabo de añadir una actualización importante a mi respuesta. Crees que ahora resuelve tu pregunta, o no realmente?
0 votos
@amoeba, gracias por la respuesta, aún la estoy digiriendo (estaba un poco ocupado con otras cosas). Pero no te preocupes, tarde o temprano acepto respuestas a la mayoría de las preguntas que publico.
0 votos
No hay problema y no hay presión, sólo quería llamar su atención sobre la actualización que hice.
0 votos
Podría considerar evitar una búsqueda en la red y optimizar las validaciones cruzadas directamente. La LOOCV es con frecuencia un mejor indicador del error de predicción fuera de la muestra que la k-fold CV (véase la figura 1 en Kamair y Maleki ) y tanto LOOCV como GCV tienen ecuaciones de forma cerrada que pueden diferenciarse con respecto a $\lambda$ y optimizado eficazmente por paquetes como pico-motores .
0 votos
@rnickb, hmm, no veo inmediatamente cómo esto debería ayudar con el problema original. Puedo hacer LOOCV para un fijo $\lambda$ pero esto no me ayuda a elegir la parrilla de $\lambda$ . ¿O no?
0 votos
@RichardHardy - no necesitas una rejilla. El paquete Señalé a encuentra el $\lambda$ que optimiza el LOOCV por usted utilizando un optimizador de segundo orden. No es necesario un $\lambda_{max}$ o una cuadrícula de búsqueda, basta con ejecutar $RidgeRegressionModel().fit(X, y).alpha_$ y encuentra el óptimo $\lambda$
0 votos
Puede ver esto cuaderno para una representación gráfica de lo que hace o lea esto entrada del blog para más detalles. La búsqueda en cuadrícula puede considerarse un optimizador robusto pero con poca información e imperfecto. Cuando puedes calcular el gradiente y la hessiana de tu objetivo (en este caso LOOCV o GCV) no lo necesitas y puedes hacerlo mucho mejor.
0 votos
@rnickb, gracias, eso tiene sentido.