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?
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?
Réponses:
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 )
C'est best straight line
celle 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}) .
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.
et le vecteur projeté est donné par:
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])
could not find inv
?!
lm
est QR, il y a des raisons à cela, pouvez-vous expliquer pourquoi?
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,, 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, .
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").
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 .
George a déjà montré la méthode des équations normales dans sa réponse; on résout juste le ensemble d'équations linéaires
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).
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.
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 forme
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.
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 etest 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.
R^{-1} Q^T y
si A n'est pas carré? Est-ce que vous laissez tomber les lignes zéro dans R?
Le lien wiki: Méthodes d'estimation pour la régression linéaire fournit une liste assez complète de méthodes d'estimation, y compris MCO, et des contextes dans lesquels des méthodes d'estimation alternatives sont utilisées.
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.
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.
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.