Quel algorithme est utilisé dans la régression linéaire?


42

J'entends généralement parler de "moindres carrés ordinaires". Est-ce l'algorithme le plus largement utilisé pour la régression linéaire? Y a-t-il des raisons d'en utiliser un autre?


@hxd, à l'exception de toute structure spéciale dans la matrice de conception, ce sont tous des algorithmes , ne différant que par le facteur constant. L’approche décompositive est une bonne habitude héritée de la tradition de l’algèbre linéaire numérique. O(mn2)
JM n'est pas un statisticien le

@hxd, et c'est pourquoi ma réponse a été conçue pour être une présentation des algorithmes impliqués. Si vous avez des questions qui ne sont pas couvertes par ce fil, envisagez de poser une nouvelle question.
JM n'est pas un statisticien le

Réponses:


32

En ce qui concerne la question dans le titre, quel est l'algorithme utilisé:

Dans une perspective d'algèbre linéaire, l'algorithme de régression linéaire est le moyen de résoudre un système linéaire avec plus d'équations que d'inconnues. Dans la plupart des cas, il n'y a pas de solution à ce problème. Et c’est parce que le vecteur n’appartient pas à l’espace colonne de , .b A C ( A )Ax=bbAC(A)

C'est best straight linecelle qui rend l'erreur globale aussi petite que nécessaire. Et il est commode de penser aussi petit que soit la longueur au carré, , car elle est non négative et elle n’est égale à 0 que lorsque b \ in C (\ mathbf {A}) .e=Axbe2bC(A)

En projetant (orthogonalement) le vecteur au point le plus proche dans l'espace des colonnes de donne le vecteur qui résout le système (ses composants sont situés sur la meilleure ligne droite) avec le minimum d'erreur.bAb

ATAx^=ATbx^=(ATA)1ATb

et le vecteur projeté est donné par:b

b=Ax^=A(ATA)1ATb

Peut-être que la méthode des moindres carrés n'est pas exclusivement utilisée car elle squaring compense excessivement les valeurs aberrantes.

Laissez-moi vous donner un exemple simple dans R, qui résout le problème de régression en utilisant cet algorithme:

library(fBasics)

reg.data <- read.table(textConnection("
   b      x
  12      0
  10      1
   8      2
  11      3
   6      4
   7      5
   2      6
   3      7
   3      8 "), header = T)

attach(reg.data)

A <- model.matrix(b~x)

# intercept and slope
inv(t(A) %*% A) %*% t(A) %*% b

# fitted values - the projected vector b in the C(A)
A %*% inv(t(A) %*%A ) %*% t(A) %*% b

# The projection is easier if the orthogonal matrix Q is used, 
# because t(Q)%*%Q = I
Q <- qr.Q(qr(A))
R <- qr.R(qr(A))

# intercept and slope 
best.line <- inv(R) %*% t(Q) %*% b

# fitted values 
Q %*% t(Q) %*% b

plot(x,b,pch=16)
abline(best.line[1],best.line[2])

Je me trompe could not find inv?!
hhh


5
Existe-t-il une raison pour utiliser inv de fBasics alors que c'est simplement un synonyme de résoudre? Ne serait-il pas préférable que la réponse ne nécessite pas de dépendance à l'égard de packages externes si cela est inutile?
Dason

@ George J'aime la réponse claire. Cependant, je pense que la question initiale posait des algorithmes, et QR n'en est qu'un. Que diriez-vous de la décomposition LU, SVD, Cholesky? En outre, dans R, la méthode utilisée lmest QR, il y a des raisons à cela, pouvez-vous expliquer pourquoi?
Haitao Du

@ GeorgeDontas Notez qu'il se peut que ne soit pas inversible. Comme expliqué dans cette réponse , une solution consiste à supprimer de colonnes qui sont des combinaisons linéaires d’autres colonnes. ATAA
Oren Milman

70

Pour répondre à la lettre de la question, "les moindres carrés ordinaires" n'est pas un algorithme; c'est plutôt un type de problème en algèbre linéaire de calcul, dont la régression linéaire en est un exemple. On a généralement des données et une fonction de tentative ("modèle") pour ajuster les données, de la forme . Les sont appelées "fonctions de base" et peuvent être des moniales aux fonctions trigonométriques (par exemple, , ) et des fonctions exponentielles ( ). Le terme "linéaire" dans "régression linéaire" ne désigne pas ici les fonctions de base,{(x1,y1),,(xm,ym)}f(x)=c1f1(x)++cnfn(x)fj(x)xjsin(jx)cos(jx)exp(jx)cj, en ce que le fait de prendre la dérivée partielle du modèle par rapport à l’un des vous donne le facteur multipliant ; c'est-à-dire, .cjcjfj(x)

On a maintenant une matrice rectangulaire ("matrice de conception") qui a (généralement) plus de lignes que de colonnes, et chaque entrée est de la forme , étant l’index de la ligne et étant le index de colonne. OLS est maintenant la tâche de trouver le vecteur qui minimise la quantité (en notation matricielle, ; ici, est généralement appelé le "vecteur de réponse").m×nAfj(xi)ijc=(c1cn)j=1m(yjf(xj))2Acy2y=(y1ym)

Il existe au moins trois méthodes utilisées dans le calcul des solutions des moindres carrés: les équations normales, la décomposition QR et la décomposition en valeurs singulières. En bref, ce sont des moyens de transformer la matrice en un produit de matrices faciles à manipuler pour résoudre le vecteur .Ac

George a déjà montré la méthode des équations normales dans sa réponse; on résout juste le ensemble d'équations linéairesn×n

AAc=Ay

pour . Etant donné que la matrice est symétrique (positive) (semi) définie, la méthode habituelle utilisée pour cela est la décomposition de Cholesky, ce qui utilise sous la forme , avec une matrice triangulaire inférieure. Le problème avec cette approche, malgré l'avantage de pouvoir compresser les matrice de conception dans un (généralement) beaucoup plus petites matrice, est que cette opération est sujette à une perte de chiffres significatifs (ce qui a quelque chose à faire avec le "numéro de condition" de la matrice de conception).cAAAAGGGm×nn×n

Une méthode légèrement meilleure est la décomposition QR, qui fonctionne directement avec la matrice de conception. Il considère comme , où est une matrice orthogonale (multiplier une telle matrice avec sa transposée donne une matrice d'identité) et est le triangle supérieur. est ensuite calculé comme . Pour des raisons que je n'entrerai pas dans les détails (il suffit de voir n'importe quel texte d'algèbre linéaire numérique décent, comme celui-ci ), cela a de meilleures propriétés numériques que la méthode des équations normales.AA=QRQRcR1Qy

Une variante de l'utilisation de la décomposition QR est la méthode des équations semi-formelles . En bref, si on a la décomposition , le système linéaire à résoudre prend la formeA=QR

RRc=Ay

Effectivement, on utilise la décomposition QR pour former le triangle de Cholesky de dans cette approche. Ceci est utile dans le cas où est clairsemé et que le stockage explicite et / ou la formation de (ou une version factorisée de celui-ci) sont indésirables ou peu pratiques.AAAQ

Enfin, la méthode de décomposition en valeurs singulières (SVD) est la manière la plus chère, mais la plus sûre, de résoudre les MLS. Cette fois, est factorisé comme , où et sont tous deux orthogonaux etAA=UΣVUVΣest une matrice diagonale, dont les entrées diagonales sont appelées "valeurs singulières". La puissance de cette décomposition réside dans la capacité de diagnostic que vous attribuent les valeurs singulières, en ce sens que si vous voyez une ou plusieurs valeurs singulières minuscules, il est probable que vous ayez choisi un ensemble de base non entièrement indépendant, nécessitant ainsi une reformulation de votre modèle. (Le "nombre de conditions" mentionné précédemment est en fait lié au rapport de la plus grande valeur singulière à la plus petite; le rapport devient bien sûr énorme (et la matrice est donc mal conditionnée) si la plus petite valeur singulière est "minuscule" .)

Ceci est simplement une esquisse de ces trois algorithmes; Tout bon livre sur les statistiques de calcul et l'algèbre linéaire numérique devrait pouvoir vous donner des détails plus pertinents.


3
Belle explication!
Mike Spivey

Comment calculez-vous R^{-1} Q^T ysi A n'est pas carré? Est-ce que vous laissez tomber les lignes zéro dans R?
bhan

1
@bhan, je suppose la variante "économie" (ou "mince") de la décomposition QR, où est carré et a les mêmes dimensions que la matrice de conception. Quelque chose à faire: recherchez la différence entre "QR complet" et "QR mince". RQ
JM n'est pas statisticien le

@JM des recommandations sur "un bon livre sur les statistiques de calcul et l'algèbre linéaire numérique"? vraiment envie d'en savoir plus.
Haitao Du

1
@hxd, de mémoire de tête: Monahan pour les statistiques de calcul et Golub / van Loan pour l’algèbre linéaire numérique.
JM n'est pas un statisticien


4

Il est facile de confondre les définitions et la terminologie. Les deux termes sont utilisés, parfois de manière interchangeable. Une recherche rapide sur Wikipedia devrait aider:

Les moindres carrés ordinaires (MCO) sont une méthode utilisée pour ajuster les modèles de régression linéaire. En raison de la cohérence et de l'efficacité démontrables (sous hypothèses supplémentaires) de la méthode MCO, c'est l'approche dominante. Voir les articles pour d'autres pistes.


C'est pour ça que je considère l'OLS comme un "algorithme" utilisé dans la régression linéaire ...
Belmont

3
Les moindres carrés ordinaires est un estimateur. Il existe divers algorithmes pour calculer l'estimation: on utilise généralement une sorte de décomposition matricielle orthogonale, telle que QR. Voir en.wikipedia.org/wiki/…
Simon Byrne

4

J'ai tendance à penser que les «moindres carrés» sont un critère pour définir la droite de régression la mieux ajustée (c'est-à-dire celle qui fait la somme des «résidus au carré» du moins) et de «l'algorithme» dans ce contexte comme l'ensemble des étapes utilisées. déterminer les coefficients de régression qui satisfont à ce critère. Cette distinction suggère qu'il est possible d'avoir différents algorithmes qui satisferaient le même critère.

Je serais curieux de savoir si les autres font cette distinction et quelle terminologie ils utilisent.


Par algorithme, j'entends approximativement l'implémentation logicielle utilisée pour ajuster une ligne afin de modéliser la moyenne d'une distribution.
Belmont

3

Un vieux livre, mais je me tourne souvent vers lui.

Lawson, CL et Hanson, RJ Résoudre les problèmes des moindres carrés , Prentice-Hall, 1974.

Il contient une discussion détaillée et très lisible de certains des algorithmes mentionnés dans les réponses précédentes. Vous voudrez peut-être regarder.


1
Si vous lisez ce vieux livre, vous devriez également vous pencher sur Méthodes numériques pour les problèmes de moindres carrés d' Åke Björck , qui ne contient pas de matière non traitée dans Lawson / Hanson. Les routines incluses dans le livre Lawson / Hanson sont disponibles auprès de Netlib .
JM n'est pas un statisticien
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.