Comprendre les résultats de la régression des crêtes

9

Je suis nouveau dans la régression des crêtes. Lorsque j'ai appliqué une régression de crête linéaire, j'ai obtenu les résultats suivants:

>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 

Des questions:

  • Est-il correct d'obtenir zéro pour GCV?
  • Qu'est-ce que ça veut dire exactement?
  • Y a-t-il un problème avec mon modèle?
  • Comment puis-je trouver la valeur de ?R2myridge
samarasa
la source
Changez lamda en lambda. Je pense que la séquence que vous avez spécifiée a été ignorée.

Réponses:

20

Vous pourriez être mieux avec le package pénalisé ou le package glmnet ; les deux implémentent le lasso ou le filet élastique, combinant ainsi les propriétés du lasso (sélection d'entités) et la régression de crête (gestion des variables colinéaires). pénalisé fait aussi crête. Ces deux packages sont beaucoup plus complets que lm.ridge()le package MASS pour de telles choses.

Quoi qu'il en soit, implique une pénalité nulle, donc les estimations des moindres carrés sont optimales dans le sens où elles avaient le score GCV (validation croisée généralisée) le plus bas. Cependant, vous n'avez peut-être pas accordé une pénalité suffisamment importante; en d'autres termes, les estimations des moindres carrés étaient optimales pour le petit ensemble de valeurs vous avez examinées. Tracez le chemin de la crête (valeurs des coefficients en fonction de et voyez si les traces se sont stabilisées ou non. Sinon, augmentez la plage des valeurs de évaluées.λ=0λλλ

Gavin Simpson
la source
5

La raison pour laquelle vous obtenez un GCV 0 est que vous avez utilisé:

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

au lieu de

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

Prashanth
la source