Лекция 8: многомерная линейная регрессия

реклама
Занятие 8. Многомерная линейная регрессия
Краткое содержание
1. Оценка параметров регрессии
2. Теорема Гаусса-Маркова
3. Расчёт доверительных интервалов
4. Линеаризация нелинейной регрессии
Постановка задачи
Исходные данные
Точки в (k+1) – мерном
пространстве
(𝑦𝑖 , 𝑥𝑖1 , … , 𝑥𝑖𝑘 )
Система уравнений
(переопределённая):
𝛽1 𝑥11 + 𝛽2 𝑥12 + ⋯ + 𝛽𝑘 𝑥1𝑘 = 𝑦1
𝛽1 𝑥21 + 𝛽2 𝑥22 + ⋯ + 𝛽𝑘 𝑥2𝑘 = 𝑦2
…
𝛽1 𝑥𝑛1 + 𝛽2 𝑥𝑛2 + ⋯ + 𝛽𝑘 𝑥𝑛𝑘 = 𝑦𝑛
+
Аппроксимирующая функция
𝑦 = 𝛽0 + 𝛽1 𝑥𝑖1 + ⋯ + 𝛽𝑘 𝑥𝑖𝑘
𝛽 – параметры модели
Система в матричном виде:
𝑿𝜷 = 𝒚
𝑥11
𝑋= ⋮
𝑥𝑛1
⋯ 𝑥1𝑘
𝑦1
⋱
⋮ ;𝑦 = ⋮ ;
⋯ 𝑥𝑛𝑘
𝑦𝑛
𝛽1
𝛽= ⋮
𝛽𝑛
Некоторые свойства матриц
Умножение и транспонирование
След матрицы
След матрицы – сумма элементов её
главной диагонали
1. 𝐴 + 𝐵
2. 𝐴𝐵
3. 𝐴−1
⊤
⊤
⊤
=
= 𝐴⊤ + 𝐵⊤
tr 𝐴 =
𝑖
𝐵⊤ 𝐴⊤
= 𝐴⊤
−1
𝑎𝑖𝑖
1. tr 𝛼𝐴 + 𝛽𝐵 = 𝛼tr 𝐴 + 𝛽tr 𝐵
4. 𝐴𝐵 𝐶 = 𝐴(𝐵𝐶)
2. tr 𝐴𝐵 = tr 𝐵𝐴
5. 𝐴 𝐵 + 𝐶 = 𝐴𝐵 + 𝐴𝐶
3. tr 𝐴⊤ = tr 𝐴
6. 𝐴 + 𝐵 𝐶 = 𝐴𝐶 + 𝐵𝐶
4. tr 𝐴𝐵𝐶 = tr 𝐵𝐶𝐴 = tr(𝐶𝐴𝐵)
Метод наименьших квадратов
Поиск минимума
Сумма квадратов отклонений
𝜕𝑅𝑆𝑆
𝜕(𝑦 ⊤ 𝑋𝛽) 𝜕(𝛽⊤ 𝑋 ⊤ 𝑋𝛽)
= −2
+
=0
𝜕𝛽
𝜕𝛽
𝜕𝛽
𝜕𝑅𝑆𝑆
= −2𝑋 ⊤ 𝑦 + 2𝑋 ⊤ 𝑋𝛽 = 0
𝜕𝛽
𝑋 ⊤ 𝑋𝛽 = 𝑋 ⊤ 𝑦 ⇔ 𝛽 = 𝑋 ⊤ 𝑋 −1 𝑋 ⊤ 𝑦
𝑒𝑖2 = 𝑒 ⊤ 𝑒 =
𝑅𝑆𝑆 =
𝑖
= 𝑦 − 𝑋𝛽 ⊤ 𝑦 − 𝑋𝛽 =
= 𝑦 ⊤ 𝑦 − 2𝑦 ⊤ 𝑋𝛽 + 𝛽⊤ 𝑋 ⊤ 𝑋𝛽
Дифференцирование
𝜕(𝑦 ⊤ 𝑋𝛽)
𝜕𝛽𝑘
=
𝜕( 𝑖 𝑃𝑖 𝛽𝑖 )
𝜕𝛽𝑘
= 𝑃𝑘 ⇒
𝑛
𝛽 ⊤ 𝑋 ⊤ 𝑋𝛽 = 𝑋𝛽
⊤
𝜕(𝑦 ⊤ 𝑋𝛽)
𝜕𝛽
2
𝑥𝑖𝑗 𝛽𝑗
𝑖=1
𝑚
𝑥𝑖𝑘
𝑖=1
𝑗=1
= 𝑋 ⊤ 𝑦, где 𝑃𝑖 = 𝑦 ⊤ 𝑋
𝜕(𝛽 ⊤ 𝑋 ⊤ 𝑋𝛽)
⇒
=2
𝜕𝛽𝑘
𝑥𝑖𝑗 𝛽𝑗 = 2 𝑋𝛽
𝑗=1
⊤
2
𝑚
𝑋𝛽 =
𝑛
= 𝑦⊤𝑋
⊤𝑋 ⊤
= 2𝑋 ⊤ 𝑋𝛽
𝑛
𝑚
𝑥𝑖𝑘
𝑖=1
𝑖
𝑥𝑖𝑗 𝛽𝑗
𝑗=1
Метод наименьших квадратов: одномерный случай
𝑦1
𝑥1 1
𝑎𝑥1 + 𝑏 = 𝑦1
𝑎
…
⇔ … …
= … ⇔ 𝑋𝛽 = 𝑦
𝑏
𝑦𝑛
𝑥𝑛 1
𝑎𝑥𝑛 + 𝑏 = 𝑦𝑛
Т.к. матрица X – не квадратная, то записать 𝛽 = 𝑋 −1 𝑦 нельзя
Но Octave/MATLAB решит эту систему уравнений, если написать b=X\y
>> x = (0:0.1:5)’;
>> y = 2*x + 5 + randn(size(x));
>> X = [x ones(size(x))];
>> beta = X\y
beta =
2.0653
4.7701
>> close all;
>> plot(x,y,’bo’,’LineWidth’,2);
>> hold on;
>> yfunc = @(x)beta(1)*x+beta(2);
>> plot(x,yfunc(x),’k-’,’LineWidth’,2);
>> hold off;
>> print(gcf,’graph’,’-dpng’,’-r75’);
Задача: нахождение коэффициентов регрессии
Шаг 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;
Теорема Гаусса-Маркова
Пусть выполняются следующие условия:
1. Модель правильно специфицирована
2. 𝑟𝑎𝑛𝑔 𝑋 = 𝑚, где m – число коэффициентов регрессии
3. 𝐸 𝜀𝑖 = 0 (нулевое матожидание ошибок регрессии)
4. 𝐸 𝜀𝑖 𝜀𝑗 = 𝐸 𝜀𝑖 𝐸 𝜀𝑗 = 0 (независимость ошибок друг от друга)
5. 𝑉𝑎𝑟 𝜀𝑖 = 𝐸 𝜀𝑖 𝜀𝑖 = 𝜎 2 (гомоскедастичность ошибок регрессии)
Тогда оценки параметров регрессии методом наименьших
квадратов являются наилучшими в классе линейных несмещённых
оценок (англ. Best Linear Unbiased Estimator, BLUE).
Ковариационная матрица
Несмещённость оценок параметров регрессии
𝐸 𝛽 = 𝐸 𝑋 ⊤ 𝑋 −1 𝑋 ⊤ 𝑋𝐵 + 𝜀 = 𝐸 𝐵 + 𝑋 ⊤ 𝑋 −1 𝑋 ⊤ 𝐸 𝜀 = 𝐸[𝐵]
B – истинное значение параметров регрессии, 𝜀 – вектор ошибок
Ковариационная матрица
⊤
cov 𝛽, 𝛽 = 𝐸 𝛽 − 𝐵 𝛽 − 𝐵
= 𝐸 𝑋 ⊤ 𝑋 −1 𝑋 ⊤ 𝜀𝜀 ⊤ 𝑋 𝑋 ⊤ 𝑋
= 𝑋 ⊤ 𝑋 −1 𝑋 ⊤ 𝐸[𝜀𝜀 ⊤ ]𝑋 𝑋 ⊤ 𝑋 −1 = 𝜎 2 𝑋 ⊤ 𝑋 −1
−1
=
B – истинное значение параметров регрессии, 𝜀 – вектор ошибок
Вид ковариационной матрицы
cov 𝛽, 𝛽 =
Var[𝛽1 ]
cov(𝛽1 , 𝛽2 )
cov(𝛽1 , 𝛽2 )
Var[𝛽2 ]
⋮
⋮
cov(𝛽𝑚 , 𝛽1 ) cov(𝛽𝑚 , 𝛽2 )
⋯
⋯
cov(𝛽1 , 𝛽𝑚 )
cov(𝛽2 , 𝛽𝑚 )
⋮
Var[𝛽𝑚 ]
Доверительные
интервалы
𝑠𝛽2𝑖 = Var[𝛽]
Δ𝛽𝑖 = 𝑠𝛽𝑖 ⋅ 𝑡(𝛼, 𝑓)
t – двухсторонний квантиль tраспределения;
𝛼 – вероятность, f = n – m –
число степеней свободы
Оценка ошибки регрессии
Несмещённая оценка
ошибки регрессии
𝜎2
1
=
𝑛−𝑚
𝑒𝑖2
𝑖
Проекционная матрица
𝑦 = 𝐻𝑦; 𝐻 = 𝑋 𝑋 ⊤ 𝑋
⊤
𝑒 𝑒
=
𝑛−𝑚
−1 𝑋 ⊤
Свойства
1. 𝐻 ⊤ = 𝐻 (симметричность)
2. 𝐻 2 = 𝐻 (идемпотентность)
3. 𝐻𝑋 = 𝑋
𝑒 =𝑦−𝑦
n – число точек, m – число
коэффициентов регрессии
Связь погрешности с проекционной матрицей
𝑒 = 𝑦 − 𝑦 = 𝐼 − 𝐻 𝑦 = 𝑀 𝑋𝐵 + 𝜀 = 𝑀𝜀; 𝑅𝑆𝑆 = 𝑒 ⊤ 𝑒 = 𝑀𝜀 ⊤ 𝑀𝜀 = 𝜀 ⊤ 𝑀𝜀
𝑒 ⊤ 𝑒 = tr 𝑒 ⊤ 𝑒 = tr 𝜀 ⊤ 𝑀𝜀 = tr 𝑀𝜀𝜀 ⊤ ⇒ 𝐸 𝑅𝑆𝑆 = 𝑡𝑟 𝑀𝐸 𝜀𝜀 ⊤ = 𝜎 2 tr(𝑀)
Вычисление следа проекционной матрицы
𝑡𝑟 𝑀 = 𝑡𝑟 𝐼𝑛 − 𝑡𝑟 𝑋 𝑋 ⊤ 𝑋
−1 𝑋 ⊤
= 𝑛 − 𝑡𝑟 𝑋 ⊤ 𝑋 𝑋 ⊤ 𝑋
−1
=𝑛−𝑚
Задача: доверительные интервалы значений 𝜷
Шаг 1. Ошибка регрессии
>> res = z–(b(1)*x+b(2)*y+b(3));
>> f = numel(res) - numel(b);
>> sigma2 = res'*res/f
sigma2 = 0.808416630656864
Шаг 2. Ковариационная матрица
>> format short;
>> C = sigma2 * inv(X'*X)
C =
0.0204893 -0.0013650 -0.0096530
-0.0013650 0.0188808 -0.0085331
-0.0096530 -0.0085331 0.0106459
Шаг 3. Ошибки и доверительные
интервалы коэффициентов
>> sb = sqrt(diag(C));disp(sb');
0.14314
0.13741
0.10318
>> db = sb * tinv(1-0.05/2,f);
>> disp(db');
0.28124
0.26997
0.20272
Шаг 4. Корреляционная матрица
>> sbm = [sb sb sb];
>> r = C./(sbm.*sbm')
r =
1.000000 -0.069400 -0.653593
-0.069400 1.000000 -0.601874
-0.653593 -0.601874 1.000000
Внимание! 𝒓 𝜷𝒊 , 𝜷𝒋 ≠ 𝟎
Оставляйте «запасные» знаки при
округлении 𝜷!
Шаг 4. R2 и F-критерий
>> TSS = sum((z-mean(z)).^2)
TSS = 1497.7
>> RSS = res'*res;
RSS = 401.78
>> R2 = 1 - RSS/TSS;
R2 = 0.73173
>> F = R2/(1-R2)*f/2
F = 677.80
>> finv(0.95,2,f)
ans = 3.0139
Линеаризация многомерной нелинейной регрессии
1. Нелинейная зависимость
𝑐
𝑐𝑝 𝑇 = 𝑎 + 𝑏𝑇 +
𝑇
3. Система уравнений
𝑋𝛽 = 𝑦
1
𝑋= ⋮
1
𝑇1
⋱
𝑇𝑛
𝑎
1/𝑇1
⋮
;𝛽 = 𝑏
𝑐
1/𝑇𝑛
2. Линеаризация
𝑐𝑝 𝑇 = 𝑎𝑥1 + 𝑏𝑥2 + 𝑐𝑥3 ;
𝑥1 = 1; 𝑥2 = 𝑇; 𝑥3 = 𝑇 −1
Доверительный интервал и интервал предсказания
Доверительный интервал 𝒚
(confidence interval)
𝑦 ± 𝜎𝑡𝛼,𝑛−𝑚 𝑥 ⊤ 𝑋 ⊤ 𝑋 −1 𝑥
Исходная функция с
вероятностью 95% проходит
через этот интервал
n=20
Интервал предсказания
(prediction interval)
𝑦 ± 𝜎𝑡𝛼,𝑛−𝑚 1 + 𝑥 ⊤ 𝑋 ⊤ 𝑋 −1 𝑥
Новая точка попадёт в этот
интервал с вероятностью 95%
n=200
Скачать