[1] 100 10 5 1
Линейные модели…
Кафедра Зоологии беспозвоночных, СПбГУ
В популяции некоторого организма в момент времени \(t_1\) представлено четыре возрастные группы:
| Возрастная группа | Количество особей |
|---|---|
| 0+ | 100 |
| 1+ | 10 |
| 2+ | 5 |
| 3+ | 1 |
Какова будет численность возрастных групп в момент времени \(t_2\) если известно, что
| Переход из младшей группы в старшую | Вероятность выживания |
|---|---|
| 0+ - 1+ | 0.1 |
| 1+ - 2+ | 0.5 |
| 2+ - 3+ | 0.3 |
| Возрастная группа | Количество особей в момент времени \(t_2\) |
|---|---|
| 0+ | \(5 \cdot 10 + 1 \cdot 20 = 70\) |
| 1+ | \(100 \cdot 0.1 = 10\) |
| 2+ | \(10 \cdot 0.5 = 5\) |
| 3+ | \(5 \cdot 0.3 = 1.5\) |
Демографический вектор в момент времени \(t_1\)
Демографическая матрица Лесли
\[ \begin{pmatrix} F_1 & F_2 & F_3 & F_4 \\ P_{0+ -1+}& 0 & 0 & 0 \\ 0 & P_{1+-2+} & 0 & 0 \\ 0 & 0 & P_{2+-3+} & 0 \\ \end{pmatrix} \]
\[\begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1c} \\ a_{21} & a_{22} & \cdots & a_{2c} \\ \vdots & \vdots & \ddots & \vdots \\ a_{r1} & a_{r2} & \cdots & a_{rc} \end{pmatrix} \]
Размер (порядок) матрицы \(r \times c\)
Вектор-строка (row matrix)
\[ \textbf {A} = \begin{pmatrix} 1 & 2 & 3 \end{pmatrix} \]
Вектор-столбец (column matrix)
\[ \textbf {B} = \begin{pmatrix} 1 \\ 4 \\ 7 \\ 10 \end{pmatrix} \]
Прямоугольные матрицы (rectangular matrices)
\[ \textbf {C} = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \\ 10 & 11 & 12 \end{pmatrix} \]
\[ \textbf {D} = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix} \]
В таком виде обычно представляются исходные данные
Это наиболее “операбельные” матрицы
\[ \textbf {E} = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{pmatrix} \]
Диагональные матрицы (diagonal matrix)
\[ \textbf {F} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 5 & 0 & 0 \\ 0 & 0 & 9 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} \]
Единичная матрица (identity matrix)
\[ \textbf {I} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} \]
Единичная матрица (обозначение \(\textbf{I}\)) занимают особое место в матричной алгебре.
Она выполняет ту же роль, которую выполняет единица в обычной алгебре.
Для квадратных матриц могут быть найдены (но не обязательно существуют) некоторые важные для матричной алгебры показатели: определитель, инверсия, собственные значения и собственные векторы
Создайте с помощью R следующую матрицу
\[ \begin{pmatrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 9 & 10 & 11 & 12 \\ \end{pmatrix} \]
Создайте с помощью R единичную матрицу
\[ \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} \]
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
Транспонированная матрица \(\textbf{A}\)
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[,1] [,2] [,3]
[1,] 5 9 13
[2,] 6 10 14
[3,] 7 11 15
[4,] 8 12 16
[,1] [,2] [,3]
[1,] 2 10 18
[2,] 4 12 20
[3,] 6 14 22
[4,] 8 16 24
Но! Нельзя складывать матрицы разных размеров
Error in `A + B`:
! неподобные многомерные матрицы
Предположим, что мы подсчитывали двумя разными методами крупных и мелких животных трех видов в одних и тех же пробах
Крупные животные
Sp1 Sp2 Sp3
Sample1 11 7 12
Sample2 6 11 10
Sample3 11 14 10
Sample4 11 6 12
Sample5 12 14 9
Мелкие животные
Sp1 Sp2 Sp3
Sample1 55 49 63
Sample2 51 41 58
Sample3 43 54 51
Sample4 49 47 49
Sample5 48 48 48
Общее обилие
Sp1 Sp2 Sp3
Sample1 66 56 75
Sample2 57 52 68
Sample3 54 68 61
Sample4 60 53 61
Sample5 60 62 57
Простое умножение на число
[,1] [,2] [,3]
[1,] 4 20 36
[2,] 8 24 40
[3,] 12 28 44
[4,] 16 32 48
Умножение на матрицы на вектор
Простое умножение матрицы на вектор возможно только если число элементов в векторе равно числу строк в матрице
Все элементы первой строки матрицы умножаются на первый элемент вектора, все элементы второй строки на второй элемент вектора и т.д.
Допустим, учет организмов в части описаний проходил не на всей выборке, а лишь в ее части.
Это уже настоящая матричная операция
Допустимо только для векторов одинаковой размерности
\[ \textbf{a} \bullet \textbf{b} = \begin{pmatrix} a_1 \\ a_2 \\ a_3 \\ a_4 \\ a_5 \\ a_6 \\ a_7 \end{pmatrix} \times \begin{pmatrix} b_1 & b_2 & b_3 & b_4 & b_5 & b_6 & b_7 \end{pmatrix} = a_1 \cdot b_1 + a_2 \cdot b_2 + \ldots + a_7 \cdot b_7 = x \]
Результат этой операции - число (скаляр)
Сколько особей родится в популяции, если мы знаем репродуктивные характеристики всех возрастных групп?
\[ \begin{pmatrix} N_1 \\ N_2 \\ N_3 \\ N_4 \\ N_5 \\ N_6 \\ N_7 \end{pmatrix} \times \begin{pmatrix} F_1 & F_2 & F_3 & F_4 & F_5 & F_6 & F_7 \end{pmatrix} \]
Умножать можно только в том случае, если число строк одной из матриц равно числу столбцов у другой матрицы.
Матрица A
[,1] [,2] [,3]
[1,] 1 5 9
[2,] 2 6 10
[3,] 3 7 11
[4,] 4 8 12
Матрица B
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
кзультата матричного умножения \(\textbf{A} \times \textbf{B}\)
[,1] [,2] [,3] [,4]
[1,] 107 122 137 152
[2,] 122 140 158 176
[3,] 137 158 179 200
[4,] 152 176 200 224
У первой матрицы (A) число строк равно числу столбцов у второй матрицы (B)
Порядок имеет смысл!
Если поменять местами матрицы A и B, то изменится и результат
Удалим из матрицы B последнюю строчку
Такое произведение возможно
Но невозможно такое произведение
Если матрица (A) не квадратная, то нельзя произвести такое умножение
[,1] [,2]
[1,] 58 64
[2,] 139 154
\[ \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ \end{pmatrix} \times \begin{pmatrix} 7 & 8 \\ 9 & 10\\ 11 & 12\\ \end{pmatrix} = \begin{pmatrix} 7 \cdot 1 + 9 \cdot 2 + 11 \cdot 3 & 8 \cdot 1 + 10 \cdot 2 + 12 \cdot 3 \\ 7 \cdot 4 + 9 \cdot 5 + 11 \cdot 6 & 8 \cdot 4 + 10 \cdot 5 + 12 \cdot 6 \\ \end{pmatrix} = \\ = \begin{pmatrix} 58 & 64 \\ 139 & 154\\ \end{pmatrix} \]
\[ \begin{pmatrix} A & B \\ C & D \\ \end{pmatrix} \times \begin{pmatrix} E & F \\ G & H\\ \end{pmatrix} = \begin{pmatrix} (A \cdot E + B \cdot G) & (A \cdot F + B \cdot H ) \\ (C \cdot E + D \cdot G) & (C \cdot F + D \cdot H) \\ \end{pmatrix} \]
Простейший пример использования умножения матриц - построение модели динамики демографической структуры популяции Для вычислений необходим начальный демографический вектор и матрица Лесли
\[ \begin{pmatrix} F_1 & F_2 & F_3 & F_4 & F_5 & F_6 & F_7 \\ P_{1-2}& 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & P_{2-3} & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & P_{3-4} & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & P_{4-5} & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & P_{5-6} & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & P_{6-7} & 0 \end{pmatrix} \times \begin{pmatrix} N1_t \\ N2_t \\ N3_t \\ N4_t \\ N5_t \\ N6_t \\ N7_t \end{pmatrix} = \begin{pmatrix} N1_{t+1} \\ N2_{t+1} \\ N3_{t+1} \\ N4_{t+1} \\ N5_{t+1} \\ N6_{t+1} \\ N7_{t+1} \end{pmatrix} \]
Демографический вектор в момент времени \(t\)
Age T1
1 0 20
2 1-10 40
3 11-20 32
4 21-35 45
5 36-45 80
6 46-55 50
7 56-65 10
Матрица Лесли
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0.0 0.0 1.0 2.0 2.0 0.0 0
[2,] 0.6 0.0 0.0 0.0 0.0 0.0 0
[3,] 0.0 0.7 0.0 0.0 0.0 0.0 0
[4,] 0.0 0.0 0.8 0.0 0.0 0.0 0
[5,] 0.0 0.0 0.0 0.7 0.0 0.0 0
[6,] 0.0 0.0 0.0 0.0 0.6 0.0 0
[7,] 0.0 0.0 0.0 0.0 0.0 0.2 0
Коэффициент корреляции \[r_{x,y} = \frac{\sum(x_i-\bar{x})(y_i-\bar{y})} {\sqrt{\sum(x_i-\bar{x})^2}\sqrt{\sum(y_i-\bar{y})^2}} = \frac{cov_{x,y}} {\sigma_x \sigma_y}\] В матричной форме
\[\bf{Cor} = \frac{\bf{{X}'_{stand}}\bf{X_{stand}}}{N-1}\]
Используем известные нам данные по размеру головного мозга
Матричное произведение
FSIQ VIQ PIQ Weight Height MRINACount
FSIQ 1.0000 0.9451 0.93443 -0.05148 -0.1184 0.334
VIQ 0.9451 1.0000 0.77602 -0.07609 -0.1190 0.300
PIQ 0.9344 0.7760 1.00000 0.00251 -0.0932 0.378
Weight -0.0515 -0.0761 0.00251 1.00000 0.6996 0.513
Height -0.1184 -0.1190 -0.09316 0.69961 1.0000 0.588
MRINACount 0.3337 0.3003 0.37778 0.51338 0.5884 1.000
[,1] [,2] [,3]
[1,] 130 290 450
[2,] 140 316 492
[3,] 150 342 534
[4,] 160 368 576
[5,] 170 394 618
[6,] 180 420 660
НО!
Такое произведение невозможно
[,1] [,2] [,3] [,4]
[1,] 107 122 137 152
[2,] 122 140 158 176
[3,] 137 158 179 200
[4,] 152 176 200 224
[,1] [,2] [,3]
[1,] 150 186 222
[2,] 186 231 276
[3,] 222 276 330
Определитель матрицы — это некоторое число.
По значению этого числа можно определить есть ли у матрицы некоторые свойства (например, обратима ли матрица).
Определитель бывает только у квадратных матриц.
Матрицы, имеющие определитель равный нулю, называются сингулярными матрицами.
НО!
В матричной алгебре нет процедуры деления. Вместо нее используют обращение матриц.
\[ \textbf{X}^{-1}\textbf{X} = \textbf{I} \]
Произведение инверсии матрицы и исходной матрицы дает единичную матрицу
Только некоторые квадратные матрицы, могут иметь обратную матрицу.
Поэтому для квадратных матриц справедливо \[\textbf{X} \textbf{X}^{-1} = \textbf{X}^{-1} \textbf{X}\]
Для матриц, определитель которых равен нулю, обратной матрицы не существует
Создадим матрицу
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 10
Ее определитель
Обратная матрица
По определению, \(\textbf{X}^{-1}\textbf{X} = \textbf{I}\)
Простейший случай использования обратных матриц - решение систем линейных уравнений
\[ \begin{cases} 1x + 2y + 3z = 2\\ 4x + 5y + 6z = 4 \\ 7x + 8y + 10z = 10 \end{cases} \]
Эту систему можно представить в матричном виде
\[ \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 10 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} 2 \\ 4 \\ 10 \end{pmatrix} \]
Тогда
\[ \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 10 \end{pmatrix} ^{-1} \begin{pmatrix} 2 \\ 4 \\ 10 \end{pmatrix} \]
Если определитель матрицы коэффициентов не равен нулю, то для этой матрицы возможно обращение, а система уравнений имеет решение.
С помощью определителя матрицы коэффициентов можно определить будет ли система уравнений иметь решение.
Если определитель равен нулю, то инверсия матрицы невозможна и система уравнений имеет бесконечное количество решений.
Решите приведенную систему уравнений с использованием матричной алгебры
\[ \begin{cases} 1x + 2y + 3z = 2\\ 4x + 5y + 6z = 4 \\ 7x + 8y + 10z = 10 \end{cases} \]
Решите систему из двух уравнений
\[ \left\{\begin{array}{c}2x-4y=-6\\ 2x+y=4\end{array}\right. \]
Модель линейной регрессии \(y_i = b_0 + b_1x_i + e_i\) можно записать в матричном виде
\[ \mathbf{y} = \mathbf{X}{\pmb{\beta}} + \mathbf{e} \] Или
\[ \mathbf{\hat{y}} = \mathbf{X}{\pmb{\beta}} \]
Здесь
\(\textbf{y}\) - вектор наблюдаемых значений зависимой переменной
\(\mathbf{\hat{y}}\) - вектор предсказанных значений зависимой переменной
\(\textbf{X}\) - модельная матрица
\(\pmb{\beta}\) - вектор коэффициентов модели \(b_0 + b_1x\): \((b_0, b_1)\)
\(\mathbf{e}\) — вектор остатков.
Это матрица, описывающая “поведение” предикторов.
Для модели \(y_i = b_0 + b_1x_i + e_i\)
\[ \mathbf{X} = \begin{pmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots\\ 1 & x_n \\ \end{pmatrix} \]
Умножим обе части уравнения на транспонированную матрицу \(\textbf{X}'\)
\[ \textbf{X}' \textbf{y} = \textbf{X}'\textbf{X} \pmb{\beta}\]
Матрица \(\textbf{X}'\textbf{X}\) - это всегда квадратная матрица. Ее можно обратить.
Тогда \[ \pmb{\beta} = [\textbf{X}'\textbf{X}]^{-1}[\textbf{X}'\textbf{y}] \]
lm()geom_smooth()Мы научимся все эти результаты получать вручную!
Находим вектор коэффициентов на основе матичного уравнения \[\pmb{\beta} = [\textbf{X}'\textbf{X}]^{-1}[\textbf{X}'\textbf{y}]\]
Шаг 1. Формируем искусственный датасет со всеми возможными значениями предиктора
Шаг 2. Формируем модельную матрицу для искусственно созданных данных
Шаг 3. Вычисляем предсказанные значения для искусственно созданных данных
Шаг 4. Рисуем график
Осталось нанести границы доверительной области. Но для этого необходимо ввести понятие вариационно-ковариационной матрицы
Подобранные параметры (вектор коэффициентов) – это лишь оценки некоторых параметров, описывающих связь между зависимой переменной и предиктором в генеральной совокупности.
Варьирование параметров описывает вриацонно-ковариационная матрица.
В среде R, если модель задана, например, с помощью функции lm(), эта матрица вычисляется так
\[ \textbf{V}_b = s^2[\textbf{X}'\textbf{X}]^{-1} \] где
\[ s^2 = \frac{\sum\limits_{\substack{i=1}}^n e_i^2}{n-k} \]
\(\sum\limits_{\substack{i=1}}^n e_i^2\) - сумма квадратов остатков
\(n\) - объем
\(k\) - количество параметров модели
Вычислем вектор остатков
Вычисляем \(s^2 = \frac{\sum\limits_{\substack{i=1}}^n e_i^2}{n-k}\)
Вычисляем \(\textbf{V}_b = s^2[\textbf{X}'\textbf{X}]^{-1}\)
Intercept MRINACount
Intercept 1797.11410 -0.00196543266
MRINACount -0.00197 0.00000000216
Для построения доверительного интервала надо вычислить значение стандартных ошибок для всех возможных значений предиктора.
Мы можем взять любую новую модельную матрицу \(\textbf{X}\), связанную с этой моделью.
Тогда \[ SE = \sqrt{diag(\textbf{X} \times \textbf{V} \times \textbf{X}')} \]