Comprender los resultados de regresión de crestas

9

Soy nuevo en la regresión de crestas. Cuando apliqué la regresión de cresta lineal, obtuve los siguientes resultados:

>myridge = lm.ridge(y ~ ma + sa + lka + cb  + ltb , temp, lamda = seq(0,0.1,0.001))
> select(myridge)
modified HKB estimator is 0.5010689 
modified L-W estimator is 0.3718668 
smallest value of GCV  at 0 

Preguntas:

  • ¿Está bien obtener cero GCV?
  • ¿Qué significa exactamente?
  • ¿Hay algún problema con mi modelo?
  • ¿Cómo puedo encontrar el valor de ?R2myridge
samarasa
fuente
Cambia lamda a lambda. Creo que la secuencia que especificó fue ignorada.

Respuestas:

20

Podría estar mejor con el paquete penalizado o el paquete glmnet ; ambos implementan lazo o red elástica, por lo que combina las propiedades del lazo (selección de características) y la regresión de crestas (manejo de variables colineales). penalizado también hace cresta. Estos dos paquetes tienen muchas más funciones que lm.ridge()el paquete MASS para tales cosas.

De todos modos, implica penalización cero, por lo tanto, las estimaciones de mínimos cuadrados son óptimas en el sentido de que tenían la puntuación más baja de GCV (validación cruzada generalizada). Sin embargo, es posible que no haya permitido una penalización suficientemente grande; en otras palabras, las estimaciones de mínimos cuadrados fueron óptimas del pequeño conjunto de valores que examinó. Trace la ruta de la cresta (valores de los coeficientes en función de y vea si las trazas se han estabilizado o no. Si no, aumente el rango de valores de evaluados.λ=0λλλ

Gavin Simpson
fuente
5

La razón por la que obtiene un GCV 0 es porque utilizó:

myridge = lm.ridge (y ~ ma + sa + lka + cb + ltb, temp, lamda = seq (0,0.1,0.001))

en vez de

myridge = lm.ridge (y ~ ma + sa + lka + cb + ltb, temp, lambda = seq (0,0.1,0.001))

Prashanth
fuente