Занятие 7. Многомерная линейная регрессия Краткое содержание 1. Оценка параметров регрессии 2. Теорема Гаусса-Маркова 3.Расчёт доверительных интервалов 4. Линеаризация нелинейной регрессии
Постановка задачи +
Некоторые свойства матриц Умножение и транспонирование След матрицы След матрицы – сумма элементов её главной диагонали
Метод наименьших квадратов
Задача: нахождение коэффициентов регрессии Шаг 1. Создать выборку точек x = rand(500, 1); y = rand(500, 1); z = 3*x+4*y+5+randn(size(x)); plot3(x,y,z,bo); Шаг 1. Создать выборку точек x = rand(500, 1); y = rand(500, 1); z = 3*x+4*y+5+randn(size(x)); plot3(x,y,z,bo); Шаг 2. Записать и решить систему уравнений X = [x y ones(size(x))]; b = (X'*X)\(X'*z); format long; disp(b); xv = 0:0.1:1; [Xm,Ym]=meshgrid(xv,xv); Zm = b(1)*Xm + b(2)*Ym + b(3); hold on; mesh(Xm,Ym,Zm); hold off; Шаг 2. Записать и решить систему уравнений X = [x y ones(size(x))]; b = (X'*X)\(X'*z); format long; disp(b); xv = 0:0.1:1; [Xm,Ym]=meshgrid(xv,xv); Zm = b(1)*Xm + b(2)*Ym + b(3); hold on; mesh(Xm,Ym,Zm); hold off;
Теорема Гаусса-Маркова
Ковариационная матрица
Оценка ошибки регрессии Связь погрешности с проекционной матрицей Вычисление следа проекционной матрицы
Шаг 1. Ошибка регрессии >> res = z–(b(1)*x+b(2)*y+b(3)); >> f = numel(res) - numel(b); >> sigma2 = res'*res/f sigma2 = Шаг 1. Ошибка регрессии >> res = z–(b(1)*x+b(2)*y+b(3)); >> f = numel(res) - numel(b); >> sigma2 = res'*res/f sigma2 = Шаг 2. Ковариационная матрица >> format short; >> C = sigma2 * inv(X'*X) C = Шаг 2. Ковариационная матрица >> format short; >> C = sigma2 * inv(X'*X) C = Шаг 3. Ошибки и доверительные интервалы коэффициентов >> sb = sqrt(diag(C));disp(sb'); >> db = sb * tinv(1-0.05/2,f); >> disp(db'); Шаг 3. Ошибки и доверительные интервалы коэффициентов >> sb = sqrt(diag(C));disp(sb'); >> db = sb * tinv(1-0.05/2,f); >> disp(db'); Шаг 4. R 2 и F-критерий >> TSS = sum((z-mean(z)).^2) TSS = >> RSS = res'*res; RSS = >> R2 = 1 - RSS/TSS; R2 = >> F = R2/(1-R2)*f/2 F = >> finv(0.95,2,f) ans = Шаг 4. R 2 и F-критерий >> TSS = sum((z-mean(z)).^2) TSS = >> RSS = res'*res; RSS = >> R2 = 1 - RSS/TSS; R2 = >> F = R2/(1-R2)*f/2 F = >> finv(0.95,2,f) ans =
Линеаризация многомерной нелинейной регрессии