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 ?
myridge
ridge-regression
samarasa
la source
la source
Réponses:
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 λ λ λ
la source
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))
la source