Использование QR-разложения для решения наименьших квадратов в Matlab

Я использую Matlab для оценки регрессионной модели с обычными наименьшими квадратами (OLS).

Модель y = xB, где x очень разреженная матрица с размерностью 500000 x 2500, Я использую разложение QR:

[C,R] = qr(x,y,0)

а затем оценивая b с

b = R\C

Мой вопрос заключается в том, нужно ли мне беспокоиться о числовых ошибках здесь. Есть ли какая-то дополнительная итерация, которую мне нужно сделать? Должен ли я проверить номер условия R, или же R'R? Любое руководство будет высоко ценится.

1 ответ

Matlab рекомендуемый способ:

b = X\y;

Посетите http://www.mathworks.com/help/matlab/ref/mldivide.html и, в частности, раздел More About, чтобы узнать, как matlab обрабатывает различные случаи под капотом.

Если вы хотите использовать разреженность X, просто объявите X как разреженную, X = sparse(X)перед звонком \,

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