Pregunta

Estamos utilizando un lenguaje de programación que no tiene una función de regresión lineal. Ya hemos implementado una ecuación lineal variable única:

  

y = Ax + B

y simplemente calculé los coeficientes A y B a partir de los datos utilizando una solución similar a esta respuesta de desbordamiento de pila .

Sé que este problema se vuelve geométricamente más difícil a medida que se agregan variables, pero para nuestros propósitos, solo necesitamos agregar uno más:

  

z = Ax + By + C

¿Alguien tiene las ecuaciones de forma cerrada o el código en algún lenguaje que pueda resolver para A, B y C dada una matriz de x, y y z?

¿Fue útil?

Solución

para que tenga tres ecuaciones lineales

k = aX1 + bY1 + cZ1
k = aX2 + bY2 + cZ2
k = aX3 + bY3 + cZ3

Lo que puedes hacer es reescribirlo como matriz

| x1 y1 z1 | | a |   | k |
| x2 y2 z2 | | b | = | k |
| x3 y3 y3 | | c |   | k |

para resolver [a b c] realice la siguiente operación de matriz

| a |              | x1 y1 z1 |     | k |
| b | =  inverse(  | x2 y2 z2 | )   | k |
| c |              | x3 y3 y3 |     | k |

La fórmula para una matriz inversa de 3x3 se puede encontrar aquí

Otros consejos

Sí, es un problema de álgebra lineal fácil si lo piensa de la manera Gil Strang lo hace. Aquí hay una explicación por escrito.

¿Puede usar MatLab o el cálculo tiene que ocurrir dentro de su software?

Instrucciones de MatLab en análisis de regresión múltiple .

Integrando MatLab con C # .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top