Линейная регрессия

Задача линейной регрессии

Есть датасет, состоящий из nn записей. Каждая jj-я запись имеет pp факторов xj,1,xj,2,,xj,px_{j, \- 1}, x_{j, \- 2}, \dotsc, x_{j, \- p} и одно значение целевой переменной yjy_j.

Нужно составить такую линейную функцию y=aTx+b+εy = a^\T \cdot x + b + \varepsilon

Давайте для начала соберём все наши регрессоры (наблюдения и значения факторов для каждого наблюдения) в одну матрицу XX, добавив к ней единичный столбец для учёта свободного члена.

X=(1x1,1x1,2x1,3x1,p1x2,1x2,2x2,3x2,p1x3,1x3,2x3,3x3,p1x4,1x4,2x4,3x4,p1xn,1xn,2xn,3xn,p)X = \pmatrix{ 1 & x_{1, \- 1} & x_{1, \- 2} & x_{1, \- 3} & \cdots & x_{1, \- p} \\ 1 & x_{2, \- 1} & x_{2, \- 2} & x_{2, \- 3} & \cdots & x_{2, \- p} \\ 1 & x_{3, \- 1} & x_{3, \- 2} & x_{3, \- 3} & \cdots & x_{3, \- p} \\ 1 & x_{4, \- 1} & x_{4, \- 2} & x_{4, \- 3} & \cdots & x_{4, \- p} \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n, \- 1} & x_{n, \- 2} & x_{n, \- 3} & \cdots & x_{n, \- p} \\ }

Также соберём все значения целевой переменной в один вектор

y=(y1,y2,y3,,yp)Ty = (y_1, y_2, y_3, \dotsc, y_p)^\T

Задача линейной регрессии свелась к нахождению вектора коэффициентов a=(a0,a1,a2,,ap)Ta = (a_0, a_1, a_2, \dotsc, a_p)^\T, который обеспечивает минимальность остатка ε\varepsilon

y=Xa+εy = X \cdot a + \varepsilon

Давайте решим эту задачу. Минимальность остатка ε\varepsilon мы будем мерить с помощью функции потерь RSS — сумма квадратов остатков

RSS(ε)=j=1nεj2=εTε\RSS(\varepsilon) = \sum\limits_{j=1}^n \varepsilon_j^2 = \varepsilon^\T \cdot \varepsilon

Остаток у нас выражается через уравнение регрессии ε=yXa\varepsilon = y - X \cdot a

Нам нужно, чтобы функция потерь была минимальна, то есть мы решаем задачу оптимизации

arg minaRSS(ε)=arg mina (yXa)T(yXa)\argmin\limits_{a} \RSS(\varepsilon) = \argmin\limits_{a}~ (y - X\cdot a)^\T \cdot (y - X \cdot a)

Чтобы найти минимум функции RSS(ε)\RSS(\varepsilon), найдём градиент по ε\varepsilon и приравняем его к 0\0

RSS(ε)=0\nabla \RSS(\varepsilon) = \0

Раскроем скобки и приведём подобные слагаемые в выражении для RSS(ε)\RSS(\varepsilon)

(yXa)T(yXa)=yTy2aTXTy+aTXTXa(y - X\cdot a)^\T \cdot (y - X \cdot a) = y^\T \cdot y - 2 \cdot a^\T \cdot X^\T \cdot y + a^\T \cdot X^\T \cdot X \cdot a

Тогда RSS(ε)=2XTy+2XTXa=0\nabla \RSS(\varepsilon) = -2 \cdot X^\T \cdot y + 2 \cdot X^\T \cdot X \cdot a = \0. Мы получили систему уравнений XTXa=XTyX^\T \cdot X \cdot a = X^\T \cdot y. Решением этой системы является

a=(XTX)1XTya = \bigl( X^\T \cdot X \bigr)^{-1} \cdot X^T \cdot y

Чтобы убедиться в том, что это действительно минимум функции потерь, нам надо вычислить гессиан функции потерь. У нас HRSS(ε)=2XTX\hess \RSS(\varepsilon) = 2 \cdot X^\T \cdot X. Матрица XTXX^\T \cdot X положительно полуопределена, ведь для любого вектора vv имеет место неравенство vTXTXv=Xv0v^\T \cdot X^\T \cdot X \cdot v = \| X \cdot v \| \ge 0. А значит и гессиан положительно полуопределён, то есть найденная точка действительно минимум.

Давайте центрируем все признаки.

Тогда матрица XTXX^\T \cdot X с точностью до константы становится ковариационной матрицей факторов

1nXTX=(100000var(x1)cov(x1,x2)cov(x1,x3)cov(x1,xp)0cov(x2,x1)var(x2)cov(x2,x3)cov(x2,xp)0cov(x3,x1)cov(x3,x2)var(x3)cov(x3,xp)0cov(xp,x1)cov(xp,x2)cov(xp,x3)var(xp))\frac{1}{n} \cdot X^\T \cdot X = \pmatrix{ 1 & 0 & 0 & 0 & \cdots & 0 \\ 0 & \var(x_1) & \cov(x_1, x_2) & \cov(x_1, x_3) & \cdots & \cov(x_1, x_p) \\ 0 & \cov(x_2, x_1) & \var(x_2) & \cov(x_2, x_3) & \cdots & \cov(x_2, x_p) \\ 0 & \cov(x_3, x_1) & \cov(x_3, x_2) & \var(x_3) & \cdots & \cov(x_3, x_p) \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cov(x_p, x_1) & \cov(x_p, x_2) & \cov(x_p, x_3) & \cdots & \var(x_p) \\ }

А вектор XTyX^\T \cdot y с точностью до константы становится вектором ковариаций целевой переменной с факторами

1nXTy=(0, cov(y,x1), cov(y,x2), , cov(y,xp))T\frac{1}{n} \cdot X^\T \cdot y = \bigl( 0,~ \cov(y, x_1),~ \cov(y, x_2),~ \dotsc,~ \cov(y, x_p) \bigr)^\T