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?

Était-ce utile?

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 .

Intégration de MatLab avec C # .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top