Skip to main content
LibreTexts - Ukrayinska

1.3: Усунення компонентів тренду

  • Page ID
    97241
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    У цьому розділі розроблено три різні методи оцінки тенденції моделі часових рядів. Передбачається, що має сенс постулювати модель (1.1.1) з\(s_t=0\) для всіх\(t\in T\), тобто

    \[X_t=m_t+Y_t, t\in T \tag{1.3.1} \label{Eq131} \]

    де (без втрати спільності)\(E[Y_t]=0\). Зокрема, обговорюються три різні методи: (1) оцінка найменших квадратів\(m_t\), (2) згладжування за допомогою ковзних середніх і (3) різниця.

    Метод 1 (Оцінка найменших квадратів) Часто корисно припустити, що компонент тренду може бути змодельований відповідним чином поліномом,

    \[ m_t=b_0+b_1t+\ldots+b_pt^p, \qquad p\in\mathbb{N}_0. \nonumber \]

    При цьому невідомі параметри\(b_0,\ldots,b_p\) можна оцінити методом найменших квадратів. У поєднанні вони дають оцінену поліноміальну тенденцію

    \[ \hat{m}_t=\hat{b}_0+\hat{b}_1t+\ldots+\hat{b}_pt^p, \qquad t\in T, \nonumber \]

    де\(\hat{b}_0,\ldots,\hat{b}_p\) позначають відповідні оцінки найменших квадратів. Зверніть увагу, що замовлення\(p\) не оцінюється. Його повинен вибрати статистик - наприклад, оглянувши графік часових рядів. Залишки\(\hat{Y}_t\) можна отримати як

    \[ \hat{Y}_t=X_t-\hat{m}_t=X_t-\hat{b}_0-\hat{b}_1t-\ldots-\hat{b}_pt^p, \qquad t\in T. \nonumber \]

    Про те, як оцінити правильність посадки приталеного тренда, буде предметом розділу 1.5 нижче.

    Приклад 1.3.1 (Рівень озера Гурон). Ліва панель малюнка 1.7 містить часові ряди середньорічних рівнів води в футах (зменшені на 570) озера Гурон з 1875 по 1972 рік. Реалізація процесу
    \ [
    x_t=\ mbox {(Середній рівень води озера Гурон за рік $1874+t$)} -570,
    \ qquad t=1,\ ldots,98.
    \ nonumber\] Здається,
    існує лінійне зниження рівня води, і тому доцільно пристосувати поліном порядку один до даних. Оцінювання найменших квадратів оцінювачів надає нам значення

    \[ \hat{b}_0=10.202 \qquad\mbox{and}\qquad \hat{b}_1=-0.0242 \nonumber \]

    для перехоплення і нахилу відповідно. Отримані\(\hat{y}_t=\hat{Y}_t(\omega)\) спостережувані залишки наносяться проти часу в правій панелі малюнка 1.7. У даних не залишилося явної тенденції. З іншого боку, сюжет не сильно підтримує стаціонарність залишків. Додатково в даних є докази залежності.

    Щоб відтворити аналіз в R, припустимо, що дані зберігаються в файлі lake.dat. Потім скористайтеся наступними командами.

    > озеро = читання.таблиця (» lake.dat «)
    > озеро = ts (озеро, початок = 1875)
    > t = 1: довжина (озеро)
    > lsfit = lm (озеро $^\ mathrm {\ sim} $t)
    > ділянка (t, озеро, xlab ="», ylab = "»)
    > рядки (lsfit {$\} fit)


    Функція lm підходить до лінійної моделі або лінії регресії до даних озера Гурон. Для побудови як вихідного набору даних, так і встановленої лінії регресії в одному графіку, ви можете спочатку побудувати рівні води, а потім використовувати функцію ліній для накладання прилягання. До залишків, що відповідають лінійній моделі, можна отримати доступ за допомогою команди lsfit$resid.

    \ end {exmp}

    Метод 2 (Згладжування за допомогою ковзних середніх)\((X_t\colon t\in\mathbb{Z})\) Дозволяти бути стохастичним процесом, що слідує за моделлю\(\ref{Eq131}\). Виберіть\(q\in\mathbb{N}_0\) і визначте двосторонню ковзну середню
    \ begin {рівняння}\ label {
    eq:wt} w_t=\ frac {1} {2q+1}\ sum_ {j=-q} ^qx_ {t+j},\ qquad t\ in\ mathbb {Z}. \ tag {1.3.2}\ end {equation}
    Випадкові величини\(W_t\) можуть бути використані для оцінки компонента\(m_t\) тренду наступним чином. Спочатку зауважте, що
    \ [
    w_t=\ frac {1} {2q+1}\ sum_ {j=-q} ^qm_ {t+j} +\ frac {1} {2q+1}\ sum_ {j=-q} ^qy_ {t+j}\ приблизно m_t,
    \ nonumber\]
    припускаючи, що тенденція локально приблизно лінійна і що середнє значення\(Y_t\) над інтервалом\([t-q,t+q]\) близький до нуля. Тому\(m_t\) можна оцінити по

    \[ \hat{m}_t=W_t,\qquad t=q+1,\ldots,n-q. \nonumber \]

    Зверніть увагу, що немає можливості оцінити перший\(q\) і останній терміни\(n-q\) дрейфу через двосторонній характер ковзних середніх. На відміну від цього, можна також визначити односторонні ковзні середні, дозволяючи

    \[ \hat{m}_1=X_1,\qquad \hat{m}_t=aX_t+(1-a)\hat{m}_{t-1},\quad t=2,\ldots,n. \nonumber \]

    • Малюнок 1.8: Двостороння ковзна середня фільтрує W t для даних озера Гурон (верхня панель) та їх залишки (нижня панель) з пропускною здатністю q = 2 (зліва), q = 10 (середня) і q = 35 (праворуч).

    Рисунок 1.8 містить оцінки на\(\hat{m}_t\) основі двосторонніх ковзних середніх для даних озера Гурон Приклад 1.3.1. для вибраних варіантів\(q\) (верхня панель) та відповідних оціночних залишків (нижня панель).

    Фільтри ковзних середніх для цього прикладу можуть бути створені в R наступним чином:

    > t = 1: довжина (озеро)
    > ma2 = фільтр (озеро, сторони = 2, реп (1,5) /5)
    > ma10 = фільтр (озеро, сторони = 2, реп (1,21) /21)
    > ma35 = фільтр (озеро, сторони = 2, реп (1,71) /71)
    > ділянка (t, ma2, xlab = "», ylab = "», тип = "l»)
    > лінії (t, ma10); лінії (t, ma35)


    У ньому сторони визначають, чи буде використовуватися одно- або двосторонній фільтр. Словосполучення rep (1,5) створює вектор довжиною 5, при цьому кожен запис дорівнює 1.

    Більш загальні варіанти плавних ковзних середніх можна отримати наступним чином. Зверніть увагу, що у випадку двосторонньої версії\(W_t\) кожна змінна\(X_{t-q},\ldots,X_{t+q}\) отримує «вагу»\(a_j=(2q+1)^{-1}\). Таким чином, сума всіх ваг дорівнює одиниці. Те ж саме справедливо і для односторонніх ковзних середніх з вагами\(a\) і\(1-a\). Як правило, можна, отже, визначити більш плавний, дозволяючи

    \[\hat{m}_t=\sum_{j=-q}^qa_jX_{t+j}, \qquad t=q+1,\ldots,n-q, \tag{1.3.3} \label{Eq133} \]

    де\(a_{-q}+\ldots+a_q=1\). Ці загальні ковзні середні (двосторонні та односторонні) прийнято називати лінійними фільтрами. Існує незліченна кількість варіантів для ваг. Той, що тут\(a_j=(2q+1)^{-1}\), має ту перевагу, що лінійні тенденції проходять неспотворенно. У наступному прикладі введено фільтр, який пропускає кубічні тренди без спотворень.

    Приклад 1.3.2 (15-бальне ковзне середнє Спенсера). Припустимо, що фільтр на дисплеї\(\ref{Eq133}\) визначається вагами\(|j|>7\), що задовольняють\(a_j=0\) if,\(a_j=a_{-j}\) і
    \ [
    (a_0, a_1,\ ldots, a_7) =\ frac {1} {320} (74,67,46,21,3, -5, -6, -3).
    \ nonumber\]
    Потім відповідні фільтри проходять кубічні тренди\(m_t=b_0+b_1t+b_2t^2+b_3t^3\) без спотворень. Щоб побачити це, зауважте, що
    \ begin {align*}
    \ sum_ {j=-7} ^7a_j=1\ qquad\ mbox {і}
    \ qquad\ sum_ {j=-7} ^7j^ra_j=0,\ qquad r=1,2,3.
    \ end {align*}
    Тепер застосуйте пропозицію 1.3.1 нижче, щоб прийти до висновку. Припускаючи, що спостереження знаходяться в даних, використовуйте команди R

    > а = c (-3, -6, -5, 3, 21, 46, 67, 74, 67, 46, 21, 3, -5, -6, -3) /320
    > s15 = фільтр (дані, сторони = 2, а)

    застосувати 15-бальний ковзний середній фільтр Спенсера. У цьому прикладі також пояснюється, як вказати загальний індивідуальний фільтр для даного набору даних.

    Пропозиція 1.3.1. Лінійний фільтр (1.3.3) проходить многочлен ступеня\(p\) тоді і тільки тоді, коли
    \ [
    \ sum_ {j} a_j=1\ qquad\ mbox {і}\ qquad\ sum_ {j} j^ra_j=0,\ qquad r=1,\ ldots, p.
    \ nonumber\]
    Доказ. Досить показати, що\(\sum_ja_j(t+j)^r=t^r\) для\(r=0,\ldots,p\). Використовуючи біноміальну теорему, запишіть
    \ begin {align*}
    \ sum_ja_j (t+j) ^r
    &=\ sum_ja_j\ sum_ {k=0} ^r {r\ виберіть k} t^kj^ {r-k}\\ [.2см]
    &=\ sum_ {k=0} ^r {r\ виберіть k} t^k\ left (\ sum_ {k=0} ja_jj^ {r-k}\ праворуч)\\ [.2см]
    &=t^r
    \ кінець {вирівняти *}
    для будь-якого,\(r=0,\ldots,p\) якщо і тільки якщо дотримуються вищевказані умови.

    • Малюнок 1.9: Графіки часових рядів спостережуваних послідовностей (x t) на лівій панелі та (2 x t) у правій панелі відмінні дані озера Гурон, описані в прикладі 1.3.1.

    Спосіб 3 (Диференціювання) Третя можливість видалення термінів дрейфу із заданого часового ряду є різниця. Для цього введіть оператор різниці\(\nabla\) як
    \ [
    \ nabla x_t=x_t_x_ {t-1} =( 1-B) x_t,\ qquad t\ in T,
    \ nonumber\]
    де\(B\) позначає оператор зворотного зсуву\(BX_t=X_{t-1}\). \(\nabla\)Повторне застосування визначається інтуїтивно зрозумілим способом:
    \ [
    \ nabla^2x_T=\ nabla (\ nabla x_t) =\ nabla (x_T-x_ {t-1}) =x_T-2x_ {t-1} +X_ {t-2}
    \ nonumber\]
    і, рекурсивно, уявлення слідують також для вищих сил\(\nabla\). Припустимо, що оператор різниці застосовується до лінійного тренду\(m_t=b_0+b_1t\), то

    \ [\ nabla m_t=m_t_m_ {t-1} =b_0+b_1t-b_0-b_1 (t-1) =b_1
    \ nonumber\]
    який є константою. Індуктивно це призводить до висновку, що для полінома дрейф ступеня\(p\), а саме,\(\nabla^pm_t=p!b_p\) і\(m_t=\sum_{j=0}^pb_jt^j\), таким чином, постійний. Застосовуючи цю техніку до стохастичного процесу форми (1.3.1) з поліноміальним дрейфом\(m_t\), виходить потім
    \ [
    \ nabla^px_t=P! b_p+\ nabla^p y_t,\ qquad t\ in T
    \ nonumber\]
    Це стаціонарний процес із середнім значенням\(p!b_p\). Графіки на малюнку 1.9 містять перше і друге відмінності для даних озера Гурон. У R вони можуть бути отримані з команд

    > d1 = diff (озеро)
    > d2 = diff (d1)
    > пар (mrow = c (1,2))
    > plot.ts (d1, xlab= "», ylab= "»)
    > plot.ts (d2, xlab = "», ylab= "»)

    Наступний приклад показує, що оператор різниці також може бути застосований до випадкової ходьби для створення стаціонарних даних.

    Приклад 1.3.3. \((S_t\colon t\in\mathbb{N}_0)\)Дозволяти випадкова прогулянка Приклад 1.2.3. Якщо оператор різниці\(\nabla\) застосовується до цього стохастичного процесу, то
    \ [
    \ nabla S_t=S_t_s_ {t-1} =z_t,\ qquad t\ in\ mathbb {N}.
    \ nonumber\]
    Іншими словами, не\(\nabla\) робить нічого іншого, крім відновлення вихідної послідовності білого шуму, яка була використана для побудови випадкової прогулянки.