Уравнения для 2 переменных линейной регрессии

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

у = топор + б

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

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

z = Ax + By + C

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

3 ответа

Решение

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

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 |

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

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

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

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

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

Другие вопросы по тегам