Soit A la matrice des variables indépendantes et B la matrice n × 1 correspondante des valeurs dépendantes. Dans la régression d'arête, on définit un paramètre λ de sorte que: β = ( A T A + X I ) - 1 A T B . Soit maintenant [usv] = svd (A) et d i = i t h l' entrée diagonale de 's'. on définit les degrés de liberté (df) = ∑ n i = 1 ( d i ) 2 . La régression de crête réduit les coefficients des composantes de faible variance et donc le paramètreλcontrôle les degrés de liberté, donc pourλ=0, ce qui est le cas de la régression normale, df = n, et donc toutes les variables indépendantes seront prises en compte. Le problème auquel je suis confronté est de trouver la valeur deλétant donné 'df' et la matrice 's'. J'ai essayé de réorganiser l'équation ci-dessus mais je n'obtenais pas de solution sous forme fermée. Veuillez fournir des conseils utiles.
11
Réponses:
Un algorithme Newton-Raphson / Fisher-scoring / Taylor-series serait adapté à cela.
Vous avez l'équation à résoudre pour h ( λ ) = p ∑ i = 1 d 2 iλ
avec dérivée
∂h
la source
Voici le petit code Matlab basé sur la formule prouvée par probabilitéislogic:
la source
while ( abs(diff)>threshold )
.while( abs(diff) > threshold )