Equations pour la régression linéaire à 2 variables
-
19-08-2019 - |
Question
Nous utilisons un langage de programmation dépourvu de fonction de régression linéaire. Nous avons déjà implémenté une équation linéaire à une variable:
y = Axe + B
et ont simplement calculé les coefficients A et B à partir des données en utilisant une solution similaire à cette réponse au débordement de pile .
Je sais que ce problème est géométriquement plus complexe à mesure que des variables sont ajoutées, mais pour ce qui nous concerne, nous n'avons besoin que d'en ajouter un de plus:
z = Axe + By + C
Quelqu'un a-t-il l'équation sous forme fermée ou un code dans n'importe quelle langue pouvant résoudre les problèmes de A, B et C, à l'aide d'un tableau de x, y et z?
La solution
donc vous avez trois équations linéaires
k = aX1 + bY1 + cZ1
k = aX2 + bY2 + cZ2
k = aX3 + bY3 + cZ3
Ce que vous pouvez faire est de le réécrire en tant que matriz
| x1 y1 z1 | | a | | k |
| x2 y2 z2 | | b | = | k |
| x3 y3 y3 | | c | | k |
pour travailler sur [a b c]
effectuez l'opération de matrice suivante
| a | | x1 y1 z1 | | k |
| b | = inverse( | x2 y2 z2 | ) | k |
| c | | x3 y3 y3 | | k |
La formule pour une matrice inverse 3x3 est disponible ici
Autres conseils
Oui, c’est un problème d’algèbre linéaire facile si vous y réfléchissez comme Gil Strang le fait. Voici une explication écrite.
Pouvez-vous utiliser MatLab ou le calcul doit-il être effectué dans votre logiciel?
Instructions MatLab sur analyse de régression multiple .