Я работаю над алгоритмом для выполнения линейной регрессии для одной или нескольких независимых переменных.
то есть: (если у меня есть m
значения реального мира и в случае двух независимых переменных a
и b
)
C + D*a1 + E* b1 = y1
C + D*a2 + E* b2 = y2
...
C + D*am + E* bm = ym
Я хотел бы использовать решение наименьших квадратов, чтобы найти наиболее подходящую прямую линию.
Я буду использовать матричные обозначения, поэтому
где Beta — это вектор [C, D, E], где эти значения будут наиболее подходящими линиями.
Вопрос Как лучше всего решить эту формулу? Должен ли я вычислять инверсию
или я должен использовать факторизацию/декомпозицию матрицы LU. Какова производительность каждого из них при большом объеме данных (т.е. большое значение m
может быть порядка 10 ^ 8...)
ИЗМЕНИТЬ
Если ответ заключался в использовании разложения Холецкого или разложения QR, есть ли какие-либо подсказки реализации/простые библиотеки для использования. Пишу на C/C++.