J'ai lu que la régression de crête pourrait être obtenue en ajoutant simplement des lignes de données à la matrice de données d'origine, où chaque ligne est construite en utilisant 0 pour les variables dépendantes et la racine carrée de ou zéro pour les variables indépendantes. Une ligne supplémentaire est ensuite ajoutée pour chaque variable indépendante.
Je me demandais s'il était possible d'en tirer une preuve pour tous les cas, y compris pour la régression logistique ou d'autres GLM.
logistic
generalized-linear-model
ridge-regression
Flocon de neige
la source
la source
Réponses:
La régression de crête minimise .∑ni = 1( yje- xTjeβ)2+ λ ∑pj = 1β2j
(Souvent, une constante est requise, mais pas rétrécie. Dans ce cas, elle est incluse dans le et les prédicteurs - mais si vous ne voulez pas la réduire, vous n'avez pas de ligne correspondante pour la pseudo-observation. Ou si vous ne voulez réduire, vous faire une ligne pour elle. Je vais l' écrire comme si elle ne compte pas dans le p , et non rétréci, comme il est le cas le plus compliqué. l'autre cas est un changement trivial de cette situation . )β p
Nous pouvons écrire le deuxième terme sous la forme de pseudo-observations si nous pouvons écrire chaque "y" et chacun des vecteurs ( p + 1 ) correspondants "x" de telle sorte quep ( p + 1 )
Mais par inspection, il suffit de laisser , soit x n + j , j = √yn + j= 0 et laissez tous les autresx n + j , k =0(y comprisx n + j , 0 =0typiquement).Xn + j , j= λ--√ Xn + j , k= 0 Xn + j , 0= 0
alors
Cela fonctionne pour la régression linéaire. Cela ne fonctionne pas pour la régression logistique, car la régression logistique ordinaire ne minimise pas la somme des résidus au carré.
[La régression de crête n'est pas la seule chose qui peut être faite via de telles astuces de pseudo-observation - elles surviennent dans un certain nombre d'autres contextes]
la source
Il n'est en effet pas difficile de généraliser cette recette aux GLM, car les GLM sont généralement adaptés à l'aide des moindres carrés itérativement repondérés . Par conséquent, à l'intérieur de chaque itération, on peut substituer l'étape des moindres carrés pondérés régulière avec une étape des moindres carrés pondérés pénalisée par une crête pour obtenir un GLM pénalisé par une crête. En fait, en combinaison avec des pénalités de crête adaptatives, cette recette est utilisée pour ajuster les GLM pénalisés L0 (c'est-à-dire le meilleur sous-ensemble, c'est-à-dire les GLM où le nombre total de coefficients non nuls est pénalisé). Ceci a été implémenté par exemple dans le paquet l0ara , voir cet article et celui-ci pour plus de détails.
Il convient également de noter que le moyen le plus rapide de résoudre une régression de crête régulière utilise
dans le cas où
n>=p
, ou en utilisantquand
p>n
et pour un modèle sans interception.C'est plus rapide que d'utiliser la recette d'augmentation de ligne , c'est-à-dire de faire
S'il vous arrivait d'avoir besoin de contraintes de non négativité sur vos coefficients ajustés, alors vous pouvez simplement faire
ce qui donne ensuite un résultat légèrement plus précis que
(et à proprement parler seule la solution
nnls(A=crossprod(X)+diag(lambdas), b=crossprod(X,Y))$x
est alors la bonne).Je n'ai pas encore compris comment le cas contraint à la non-négativité pourrait être encore optimisé pour le
p > n
cas - faites-moi savoir si quelqu'un pourrait savoir comment faire cela ... [lmridge_nnls_largep = function (X, Y, lambda) t(X) %*% nnls(A=tcrossprod(X)+lambda*diag(nrow(X)), b=Y)$x
ne fonctionne pas]la source