From 867a5b838011d0a4ef2b178ffeb8c1236d2044b4 Mon Sep 17 00:00:00 2001 From: "Ivan I. Ovchinnikov" Date: Tue, 28 Feb 2023 15:00:50 +0300 Subject: [PATCH] bda02 wip --- ...mation-systems-developing-technologies.tex | 416 ++++++++++-- 04-time-series-analysis-forecasting.tex | 141 ++++- pics/04-bdaisdt-00-roc-bad.png | Bin 0 -> 35166 bytes pics/04-tsaf-00-acf.svg | 599 ++++++++++++++++++ 4 files changed, 1086 insertions(+), 70 deletions(-) create mode 100644 pics/04-bdaisdt-00-roc-bad.png create mode 100644 pics/04-tsaf-00-acf.svg diff --git a/04-big-data-analysis-information-systems-developing-technologies.tex b/04-big-data-analysis-information-systems-developing-technologies.tex index a213443..a9af764 100644 --- a/04-big-data-analysis-information-systems-developing-technologies.tex +++ b/04-big-data-analysis-information-systems-developing-technologies.tex @@ -196,24 +196,58 @@ $\ddot{y_j}$ -- среднее значение $y_t$ для объектов с \subsection{Отбор признаков по Теореме Байеса} Теорема Байеса. Пусть $В_1, В_2, ..., В_r$, полная группа событий $А$ -- некоторое событие, вероятность которого связана с $В_i$, тогда \[ P(B_i|A) = \frac{P(A|B_i)p(B_i)}{P(A)}\], -где $P(A) = \sum_{i=1}^rP(A|B_i)p(B_i)$.По теореме Байеса считаем $P(X_j,Y)$ -- вероятность признака $Х_у$, если объект принадлежит положительному классу. Если Р(X,IY = 1) > P +где $P(A) = \sum_{i=1}^rP(A|B_i)p(B_i)$.По теореме Байеса считаем $P(X_j,Y)$ -- вероятность признака $Х_у$, если объект принадлежит положительному классу. Если $Р(X_j |Y = 1) > 0,7 \cup P(X_j |Y = 1) < 0,3$, то считаем $X_j$, информативным признаком. - 0,7 UP(XIY = 1)<0,3, то считаем X, информативным признаком. + Пример. Оценим информативность признаков $x_j$, и $х_r$, по Теореме Байеса: +\begin{equation*} + \begin{gathered} +P(x_y = 1|Y = 1) =1/2 +P(x_r = b|Y = 1) =3/16 + \end{gathered} +\end{equation*} - Пример. Оценим информативность признаков x, и х, по Теореме Байеса: - - P(xy = 1)Y = 1) =1/2 - - P(xr = b/Y = 1) =3/16 + \begin{tabular}{||r|c|c||} + \hline + $x_j$ & $X_r$ & $Y$ \\ [0.5ex] + \hline + 1 & a & 1 \\ + 0 & a & 1 \\ + 1 & b & 1 \\ + 0 & a & 1 \\ + 1 & b & 0 \\ + 1 & b & 0 \\ + \hline + \end{tabular} \subsection{Наивный байесовский классификатор} -\[ L = \{X_t, Y_t\}_t=1^N \] обучающая выборка, $X_j=\left( \begin{array}{c} x_{1j}\\ ...\\ x_{Nj}\end{array} \right)$ -- j-ый признак, $X_k$ -- новый объект. +$ \mathcal{L} = \{X_t, Y_t\}_{t=1}^{N} $ -- обучающая выборка, $X_j=\left( \begin{array}{c} x_{1j}\\ ...\\ x_{Nj}\end{array} \right)$ -- j-ый признак, $X_k$ -- новый объект. Предположение. При заданном значении класса $Y_t$ признаки $\dot{X_j}, ..., \dot{X_j}$ независимые. +\[P(X_j|Y, X_1, ..., X_{j-1}, X_{j+1},...X_r)=P(X_j|Y) \] -$P(Y = 1|0,b) = \frac{P(0,b|Y)P(Y)}{P(0,b)}$ +Применим теорему Байеса. +\[P(Y|X_1,...,X_r)=\frac{P(X_1,...X_r|Y)P(Y)}{P(X_1,...X_r)}\] + +в силу независимости признаков: +\[P(Y|X_1,...,X_r)=\frac{\prod_{j=1}^rP(X_j|Y)P(Y)}{P(X_1,...X_r)}\] + +\[Y\rightarrow\underbrace{argmax}_Y\prod_{j=1}^rP(X_j|Y)P(Y)\] + +Найти класс объекта $X_k$. имеющего признаковое описание $(0,b)$. $P(Y=1|0,b)=?$, $P(Y=0|0,b)=?$ + + \begin{tabular}{||r|c|c||} + \hline + $x_j$ & $X_r$ & $Y$ \\ [0.5ex] + \hline + 1 & a & 1 \\ + 0 & a & 1 \\ + 1 & b & 1 \\ + 0 & a & 1 \\ + 1 & b & 0 \\ + 1 & b & 0 \\ + \hline + \end{tabular} -$y = argmax(P(a,b|Y) * P(Y))$ \subsection{ROC-кривая} Число строк в квадрате справа равно числу единиц, число столбцов -- числу нулей. Стартуем из точки (0, 0)(левый нижний угол. Если значение метки класса в просматриваемой строке 1, то делаем шаг вверх; если 0, то делаем шаг вправо, если у нескольких объектов значения оценок равны, то делаем шаг в точку \textbf{а} блоков выше и \textbf{b} блоков правее, где \textbf{а} -- число единиц, \textbf{b} -- число нулей в рассматриваемой группе объектов. @@ -226,9 +260,44 @@ $y = argmax(P(a,b|Y) * P(Y))$ \includesvg[scale=1.01]{pics/04-bdisdt-00-roc.svg} \end{figure} +$a(X_i,w)=[\langle w,X_i\rangle >t]$, где $t$ -- порог, оценка $\sum_{j=1}^m\omega_jx_{ij}$. $TPR=\frac{TP}{TP+FN}$, доля правильно определенных объектов положительного класса $FPR=\frac{FP}{FP+TN}$ доля неправильно определенных объектов положительного класса. Число строк в прямоугольнике равно \textbf{числу единиц}, число столбцов – \textbf{числу нулей} вектора \textbf{$Y_i$}. Идем из точки (0, 0)(левый нижний угол). Если \textbf{$Y_i=1$} то шаг вверх; если 0, то шаг вправо. Если у нескольких объектов значения оценок равны, то делаем шаг в точку на $a$ блоков выше и $b$ блоков правее, где $a$ – число единиц, $b$ – число нулей. + +\begin{tabular}{||r|c|c||} + \hline + $i$ & оценка &$Y_i$ \\ [0.5ex] + \hline + 1 & 0.5 & 0 \\ + 2 & -0.1 & 0 \\ + 3 & 0.1 & 0 \\ + 4 & 0.6 & 1 \\ + 5 & 0.1 & 1 \\ + 6 & 0.3 & 1 \\ + 7 & -0.2 & 0 \\ + \hline +\end{tabular} + +\begin{tabular}{||r|c|c||} + \hline + $i$ & оценка &$Y_i$ \\ [0.5ex] + \hline + 4 & 0.6 & 1 \\ + 1 & 0.5 & 0 \\ + 6 & 0.3 & 1 \\ + 3 & 0.1 & 0 \\ + 5 & 0.1 & 1 \\ + 2 & -0.1 & 0 \\ + 7 & -0.2 & 0 \\ + \hline +\end{tabular} \textbf{Принятие решений на основе кривой.} Для того, чтобы решить, какие объекты отнести к классу 1, а какие к классу 0, нужно будет выбрать некоторый порог (объекты с оценками выше порога относим к классу 1, остальные -- 0). Выбору порога соответствует выбор точки на ROC-кривой. Здесь для порога $0.25$ выбрана точка (1/4,2/3). +В случае бинарных ответов ROC-кривая состоит из трёх точек, соединёнными линиями: $(0,0)$, $(FPR, TPR)$, $(1, 1)$, где FPR и TPR соответствуют любому порогу из интервала $(0, 1)$. На рисунке зелёным показана ROCкривая бинаризованногорешения, AUC ROC после бинаризации уменьшилась и стала равна $8.5/12 \sim 0.71$. Формула для вычисления AUC ROC для бинарного решения: + +\[\frac{TPR+FPR}{2}+TPR(1-FPR)+\frac{(1-FPR)(1-TPR}{2}=\frac{1+^2TPR-FPR}{2}\] + +Площадь под ROC кривой оценивает качество ранжирования объектов. Индекс $\text{Джини}=2*S_{AUCROC}-1$ + \begin{tabular}{||r|c|c||} \hline id & $>0.25$ & класс \\ [0.5ex] @@ -247,22 +316,171 @@ $y = argmax(P(a,b|Y) * P(Y))$ 2/3 - \% точек класса 1, верно классифицированых алгоритмом (TPR = True Positive Rate). -Качество ROC-кривой напрямую зависит от объёма выборки и количества признаков. С её помощью можно оченить информативность признаков (отобрать признаки). + Качество ROC-кривой напрямую зависит от объёма выборки и количества признаков. С её помощью можно оченить информативность признаков (отобрать признаки). + +\subsection{Площадь под ROC-кривой, AUC-ROC} + +\textbf{AUC ROC} оценивает качество упорядочивания алгоритмом объектов двух классов, (например, по вероятности принадлежности объекта к классу 1). Ее значение лежит на отрезке [0, 1]. В рассматриваемом примере $AUC ROC = 9.5 / 12 \sim 0.79$. + +На рисунке слева приведены случаи идеального, наихудшего и обратимого следования меток в упорядоченной таблице. Идеальному соответствует ROC-кривая, проходящая через точку $(0, 1)$, площадь под ней равна $1$. Если ROC кривая, проходит через точку $(1, 0)$, площадь под ней -- 0, в этом случае в результата инвертирования можно получить неплохую модель. Случайному -- что-то похожее на диагональ квадрата,площадь примерно равна $0.5$. + +\textbf{Индекс $\text{Джини}=2*S_{AUCROC}-1$} + +\begin{itemize} +\item Показатель AUC ROC предназначен скорее для сравнительного анализа нескольких моделей; +\item Его не имеет смысла использовать на коротких выборках +\item Высокий AUC ROC может существовать и в очень плохих моделях. Пример. +\end{itemize} + +\begin{figure}[H] + \centering + \includegraphics[width=100mm]{04-bdaisdt-00-roc-bad.png} +\end{figure} + +AUC ROC можно использовать для отбора признаков: +\begin{itemize} +\item Строим таблицу +\item Упорядочиваем по убыванию +\item Считаем AUC ROC +\end{itemize} + \subsection{Precision-recall кривая} +По оси абсцисс -- recall, по оси ординат -- precision. Критерий качества -- площадь под PR-кривой (AUC-PR). + +$precision=\frac{TP}{TP+FP}, recall=\frac{TP}{TP+FN}; t_{min} precision=?, recall=1$ Качество оценки площади PR-кривой зависит от объёма выборки при разной пропорции классов: при малых объемах выборки отклонения от среднего увеличиваются. \subsection{Тестирование модели} - +Обучающая выборка делится на 3 части: На обучающей выборке происходит обучение алгоритма. На валидационной выбираются гиперпараметры. На тестовой выборке никакие параметры не меняются. $60-70 \%$ -- обучение, $40\%-30\%$ -- валидационная и тестовая выборки. +\begin{itemize} + \item ошибка обучения = доля неверно классифицированных обучающих примеров; + \item ошибка теста = доля ошибочно классифицированных тестовых примеров на валидационной выборке; + \item ошибка обобщения = вероятность неправильной классификации новых случайный примеров. + \end{itemize} + \subsection{Оценка} Оценивание методов обычно проводится, относительно следцющих характеристик: скорость, робастность, интерпретируемость, надёжность. \begin{itemize} -\item скорость -- время которое требуется на создание модели и её использование +\item Скорость -- время которое требуется на создание модели и её использование \item Робастность -- устойчивость к отклонениям от исходных предпосылок метода, например, возможность работы с зашумленными данными, пропущенными значениями в данных, нарушениями предположений о распределении и пр. -\item Интерпретируемость -- обеспечивает возможность понимания модели аналитиком предметной области. Пусть для решения применили методы: деревья решений; байесовская +\item Интерпретируемость -- обеспечивает возможность понимания модели аналитиком предметной области. \end{itemize} -классификация, метод ближайшего соседа; - логистическая регрессия; +Пусть для решения применили методы: деревья решений; байесовская классификация, метод ближайшего соседа; логистическая регрессия; метод опорных векторов. Можно ли сравнить их по вышеперечисленным характеристикам? -метод опорных векторов. Можно ли сравнить их по вышеперечисленным +\subsection{Постановка задачи классификации} +Пусть $X_t\subset X$ -- объект множества $X$ c набором характеристик $(x_{t1},x_{t2},...,x_{tn})$, \textbf{Y} -- множество классов, к которым принадлежать объекты множества \textbf{X}. + +$\{X_t, Y_t\}^N_{t=1}$ -- обучающая выборка, для которой в подмножестве объектов $X_t\subset X$ известны ответы $Y_t$. Требуется построить алгоритм $a:X \to Y$, который определяет ответы $Y_t$ для любого объекта $X_t$, не принадлежащего обучающей выборке $\mathcal{L} = \{X_t, Y_t\}^N_{t=1}$. +\begin{itemize} + \item По числу классов различают двухклассовую классификацию: множество классов $Y=\{-1,1\}$ или $Y=\{0,1\}$ и многоклассовую классификацию $Y=\{1, 2, ..., m\}$. + \item Множество «ответов» (классов) задается либо числом (обозначение класса), либо вектором $\{p_1,p_2,...P_m\}$, где $P_i$ - верность или степень уверенности применяемого алгоритма, что выбранный объект принадлежит классу $i, i = 1, 2, ..., m, \sum^m_{i=1}p_i = 1$. + \item Алгоритм $a(Xt)$ отображает объект $X_t$ на вектор ответов $a:(X_t, g)\to \bigg\{0,...,\underbrace{1}_i,...,0\bigg\}$, где $i$ -- номер класса, определенного алгоритмом для объекта $X_t$, или $a:(X_t, g)\to\{p_1, p_2, ..., p_m\}$, где $p_i$ -- вероятность класса, $g$ -- вектор гиперпараметров. + \item Классы могут пересекаться: рассматривают задачи с непересекающимися и пересекающимися классами: объект может относиться одновременно к нескольким классам. $Y=\{0, 1\}^M$, Пусть $M = 3$, тогда $Y = \{ 0, 1\}\times\{0,1\}\times\{0,1\}$ и результат $Y=\{1\}\times\{1\}\times\{0\}$ означает, что классифицируемый объект принадлежит первому и второму классам. +\end{itemize} + +\subsection{Бинарная классификация линейной функцией} +Задача бинарной классификации -- разделение объектов множества $X$ на два класса. Пусть $\{X_i, Y_i\}^l_{i-1}$, где $X_i\in R^r,Y_i\in\{-1,1\}$, обучающая выборка. Линейная модель или алгоритм классификации: +\[ a(X_i,w)=w_0+\sum^m_{j=1}w_jx_{ij}=sign(\langle w,X_i\rangle+w_0) \] + +где $j$ -- номер признака объекта, $m$ -- число признаков. Если считать, что все рассматриваемые объекты имеют постоянный первый признак равный 1, то +\[ a(X_i, w)=w_0+\sum^m_{j=1}w_jx_ij=\text{sign}(\langle w,X_i\rangle+w_0)\] + +Алгоритм -- гиперплоскость в пространстве признаков с нормалью $||w||$ и расстоянием $a(x_i)$ до точки $x_i, \langle w, x_i\rangle$ -- скалярное произведение, величина которого пропорциональна расстоянию от разделяющей гиперплоскости $\langle w, x\rangle=0$ до $x_i$. + +Если признаковое пространство может быть разделено гиперплоскостью на два полупространства, в каждом из которых находятся только объекты одного из двух классов, то обучающая выборка называется линейно разделимой. + +\subsection{Метрики. Оценка качества работы алгоритма} + +Обучение линейного классификатора заключается в поиске вектора весов $w$, на котором достигается минимум заданного функционала качества. Примеры: + +\begin{enumerate} +\item Функция потерь: +\begin{equation*} + \begin{gathered} +L(a(x))=\frac{1}{l}\sum^l_{i=1}[sign(\langle w,X_i\rangle)\neq Y_i]\to min\\ +L(a(x))=\frac{1}{l}\sum^l_{i=1}[sign(\langle w,X_i\rangle)*Y_i<0]\to min + \end{gathered} +\end{equation*} +используется в задаче классификации. Величина $M_i=\langle w,X_i\rangle)*Y_i$ называется отступом объекта $X_i$, она равна расстоянию от объекта до разделяющей гиперплоскости $(x,w)=0$ + +\[L(a(x))=\frac{1}{l}\sum^l_{i=1}[M_i<0]=L(M)\rightarrow min\] +Обозначение: + \begin{equation*} + [a(x_i)\neq y_i]= + \begin{cases} + 1,if a(x_i)\neq y_itrue\\ + 0,if a(x_i)=y_ifalse + \end{cases} + \end{equation*} + +\item Среднеквадратичная ошибка (mean squared error, MSE): +\[ L(a(x))=\frac{1}{l}\sum^l_{i=1}(a(X_i-Y_i))^2\to min \] +используется в задаче регрессии. +\end{enumerate} + +\subsection{Верхняя оценка пороговой функции потерь} + +Оценим функцию $L(M_i)$ сверху во всех точках $M L (M)=log(1+e^{-M}))$. Кусочно -- линейная функция потерь $\tilde{L}(M)=(1-M)^+=max(0,1-M)$. Экспоненциальная функция потерь $\tilde{L}(M)=EXP(-M)$. Квадратичная функция потерь $\tilde{L}(M)=M^2$. + +Особенность оценочных функций в том, что они по значению больше, либо равны исходной пороговой. Следовательно, минимизация приводит к минимизации потерь и для пороговой функции. + +\subsection{Задача классификации. Метод логистической регрессии} +Рассматриваем бинарную классификацию $Y={1,-1}$, хотим построить модель, которая выдает не номер класса, а вероятность принадлежности объекта к классу. Бинарная логистическая регрессия предсказывает вероятность того, что модель принадлежит к положительному классу. Будем говорить, что модель корректно предсказывает вероятности, если среди множества объектов, для которых модель предсказала вероятность $p$, доля положительных равна $p$. + +Критерий $\sum^N_{i=1}\log(1+\exp(-Y_i\langle X_i,w\rangle)\to \underbrace{\min}_w$ + +\subsection{Классификация методом логистической регрессии} +Постановка задачи (требование к модели). Задача заключается в том, чтобы найти алгоритм $a(x)$, такой, что +\[arg\underset{b}{min}\frac{1}{l}\sum^l_{i=1}L(a(x),y)\approx p(y=+1|x)\approx \frac{1}{N}\sum^N_{i=1}y_i=1,\] + +Если задача решена (мы корректно оценили вероятности), тогда при $l\to\infty$ получаем: +\[arg\underset{b}{min} EL(a(x),y)=p(y=+1|x),\] + +где +\[EL(a(x),y)=p(y=+1|x)*L(a(x),1)+p(y=-1|x)*L(a(x),-1).\] + +\subsection{Преобразование ответа линейной модели} + +$\langle X_i,w\rangle \to \sigma(\langle X_i,w\rangle)=\frac{1}{1+exp(-\langle X_i,w\rangle)}\in[0,1]$, это преобразование сохраняет монотонность: если $z_1\leq z_2\to \sigma(z_1)\leq\sigma(z_2).$ Клаccификатор логистической регресии имеет вид: +\[b(\langle X_i,w\rangle)=\sigma(\langle X_i,w\rangle)\] + +\subsection{Обучение модели} +\begin{itemize} +\item Eсли $Y_i=1$, то $\sigma(\langle X_i,w\rangle)\to 1$ +\item Если $Y_i=-1$, то $\sigma(\langle X_i,w\rangle)\to 0$ +\item Если $\sigma(\langle X_i,w\rangle)\to 0$ то алгоритм уверен, что правильный ответ 0 +\item Если $\sigma(\langle X_i,w\rangle)\to 1$ то алгоритм уверен в положительном ответе +\end{itemize} + +Как это сделать?? +\begin{itemize} +\item Если $Y_i=1$, то $\sigma(\langle X_i,w\rangle)\to1,\langle X_i,w\rangle\to\infty$ +\item Если $Y_i=-1$, то $\sigma(\langle X_i,w\rangle)\to0,\langle X_i,w\rangle\to -\infty$ +\end{itemize} + +Нужно максимизировать абсолютную величину отступа +\[Y_i\langle X_i,w\rangle\to \underbrace{\max}_w\] + +\subsection{Выбор критерия} + + Нужно: $Y_i\langle X_i,w\rangle\to \underbrace{\max}_w$, Проанализируем $\sigma(\langle X_i,w\rangle)=\frac{1}{1+exp(-\langle X_i,w\rangle)}$ +\[-\sum^N_{i=1}\left\{[Y_i=1]\sigma(\langle X_i,w\rangle)+[Y_i=-1](1-\sigma(\langle X_i,w\rangle)\right\}\to\underbrace{\min}_w\] + +Этот критерий плохо штрафует за ошибки, если алгоритм уверен в своем ошибочном объекте. Изменим критерий +\[-\sum^N_{i=1}\left\{[Y_i=1]log(\sigma(\langle X_i,w\rangle))+[Y_i=-1]log((1-\sigma(\langle X_i,w\rangle))\right\}\to\underbrace{\min}_w\] + +log-loss $L(Y,z)=[Y=1]\log z+[y=-1]\log(1-z))$. Как изменится штраф? После несложных преобразований получим наш исходный критерий: $\sum^N_{i=1}log(1+exp(-Y_i\langle X_i,w\rangle))\to\underbrace{\min}_w$. + + \subsection{Преобразование критерия} +\begin{equation*} + \begin{gathered} +-\sum^N_{i=1}\left\{[Y_i=1]\log(\sigma(\langle X_i,w\rangle))+[Y_i=-1]\log((1-\sigma(\langle X_i,w\rangle))\right\}=\\ +-\sum^N_{i=1}\left\{[Y_i=1]\log\left(\frac{1}{1+exp(-\langle X_i,w\rangle)}\right)+[Y_i=-1]\log\left(1-\frac{1}{1+exp(-\langle X_i,w\rangle)}\right)\right\}=\\ +\sum^N_{i=1}\left\{[Y_i=1]\log(1+\exp(-\langle X_i,w\rangle))-[Y_i=-1]\log\left(1-\frac{\exp(-\langle X_i,w\rangle)}{1+\exp(-\langle X_i,w\rangle)}\right)\right\}=\\ +\sum^N_{i=1}\left\{[Y_i=1]\log(1+\exp(-\langle X_i,w\rangle))-[Y_i=-1]\log\left(1-\frac{1}{1+\exp(\langle X_i,w\rangle)}\right)\right\}=\\ +\sum^N_{i=1}\left\{\log(1+\exp(-Y_i\langle X_i,w\rangle)\right\}= + \end{gathered} +\end{equation*} \section{Решаемые задачи} \[ [a(x_i)\neq y_i] = @@ -275,25 +493,36 @@ $y = argmax(P(a,b|Y) * P(Y))$ $a(x_i)$ -- алгоритм обучения. Если применить алгоритм -- получим результат классификации $x_i$, сравниваемый с $y_i$. \begin{multicols}{2} -Классификация - \columnbreak -Прогнозирование +\textbf{Классификация} + +Линейный классификатор: +$a(x_i)=sign(\sum^r_{j-1}w_jf_{ij}+w_0) \to y_i$ + +Пороговая функция потерь алгоритма +$L(Y_i,a)=\frac{1}{l}\sum^l_{i=1}[(w,x_i)*y_i<0]\leq \tilde{L}(M)$ + +Метод обучения-минимизация эмпирического риска: +$L(Y_i,a)=\frac{1}{l}\sum^l_{i=1}[(w,x_i)*y_i<0]\leq \tilde{L}(M)\to \underset{w}{min}$ + +Мера качества: число неправильных классификаций +$Q(x,a)=\frac{1}{l}\sum^l_{i=1}[a(x_i)\neq y_i]$ + +\columnbreak +\textbf{Прогнозирование} + +Линейная регрессия-прогноз +$a(x_i)=\sum^r_{j-1}w_jf_{ij}+w_0 \to y_i$, модель прогнозирования + +Функция потерь алгоритма: +$L(a,y)=(a(X_i)-y_i)^2$ + +Методы обучения: наименьших квадратов; градиентного спуска: +$L(a,y)=\frac{1}{l}\sum_{i=1}^l(a(x_i))-y_i)^2\to \underset{w}{min}$ + +Мера качества. Средняя квадратичная ошибка (MSE): +$Q(a,x)=\frac{1}{l}\sum^l_{i=1}(a(x_i)-y_i)^2$ \end{multicols} -\subsection{Обозначения} -Пусть $X_t\subset X$ -- объект множества $X$ с набором характеристик $(X_1, Xız, ..., Xtn)$, $Y$ -- множество классов, к которым принадлежат объекты множества $Х$. - -% {X, Y} 1 - обучающая выборка, для которой на подмножестве объектов Xt CX известны ответы Yt. - -%Требуется построить алгоритм а: X → Y, который определяет ответы Yе для любого объекта Xt, не принадлежащего обучающей выборке £ = {Xt, Y}-1. Jt=1' - -\subsection{Задача классификации} - -\subsection{Метрики. Оценка качества работы алгоритма} -Обучение линейного елассификатора заключается в поиске вектора весов $w$, на котором достигается минимум заданного функционала качества. - -... - \subsection{Задача классификации. Метод логистической регрессии.} Рассматриваем бинарную классификацию $Y = \{1, -1\}$, хотим построить модель, которая выдает не номер класса, а вероятность принадлежности объекта к классу. Бинарная логистическая регрессия предсказывает вероятность того, что модель принадлежит к положительному классу. @@ -301,22 +530,121 @@ $a(x_i)$ -- алгоритм обучения. Если применить ал Критерий $\sum_{i=1}^N \log(1+\exp(-Y_i\langle X_i, w\rangle) \to \underset{w}{min})$\footnote{Треугольные скобки означают скалярное произведение, абсолютную величину отступа}. -\subsection{Выбор критерия} -сигма - это уверенность алгоритма в ответе. - \section{Регрессия} \subsection{Постановка задачи} + Пусть значение целевой переменной $Y\in R$ для входного вектора $X=\left\{X_1,X_2,...,X_n,..\right\}$ определяется значением детерминированной функции $g(X,w)$ с аддитивным гауссовым шумом: +\[Y=g(X,w)+\xi, \xi~N(0,\sigma^2)\] + +Тогда +\[P(Y|X,w,\sigma^2)~N(g(X,w),\sigma^2)\] -%Пусть значение целевой переменной $Y \in R$ для входного вектора 𝑿𝑿 = 𝑋𝑋1 , 𝑋𝑋2 , … , 𝑋𝑋𝑛𝑛 , . . определяется значением детерминированной функции 𝑔𝑔(𝑿𝑿, 𝝎𝝎) с аддитивным гауссовым шумом: -%Тогда -%𝑌𝑌 = 𝑔𝑔 𝑿𝑿, 𝑤𝑤 + 𝜉𝜉, 𝜉𝜉 ∼ 𝑁𝑁(0, 𝜎𝜎 2 ) 𝑃𝑃 𝑌𝑌|𝑿𝑿, 𝑤𝑤, 𝜎𝜎 2 ∼ 𝑁𝑁(𝑔𝑔 𝑿𝑿, 𝑤𝑤 , 𝜎𝜎 2 ). -% Требуется построить функцию 𝑔𝑔: (𝑿𝑿, 𝜔𝜔) ⟹ 𝑹𝑹 . Вид функции 𝑔𝑔 мы задаем, веса 𝜔𝜔 определяются в процессе обучения. +Требуется построить функцию $g$: $(X,w)\implies R$ Вид функции $g$ мы задаем, веса $\omega$ определяются в процессе обучения. \subsection{Модель прогнозирования} -если линейно-зависимые столбцы мы не можем регрессировать. -разность между модельным У и реальным У называется разностью. можно построить график разностей. если они примерно однородны - это линейные остатки. если остатки не переходят в другие области такого графика -- это называется гомоскедастичность. +Если линейно-зависимые столбцы мы не можем регрессировать. Разность между модельным и реальным называется разностью. Можно построить график разностей. Если они примерно однородны -- это линейные остатки. Если остатки не переходят в другие области такого графика -- это называется гомоскедастичность. + +Пусть объект прогнозирования описывается формулой: +\[y_i=\sum^r_{j=1}(w_jx_ij+w_0)+\xi_i,\] +где: + +\begin{enumerate} +\item Регрессоры (признаки) $x_{i1},...,x_{ir}$, не являются случайными величинами. +\item Столбцы $X,...,X_r$ - линейно независимы. +\item Последовательность ошибок удовлетворяет условиям («белый шум»): + \[E\xi_i=,Var(\xi_i)=\sigma^2_\xi, cov(\xi_i,\xi_j)=0, i\neq j\] +\end{enumerate} + +Ошибки некоррелированыи гомоскедастичны. Если величины $\xi_i, i=1, 2, ..., n$,распределены по нормальному закону, то модель называется \textbf{Нормальной регрессионной моделью}. + +По результатам наблюдений признаков требуется найти значения $w$, которые лучше всего объясняли бы $y_i$, т.е отклонение $\sum^l_{i=1}(y_i-a(x_i))^2$ было бы минимальными для всех возможных значений $(x_i, y_i), i=1, 2, ..., l$. + +\subsection{Теорема Гаусса -Маркова} +При выполнении предположений 1-3 для модели +\[y_i=\sum^r_{j=1}(w_jx_{ij}+w_0)+\xi_i,\] +оценки $w_j$ полученные методом наименьших квадратов, имеют наименьшую дисперсию в классе всех линейных несмещенных оценок. Формула МНК: $W=(X^TX)^{-1}X^TY$. Сложность обращения матрицы $r^3$. Если столбцы линейно зависимы, то определитель матрицы $X$ равен 0. + +\subsection{Регуляризация} +Если матрица $X$ -- вырожденная, то $(X^TX)$ -- не является обратимой, функционал $Q(a,x)=\frac{1}{l}\sum^l_{i=1}(\langle w,x_i\rangle-y_I)^2\to min$ может иметь бесконечное число решений и очень большие веса $w$. Тогда применяют регуляризацию -- минимизируют функционал + +\[Q(a,x)=\frac{1}{l}\sum^l_{i=1}(\langle w,x_i\rangle-y_I)^2\to min\] + +\begin{itemize} +\item $\sum|w|<\alpha$ Лассо-регрессия +\item $Q(a,x)=\frac{1}{l}\sum^l_{i=1}(\langle w,x_i\rangle-y_I)^2+\gamma||w||^2\to min$ Ридж-регрессия +\end{itemize} + +Решение задачи регуляризации имеет вид: + +\begin{itemize} +\item $w=(X^TX+\gamma w)^{-1}X^TY.$ Лассо-регрессия может привести к обнулению отдельных переменных +\item $w=(X^TX+\gamma E_n)^{-1}X^TY.$ Ридж-регрессия +\end{itemize} +Параметр $\gamma$ называется гипер-параметром. + +\subsection{Стандартизация данных} +Признаки $x_i=\left\{f_{i1},f_{i2},...,f_{ir}\right\}$ объекта $х$ могут иметь различный физический смысл и размерности, поэтому коэффициент $w$, $у$ признака, принимающего большие значения, может принимать маленькие значения, не соответствующие важности признака. Поэтому для повышения способности модели к интерпретации следует выполнять стандартизацию признаков: + +\[\hat{f_{ij}}=\frac{(f_{ij}-\bar{f_j})}{\sigma_j}, j = 1, 2, ..., r\] +где $\bar{f_j}=\frac{1}{l}\sum^l_{i=1}f_{ij}$ выборочное среднее, а $\sigma_j=\frac{1}{l}\sum^l_{i=1}(f_{ij}-\bar{f_j})^2$ выборочное средне-квадратичное отклонение. + +\subsection{Регуляризация в логистической регрессии} +Логистическая функция потерь: +\[\tilde{D}(M)=log(1+e^{-M}),\] где \[M=y_i(\langle w,x_i\rangle+w_0)\] -- margin (отступ) объекта. Минимизация эмпирического риска: +\begin{itemize} +\item $\frac{1}{l}\sum^l_{i=1}\log(1+e^{-y_i\langle w,x_i\rangle})\to min$ -- без регуляризации +\item $\frac{1}{l}\sum^l_{i=1}\log(1+e^{-y_i\langle w,x_i\rangle})+C||w||_2\to \underbrace{\min}_{C,w}$ -- с регуляризацией по норме $L_2$ +\item $\frac{1}{l}\sum^l_{i=1}\log(1+e^{-y_i\langle w,x_i\rangle})+C||w||_1\to \underbrace{\min}_{C,w}$ -- с регуляризацией по норме $L_1$ +\end{itemize} + +\subsection{Меры качества прогнозирования } +\begin{enumerate} +\item Средняя квадратичная ошибка $Q(a,x)=MSE=\frac{1}{l}\sum^l_{i=1}(a(x_i)-y_i)^2$ +\item Корень из среднеквадратичной ошибки (root mean squared error, RMSE): $RMSE=\sqrt{\frac{1}{l}\sum^l_{i=1}(a(x_i)-y_i)^2}$ +\item коэффициент R2 или коэффициент детерминации: $R^2=1-\frac{\sum^l_{i=1}(a(x_i)-y_i)^2}{\sum^l_{i=1}(y_i-\bar{y})^2}$ где $\bar{y}=\sum^l_{i=1}y_i, \sum^l_{i=1}(a(x_i)-y_i)^2$ доля дисперсии объясняемая моделью. +\item Среднее абсолютное отклонение (mean absolute error, MAE): $MAE(a,x)=\frac{1}{l}\sum^l_{i=1}\lceil y_i-a(x_i)\rceil$ +\end{enumerate} + +\subsection {Критерии Акаике и Шварца} +Критерий Акаике: +\[AIC=\widehat{\ln \sigma_r}^2+2\frac{r}{l}\] + +Критерий Шварца: +\[AIC=\widehat{\ln \sigma_r}^2+\frac{r\ln l}{l}\] + +строго состоятельны. +\[\hat{\sigma}^2_r=\sum^n_{j=m+1}\xi^2_j/(l-r)\] + +-- дисперсия ошибки, r -- число признаков. Оптимальная модель имеет минимальное значение критерия. Использование информационных критериев для построения модели: + +\begin{itemize} +\item Построить все возможные варианты регрессионной модели, удовлетворяющие критериям (см пред лекцию) +\item Наилучшая модель должна иметь минимальные значения критериев Акаикеи Шварца. +\end{itemize} + + \subsection {Меры качества прогнозирования} +Скорректированный Коэффициент детерминации $R^2_{adj}=R^2-\frac{r}{l-r}(1-R^2)$. Выбор признаков: если в модель не будет включена переменная, которая должна быть там, то + +\begin{enumerate} +\item Уменьшается возможность правильной оценки и интерпретации уравнения +\item Оценки коэффициентов могут оказаться смещенными +\item Стандартные ошибки коэффициентов и соответствующие t-статистики в целом становятся некорректными. +\end{enumerate} + +\textbf{Четыре критерия для включения переменной} +\begin{enumerate} +\item Роль переменной в уравнении опирается на прочные теоретические основания +\item Высокие значения t-статистики $t_{stat}=\frac{w-\bar{w}}{\sigma_w\sqrt{l}}$ +\item Исправленный коэффициент детерминации растет при включении переменной +\item Другие коэффициенты испытывают значительное смещение при включении новой переменной +\end{enumerate} + \subsection {Пример решения задачи регрессии с ис} \section{Линейная регрессия} + $g(X_i,w)=\sum^r_{j=1}(w_jx_{ij}+w_0)\rightarrow Y_i$ , модель прогнозирования, $X_i-r$–мерный вектор + Функция потерь алгоритма: $L(a,y)=(g(X_i,w)-Y_i)^2$ + Методы обучения: наименьших квадратов; градиентного спуска: + $$L(a,y)=\frac{1}{l}\sum^l_{i=1}(g(X_i,w)-Y_i)^2\rightarrow min \underset{w}{min}$$ + Мера качества. Средняя квадратичная ошибка (MSE): $Q(a,x)=\frac{1}{l}\sum^l_{i=1}(g(X_i,w)-Y_i)^2$ % lgrebenuk12@yandex.ru \begin{equation*} \begin{gathered} @@ -344,6 +672,10 @@ $a(x_i)$ -- алгоритм обучения. Если применить ал регрессия выдаёт вероятности. Алгоритм максимизирует отступ классификатора (расстояние до ближайшего объекта). +\subsubsection {Нелинейная регрессия. Базисные функции.} +\[g(X,w)\sum^p_{j=1}w_j\varphi_j(X)+w_0=\sum^p_{j=0}w_j\varphi_j(X),\varphi_0(X)=1'\] +Число базисных функций может отличаться от числа признаков $j$. + \subsection{Линейно разделимый случай} Мы можем найти такие параметры, при которых классификатор не допускает ни одной ошибки diff --git a/04-time-series-analysis-forecasting.tex b/04-time-series-analysis-forecasting.tex index 61dd228..dccf8da 100644 --- a/04-time-series-analysis-forecasting.tex +++ b/04-time-series-analysis-forecasting.tex @@ -119,7 +119,13 @@ $\sigma$ -алгебра F - набор подмножеств (подмноже \[ P_2(x)=\frac{1}{\sqrt{2\pi}}e^{\frac{(x+1)^2}{2\sigma^2}}\] у синей ($a = 0, \sigma = 1$) \[ P_1(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}} \] -получается у второго будет меньше вариативности, около -1 +получается у второго будет меньше вариативности, около -1. + +\subsection{Стандартное нормальное распределение} +$a = 0, \sigma = 1$ -- параметры, $f(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}$ -- плотность. + +\[\frac{1}{\sqrt{2\pi}}\int_{-infty}^xe^{-\frac{x^2}{2}}dx = F(x)\] функция распределения, +\[\frac{1}{\sqrt{2\pi}}\int_{0}^xe^{-\frac{x^2}{2}}dx = \Phi(x)\] обозначение. Свойства нормального распределения \begin{enumerate} @@ -138,11 +144,9 @@ $\sigma$ -алгебра F - набор подмножеств (подмноже \item Если $x\sim N(a,\sigma^2)$, то $P(|\xi - a| < 3\sigma) \approx 0,997$ \end{itemize} -Характеристики Математическим ожиданием случайной величины $Х$ с плотностью $р_X(х)$ называется неслучайная велична \[ m_X = \int xp_X(x) dx,\] -если этот интеграл сходится, то есть $\int |x| p_X(x) dx < \infty$. -Если $X$ -- дискретная величина, то +если этот интеграл сходится, то есть $\int |x| p_X(x) dx < \infty$. Если $X$ -- дискретная величина, то \[ m_X = \sum_{i=1}^x x_ip(X=x_i)\] \begin{frm} @@ -179,11 +183,19 @@ $\sigma$ -алгебра F - набор подмножеств (подмноже \[ D(X+Y) = DX+D\xi(t)\] \end{enumerate} +\subsection{Зависимые и независимые случайные величины, ковариация и корреляция} Во временных рядах каждое следующее значение в момент $t$ зависит от предыдущего в момент $t-1$. Например, изменение температуры или цен. Если эта зависимость существует, то существует связь, мера этой связи называется ковариацией. ковариация величины с самой собой это дисперсия. Две случайные величины $X$ и $Y$ называются независимыми, если закон распределения одной из них не зависит от того, какие возможные значения приняла другая величина. -Ковариация – это мера линейной зависимости случайных величин. +Ковариация – это мера линейной зависимости случайных величин -- $cov(X,Y) = E[(X-E(X))(Y-E(Y))]$. +\begin{enumerate} +\item $cov(X,X) = Var(X)$; +\item $cov(X,Y) = cov(Y,X)$; +\item $cov(cX,Y) = c$; +\item $cov(a+bX)(c+dY) = bd*cov(X,Y)$. +\end{enumerate} +\[ \rho(X,Y) = \frac{cov(X,Y)}{\sqrt{Var(X) * Var(Y)}} = \text{корреляция}\] Белый шум -- это когда МО = 0, дисперсия $\sigma^2 != 0$, а ковариация = 0. @@ -201,18 +213,46 @@ $\sigma$ -алгебра F - набор подмножеств (подмноже \[Var(x\pm y) = Var(x) + Var(y) \pm 2Cov(x, y),\] если $x$ и $y$ не кореллируют. +\subsection{Процесс авторегрессии первого порядка (Марковский процесс)} +$y_t = \alpha y_{t-1} + \xi_t$ -- уравнение процесса. $E(y_t) = \alpha E(y_{t-1}) + E(\xi_t)$ -- математическое ожидание процесса. + +\begin{equation*} + \begin{gathered} +Var(y_t) = \alpha^2Var(y_{t-1}) + 2\alpha cov(y_{t-1}, \xi_t) + Var(\xi_t) \\ +y_t = \alpha y_{t-1} + \xi_t = \alpha(\alpha y_{t-2} + \xi_1) + \xi_t + ... \\ +Var(y_t) = \gamma(0) = \frac{\sigma_\xi^2}{1-\alpha^2} (\text{дисперсия процесса})\\ +cov(y_t, y_{t+k}) = \gamma(0) = ??\\ +E(y_t, y_t) = Var(y_t) = \alpha^2Var(y_{t}) + 2\alpha cov(y_{t-1}, \xi_t) + Var(\xi_t)\\ +\sigma_y^2 = \alpha^2\sigma_y^2 + \sigma_\xi^2 \Rightarrow |\alpha| < 1\\ +(1-\alpha L) y_t = \xi_t\\ +(1-\alpha L)^{-1}(1-\alpha L)y_t = (1-\alpha L)^{-1}\xi_t = \xi_t + \alpha\xi_{t-1}+...+\alpha^k\xi_{t-k}+...\\ +y_t = \xi_t + \alpha\xi_{t-1}+...+\alpha^k\xi_{t-k}+... (\text{при условии сходимости ряда})\\ +\sum_{j=0}^\infty \alpha^j = \frac{1}{1-\alpha} < \infty \Rightarrow |\alpha| < 1 + \end{gathered} +\end{equation*} + \section{Анализ и прогнозирование временных рядов} +Рассмотрим класс динамических объектов поведение которых может быть описано последовательностью наблюдений, полученных в дискретные моменты времени. Значения наблюдений в момент времени $t$ зависят +\begin{enumerate} +\item от значений, зарегистрированных в предыдущие моменты времени, +\item от совокупного воздействия множества случайных факторов. +\end{enumerate} +Полученную последовательность случайных величин, мы будем называть временным рядом. + рассмотрение динамических объектов. \begin{enumerate} -\item могут быть описаны дономерными или многомерными временными рядами -\item образующие временной ряд последовательности случайных величин не являются независимыми -\item закон распределения может изменяться от числа наблюдаемых временных отсчётов. +\item могут быть описаны одномерными или многомерными временными рядами +\item образующие временной ряд последовательности случайных величин не являются независимыми. наблюдаемое значение в момент времени $t$ зависит от значений, зарегистрированных в предыдущие моменты времени +\item закон распределения может изменяться от числа наблюдаемых временных отсчётов и момента наблюдения $k$. \end{enumerate} +\begin{frm} Временной ряд представляет собой последовательность наблюдений, выполняемых в фиксированные промежутки времени. Предполагается, что временной ряд образует последовательность случайных величин, которая является случайным процессом. \end{frm} + \subsection{Цели АВР} \begin{itemize} \item выявление закономерностей изучаемых процессов -\item построение.... +\item построение моделей для прогноза; +\item обнаружение изменений свойств с целью контроля и управления процессом, выработка сигналов, предупреждающих о нежелательных последствиях. \end{itemize} \subsection{Стационарность рядов} @@ -222,27 +262,54 @@ $\sigma$ -алгебра F - набор подмножеств (подмноже E(Y_t) = \mu;\\ Var(Y_t) = \sigma^2\\ M_K = \int_a^b(x - mx)^a p(x) dx\\ - \gamma(k) = \rho(Y)t, Y_{t-k} = \frac{cov(Y_t, Y_{t-k})}{\sqrt{Var(Y_t) * Var(Y_{t-k})}} + \gamma(k) = \rho(Y_t, Y_{t-k}) = \frac{cov(Y_t, Y_{t-k})}{\sqrt{Var(Y_t) * Var(Y_{t-k})}} \end{gathered} \end{equation*} Свойства стационарного (в ШС) ВР -\begin{itemize} -\item $EY_t = \mu$ -\item $Cov(Y_t, Y_{t+\tau}) = E[(Y_T - EY_t)(Y_{t+\tau}-EY_{t+\tau})] = \gamma(\tau)$ -\end{itemize} +\begin{equation*} + \begin{gathered} +EY_t = \mu; Var(Y_t) = \sigma^2\\ +Cov(Y_t, Y_{t+\tau}) = E[(Y_T - EY_t)(Y_{t+\tau}-EY_{t+\tau})] = \gamma(\tau) = \gamma_\tau\\ +\gamma(0) = (\gamma_0) = cov(Y_t, Y_t) = Var(Y_t)\\ +\rho(Y_t, Y_{t+\tau}) = \frac{cov(Y_t,Y_{t+\tau})}{\sqrt{Var(Y_t) * Var(Y_{t+\tau})}} = \frac{\gamma(\tau)}{\gamma(0)} = \rho(\tau) = \rho(0) = \frac{\gamma(0)}{\gamma(0)} = 1 + \end{gathered} +\end{equation*} + Чтобы определнить степень зависимости, лучше использовать нормальные величины. \subsection{Свойство Гауссова процесса} -Функции распределения Гауссова процесса любого .. +Функции распределения Гауссова процесса любого порядка определяются вектором математических ожиданий и ковариационной матрицей. Следовательно из слабой стационарности следует строгая стационарность. + +Гауссовский белый шум. Модель процесса +\[ Y_t = \xi_t, \xi_t = N(0, \sigma^2)\] + +Свойства процесса +\begin{equation*} + \begin{gathered} + EY_t = 0, Var Y_t = \sigma^2\\ + \gamma_j = \rho_j = 0 \iff j \neq 0 + \end{gathered} +\end{equation*} +Обозначение $\xi_t\sim WN(0, \sigma^2)$ + +\subsection{Основные определения} +\begin{itemize} +\item Ковариации и корреляции между элементами $y_t$ и $y{t+\tau}$ процесса называются автоковариациями и автокорреляциями. +\item Последовательность автокорреляций называется автокорреляционной функцией процесса. +\item График автокорреляционной функции называется кореллограммой. +\end{itemize} \subsection{Оператор сдвига} -Оператором сдвига называется такое преобразование временного ряда, которое смещает ряд на один временной интервал +Оператором сдвига называется такое преобразование временного ряда, которое смещает ряд на один временной интервал назад \begin{equation*} \begin{gathered} LY_t = Y_{t-1}\\ - L^kY_t = Y_{t-k} + L^kY_t = Y_{t-k}\\ + (\alpha L^k)Y_t=\alpha(L^kY_t)=\alpha Y_{t-k}\\ + (\alpha L^k + \beta L^m)Y_t= \alpha L^kY_t + \beta L^mY_t = \alpha Y_{t-k} + \beta Y_{t-m}\\ + L^{-k}Y_t=T_{t+k} \end{gathered} \end{equation*} например @@ -253,26 +320,39 @@ $\sigma$ -алгебра F - набор подмножеств (подмноже Y_t - 0.5Y_{t-1}+0.6Y_{t-4}-0.3Y_{t-5} = c+\xi_t \end{gathered} \end{equation*} -\subsection{Теорема Вольда} -Любой стационарный вШС случайный процесс без детерминированной составляющей может быть представлен в виде -\[ Y_t - \mu = \sum_{j=0}^\infty \beta_j \xi_{t-j} \] -Если в разложении Вольда случайного процесса присутствует только конечное число членов, то такой процесс называется моделью скользящего среднего (MA, moving average). +\subsection{Теорема Вольда} +Любой стационарный в широком смысле случайный процесс без детерминированной составляющей может быть представлен в виде +\[ Y_t - \mu = \sum_{j=0}^\infty \beta_j \xi_{t-j}, \] +где $\sum_{j=0}^\infty \beta_j < \infty, E(\xi_t) = 0; E(Y_t) = \mu; Var(\xi_t)=\sigma^2; cov(\xi_i, \xi_j) = 0 \iff i \neq j$. + +Если в разложении Вольда случайного процесса присутствует только конечное число членов, то такой процесс называется моделью скользящего среднего (MA(q), moving average). +\[Y_t - \mu = \sum_{j=0}^\q \beta_j\xi_{t-j} \] Различные формы представления МА \begin{itemize} -\item исходный ряд -\item центрирование -\item центрированный процесс -\item с использованием оператора сдвига +\item исходный ряд $Y_1, ..., Y_t, ...$ +\item центрированный процесс $y_t = Y_t - \mu$ +\item $MA(q)$ центрированного процесса $y_t = \sum_{j=0}^\q \beta_j\xi_{t-j}$ +\item с использованием оператора сдвига $y_t = B(L)\xi_t$ + \[ y_t = \sum_{j=0}^\q(\beta_jL^j)\xi_{t} = (1 + \beta_1L + \beta_2L^2 + ... + \beta_qL^q) \xi_t\] \end{itemize} -Обратимый процесс - это процесс, при котором существует такой оператор, при котором сумма операндов равна единице. Для бесконечных процессов условие обратимости находить очень сложно. +Обратимый процесс -- это процесс, при котором существует такой оператор, при котором сумма операндов равна единице. Для бесконечных процессов условие обратимости находить очень сложно. + +Процесс $y_t=\xi_t+\beta_1\xi_{t-1}+\beta_2\xi_{t-2}+...+\beta_q\xi_{t-q}=B(L)\xi_t$ обратим, если для него существует представление $A(L)y_t=\xi_t$ такое, что $A(L) * B(L) = 1$. Можем для процесса построить характеристическое уравнение (взять коэффициенты и приравнять нулю). Если корни характеристического уравнения по модулю больше 1, то процесс обратим. +\subsection{Свойства процесса MA(q)} +\begin{enumerate} +\item Процесс MA(q) стационарен, так как он представляет собой частный случай разложения Вольда. +\item Процесс $y_t = (1 + \beta_1L + \beta_2L^2 + ... + \beta_qL^q) \xi_t$ обратим, если корни характеристического уравнения по модулю больше единицы + \[ |\frac{1}{z_j}| < 1, |z_j| > 1, j = 1,2,...,q \] +\end{enumerate} + \subsection{Процесс авторегрессии} -Для того, чтобы процесс авторегрессии был стационарным необходимо, чтобы корни характеристического уравнения были по модулю больше единицы +Для того, чтобы процесс авторегрессии был стационарным необходимо, чтобы корни характеристического уравнения $A(z) = 1-\alpha_1\lambda-\alpha_2\lambda^2-...-\alpha_k\lambda^k = 0$ были по модулю больше единицы Пример. Процесс МА \begin{equation*} @@ -402,7 +482,12 @@ $ARIMA(p, d, q);$ Если ряд -- стационарный, то строим Например, функция получится -(1) +\begin{figure}[H] + \centering + \fontsize{12}{1}\selectfont + \includesvg[scale=1.01]{pics/04-tsaf-00-acf.svg} +\end{figure} + видно, что первые три значения (лаги) отличаются (нулевой равен единице, это белый шум, там н е может быть корелляций), а все последующие незначительно отличаются от нуля. Получим одну из моделей \hrf{eq:arima-models} котороые возможно считать по АРИМА с нужными параметрами. По автокорреляции мы видим, какие варианты моделей возможны. для каждой модели строим распечатки и делаем диагностику. diff --git a/pics/04-bdaisdt-00-roc-bad.png b/pics/04-bdaisdt-00-roc-bad.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae23c679d765d415c6a9ed11f446b883de61cf1 GIT binary patch literal 35166 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 l-`M*9*Sr7U& + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + +