Уравнения для 2 переменных линейной регрессии - PullRequest
2 голосов
/ 20 января 2009

Мы используем язык программирования, в котором нет функции линейной регрессии. Мы уже реализовали линейное уравнение с одной переменной:

y = Axe + B

и просто вычислили коэффициенты A и B из данных, используя решение, подобное этому ответу переполнения стека .

Я знаю, что эта проблема геометрически усложняется при добавлении переменных, но для наших целей нам нужно добавить только еще одну:

z = Ax + By + C

Есть ли у кого-нибудь уравнения в замкнутой форме или код на любом языке, который может решить для A, B и C, заданный массив из x, y и z?

Ответы [ 3 ]

6 голосов
/ 20 января 2009

так что у вас есть три линейных уравнения

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

Что вы можете сделать, это переписать его как matriz

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

чтобы выработать [a b c ] выполните следующую матричную операцию

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

Формула для матрицы 3x3 может быть найдена здесь

2 голосов
/ 20 января 2009

Да, это простая линейная алгебраическая задача, если подумать, как Гил Странг . Вот письменное объяснение.

0 голосов
/ 20 января 2009

Можете ли вы использовать MatLab или вычисления должны выполняться внутри вашего программного обеспечения?

Инструкция MatLab по множественному регрессионному анализу .

Интеграция MatLab с C # .

...