<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>c_10.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Fri, 02 Feb 2024 06:42:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>c_10.log</title>
            <url>https://velog.velcdn.com/images/c_10/profile/6dc455bf-1e2d-46fe-b4aa-69cd54a5752d/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. c_10.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/c_10" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[Computer Vision] Xception: Deep Learning with Depthwise Separable Convolutions]]></title>
            <link>https://velog.io/@c_10/Computer-Vision-Xception-Deep-Learning-with-Depthwise-Separable-Convolutions</link>
            <guid>https://velog.io/@c_10/Computer-Vision-Xception-Deep-Learning-with-Depthwise-Separable-Convolutions</guid>
            <pubDate>Fri, 02 Feb 2024 06:42:00 GMT</pubDate>
            <description><![CDATA[<h1 id="problem-statement-motivation">Problem Statement (Motivation)</h1>
<h2 id="1-cross-channel-correlation과-spatial-correlation을-더욱-강력하게-분리해서-mapping할-수-없을까">1. cross-channel correlation과 spatial correlation을 더욱 강력하게 분리해서 mapping할 수 없을까?</h2>
<ul>
<li>Inception hypothesis보다 훨씬 더 strong한 hypothesis를 세우고,
cross-channel correlation과 spatial correlation을 
완전히(Extreme) 별도로 mapping할 수 있다고 하는 것이 합리적일까?<ul>
<li><strong>Inception의 기본 hypothesis</strong><ul>
<li>cross-channel correlation과 spatial correlration이 
충분히 분리되어있으므로, 그들을 함께 mapping하지 않는 게 유리하다.</li>
<li>기존 convolution filter 1개는 cross-channel correlation과 spatial correlation을 동시에 mapping 한다.
(3차원 중 2차원은 spatial, 1차원은 channel)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="contribution">Contribution</h1>
<h2 id="1-inception에-depthwise-separable-convolutions를-추가한-새로운-deep-neural-network인-xception을-제안한다">1. Inception에 depthwise separable convolutions를 추가한 새로운 deep neural network인 “Xception”을 제안한다.</h2>
<ul>
<li>Inception의 Extreme 버전으로 Xception 이라 부른다.</li>
<li>regular한 convolution과 depthwise separable convolution operation 사이의 중간 단계로서
CNN에서 Inception modules을 잘 이해할 수 있도록 한다.</li>
</ul>
<h3 id="xception-architecture">Xception Architecture</h3>
<ul>
<li><p>Inception + depthwise separable convolution + residual connection</p>
<ul>
<li><p>residual conncetion를 포함한 depthwise separable convolution layer
선형적으로 쌓인 stack 구조</p>
<p><img src="https://velog.velcdn.com/images/c_10/post/329672e9-2d07-443b-bc40-fa40fba5a056/image.png" alt=""></p>
</li>
</ul>
</li>
</ul>
<pre><code>- 36 convolution layers (convolutional feature extraction)
    - 14 modules
    - (처음과 마지막을 제외한) 모든 layer가 linear residual connections를 가지고 있다.
- our convolutional base : a logistic regression layer
- 이러한 architecture는 define과 modify를 쉽게 한다.</code></pre><h1 id="hypothesis">Hypothesis</h1>
<h2 id="1-xception">1. Xception</h2>
<h3 id="a-xception의-module-구조를-통해-cnn의-feature-map을-기존-inception보다-훨씬-명확하게-cross-channel-correlation과-spatial-correlation을-별도로-mapping할-수-있다">a. Xception의 module 구조를 통해 CNN의 feature map을 기존 Inception보다 훨씬 명확하게 cross-channel correlation과 spatial correlation을 별도로 mapping할 수 있다.</h3>
<p><strong>Module structure</strong></p>
<ul>
<li>depthwise separable convolutions와 다르게, 
1x1 convolution를 통해 cross-channel correlation을 산출하고, 
이후에 spatial correlation을 산출한다.
<img src="https://velog.velcdn.com/images/c_10/post/c5584ae5-34e5-4da9-9048-1cc1a2de703c/image.png" alt=""><ul>
<li><code>1x1 conv</code> : 먼저 Input에 대한 cross-channel correlation을 mapping → Input을 각 channel마다 독립적으로 형성한다.</li>
<li><code>Output channels</code> : 각 channel별로 구분된 값을 feeding</li>
<li><code>3x3</code>  : 각 channel마다의 spatial correlation을 mapping, filter의 개수는 channel의 개수만큼 존재한다.</li>
</ul>
</li>
<li>완전히 cross-channel correlation과 spatial correlation을 완전히 구분하였다.</li>
</ul>
<h1 id="main-experiments">Main Experiments</h1>
<h2 id="1-기존-model과의-성능비교">1. 기존 Model과의 성능비교</h2>
<p><strong>좋은 성능의 CNN 모델은 VGG-16, residual connection을 가진 ResNet-152, 기존 Inception 모델인 Inception V3</strong></p>
<p><img src="https://velog.velcdn.com/images/c_10/post/8f796e85-9777-4f82-990d-b1ba924b608c/image.png" alt=""></p>
<ul>
<li>Inception + depthwise separable convolution + residual connection인 Xception이 ImageNet Classification performance가 가장 좋았다.<ul>
<li>단, 기존 Inception에 비해 큰 성능 향상 X</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/c_10/post/8b497b93-e78f-4803-8a2e-cd94f8ada8a5/image.png" alt=""></p>
<ul>
<li>ImageNet을 통한 training에서 validation accuracy를 확인해본 결과, Xception이 더 빠르고, 더 높은 성능을 기록한 것을 알 수 있다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/c_10/post/5925fe4e-0003-40be-9e68-f5d70ad393ee/image.png" alt=""></p>
<ul>
<li>다른 데이터셋인 JFT를 통해 Classification performance를 측정한 결과, Xception이 가장 좋은 성능을 보였다.</li>
</ul>
<p><img src="https://velog.velcdn.com/images/c_10/post/e0828cbe-c2db-41d7-9b31-54b05f4f92b2/image.png" alt=""></p>
<ul>
<li>JFT를 통한 training에서 validation accuracy를 확인해본 결과, Xception이 더 빠르고, 더 높은 성능을 기록한 것을 알 수 있다.</li>
</ul>
<p><strong>Model 크기와 step당 속도</strong>
<img src="https://velog.velcdn.com/images/c_10/post/380462e4-c2b9-4d62-8f4a-20a6b91026e0/image.png" alt=""></p>
<ul>
<li>cross-channel correlation과 spatial correlation이 명확히 구분한 것이 parameter를 줄이는 효과가 있지만, Inception V3와 Xception을 비교했을 때, model 크기와 속도 측면에서 큰 차이는 없었다.</li>
</ul>
<h3 id="additional-experiments">Additional Experiments</h3>
<p>(성능 향상 및 기존 방법을 인용한 실험)</p>
<ol>
<li><p>비-선형성 요소인 ReLU 여부</p>
<ul>
<li>depthwise separable convolution과 xception의 차이는 ReLU의 여부이다. (xception에 추가를 함)
<img src="https://velog.velcdn.com/images/c_10/post/a2f8ee91-9245-476b-b4c9-5810f050f21a/image.png" alt=""></li>
<li>ReLU를 적용하지 않은 모델이 가장 빠르게 높은 성능을 달성하였다.</li>
<li>spatial convolution이 적용된 중간단계의 feature space의 깊이에 따라 ReLU 적용 여부가 결정될 수 있다.<ul>
<li>deep할 때, ReLU가 도움될 수 있지만, shallow할 때, 정보의 손실을 발생시킬 수 있다.</li>
</ul>
</li>
</ul>
</li>
<li><p>Residual connection 여부
<img src="https://velog.velcdn.com/images/c_10/post/1dbffde4-7a8b-435a-a4c8-db8de9614adf/image.png" alt=""></p>
<ul>
<li>residual connection을 통해 convergence의 speed와 성능 향상을 돕는다.</li>
<li>residual을 포함한 Xception이 더 좋은 성능을 보이지만, 
모든 depthwise separable convolution에서 residual을 사용해야 한다는 것은 아니다.</li>
</ul>
</li>
</ol>
<h1 id="ablation-study">Ablation Study</h1>
<p>다른 방식으로 cross-channel correlation과 spatial correlation을 구분했던 Inception V3와의 성능비교`
→ main experiments에 포함된 내용</p>
<h1 id="etc"><strong>etc</strong></h1>
<ul>
<li><strong>depthwise separable convolutions란?</strong>
<img src="https://velog.velcdn.com/images/c_10/post/963142d6-5463-40a0-bc77-b70f9672e83a/image.png" alt=""></li>
<li>이미지 출처 : <a href="https://gaussian37.github.io/dl-concept-dwsconv/">https://gaussian37.github.io/dl-concept-dwsconv/</a></li>
<li>Depthwise 이후에 Pointwise convolution을 진행하는 것.</li>
<li>Depthwise (spatial)<ul>
<li>한 개의 filter가 한 channel에 대해서만 연산을 진행</li>
<li>filter의 개수는 channel의 개수만큼 필요하다.</li>
</ul>
</li>
<li>Pointwise (channel)<ul>
<li>convoltion filter size가 1x1이고 channel 수는 
input image의 channel 수와 동일하다.</li>
</ul>
</li>
<li>이런식으로 regular convolution 연산을 
  2단계로 나누어 computation과 parameter를 줄인 방식이다.</li>
</ul>
<p><strong>재미있었던 부분</strong></p>
<ul>
<li><p>논문에서 “ImageNet과 비교하여 JFT에서 더 큰 성능향상을 이뤘다.”, “Inception V3가 ImageNet에 focusing 해서 발달했기 때문에, 특정한 task에 over-fit된 구조일지도 모른다” 는 의심하는데, 이러한 측면으로 바라볼 수 있는게 신기했다.</p>
</li>
<li><p>기존 Inception과 depthwise separable conv 사이에 놓인
Inception module의 중간단계 계산이 가능한다.</p>
<ul>
<li>실제로, (계산을 가능하게 해주는) discrete한 spectrum이 존재한다.</li>
<li>discrete spectrum?
: 앞에서 channel 별로 구분시켜놓은 조각들 → channel의 개수에 따라 parameter화 됨.</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Computer Vison] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows]]></title>
            <link>https://velog.io/@c_10/Computer-Vison-Swin-Transformer-Hierarchical-Vision-Transformer-using-Shifted-Windows</link>
            <guid>https://velog.io/@c_10/Computer-Vison-Swin-Transformer-Hierarchical-Vision-Transformer-using-Shifted-Windows</guid>
            <pubDate>Fri, 02 Feb 2024 06:21:57 GMT</pubDate>
            <description><![CDATA[<h1 id="problem-statement-motivation">Problem Statement (Motivation)</h1>
<h2 id="1-nlp-분야에서-사용하는-transformer를-vision에-적용하려는-시도가-있었으나-두-domain-간의-차이로-인한-어려움이-존재하여-cnn을-대체하기-힘들다">1. NLP 분야에서 사용하는 Transformer를 vision에 적용하려는 시도가 있었으나, 두 domain 간의 차이로 인한 어려움이 존재하여 CNN을 대체하기 힘들다.</h2>
<h3 id="11-scale"><strong>1.1 scale</strong></h3>
<ul>
<li>NLP의 basic element : the word tokens</li>
<li>현재 존재하는 Transformer-based model은 token이 fiexd-scale</li>
<li><strong>반면, CV의 basic element는 scale이 매우 다양할 수 있다.</strong>
→ 현존하는 Transformer-based model은 vision에 적합하지 않다.</li>
</ul>
<h3 id="12-high-resolution"><strong>1.2 high resolution</strong></h3>
<ul>
<li>현재 존재하는 많은 vision task는 고해상도 이미지를 필요로 한다.</li>
<li>예시 : semantic segmentation<ul>
<li>pixel 단에서의 dense prediction이 필요하기 때문에 고해상도 이미지가 필요하다.</li>
<li>Transformer에서 사용되는 self-attention의 compatation은 quadratic하다.<ul>
<li><strong>이미지의 해상도가 높을수록 computaiton이 quadratic하게 증가한다.</strong></li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="contribution">Contribution</h1>
<h2 id="1-shifted-window로-representation을-계산하는-hierarchical-transformer인-swin-transformer를-제안한다">1. Shifted window로 representation을 계산하는 hierarchical Transformer인 swin transformer를 제안한다.</h2>
<ul>
<li><p>계층적으로 feature map을 구축하여 고해상도의 feature map을 얻을 수 있고,</p>
</li>
<li><p>split된 image patch들을 merge하여 계층적인 feature map을 구축하고, 
각 local winodw 내에서만 self-attention을 계산하기 때문에,
더 깊은 layer에서도 linear한 computaiton complexity를 가진다.</p>
</li>
<li><p>핵심 과정</p>
<ul>
<li><p>처음에는 patch size를 작게하고, 계층적으로 주변 patch들을 merge한다.</p>
</li>
<li><p>self-attention 계산은 figure 1의 붉은 경계 내부에서 local하게 진행한다.</p>
<ul>
<li>붉은 경계 : 이미지를 분할하면서 겹치지 않는 <strong>window</strong><br><img src="https://velog.velcdn.com/images/c_10/post/763ce387-0cad-406e-85da-4d6de21f9f16/image.png" alt=""></li>
</ul>
</li>
<li><p>shifted window를 통해 layer 단위로 window의 경계가 바뀌게 된다.</p>
<ul>
<li>이 때 각 window 내부에서 계산한 self-attention 값을 cross하여 이전 layer의 window를 연결한다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="11-overall-architecture">1.1 Overall architecture</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/66bce475-14a4-4def-be6d-3cc0d616e67c/image.png" alt=""></p>
<ul>
<li><strong><em>Images</em></strong> : input RGB</li>
<li><strong><em>Patch Partition</em></strong> : ViT같은 Patch 단위로 Split해주는 역할 ( patch size $4 \times 4$ )</li>
<li><strong><em>“Stage 1”</em></strong><ul>
<li><strong><em>Linear Enbedding</em></strong> : raw-valued feature를 임의의 차원 (=channel 수) <strong><em>C</em></strong>로 project한다.</li>
<li><strong><em>Swin Transformer Block</em></strong><ul>
<li>각 patch(token)에 적용하고, token의 수를 ( $\frac{H}{4} \times \frac{W}{4} \times C$ ) 로 유지한다. (patch size에 따라)</li>
</ul>
</li>
</ul>
</li>
<li><strong><em>“Stage 2”</em></strong><ul>
<li><strong><em>“Patch Merging”</em></strong><ul>
<li>hierarchical represantation을 제공하기 위해, token의 수를 줄인다.<ul>
<li>down sample되는 해상도에 2를 곱한 만큼 줄어든다.</li>
</ul>
</li>
<li>주변의 2 x 2 patch를 group으로 하여 Patch Merging을 진행한다. (token 수 4배 감소)</li>
<li>4C 차원의 병합된 feature를 linear layer에 통과시킨다.</li>
<li>output의 차원은 2C 차원이 된다.</li>
</ul>
</li>
<li><strong><em>Swin Transformer Block</em></strong><ul>
<li>각 patch(token)에 적용하고, token의 수를 ( $\frac{H}{8} \times \frac{W}{8} \times 2C$ ) 로 유지한다. (patch size에 따라)</li>
</ul>
</li>
</ul>
</li>
<li><strong><em>“Stage 3”, “Stage 4”</em></strong> 는 <strong><em>“Stage 1”, “Stage 2”</em></strong> 를 한 번 더 반복하는 것이다.<ul>
<li>output의 해상도는 ( $\frac{H}{16} \times \frac{W}{16} \times 4C$ ), ( $\frac{H}{32} \times \frac{W}{32} \times 8C$ ) 까지 변형된다.</li>
</ul>
</li>
<li>이러한 Stage들을 통해 
기존의 CNN과 같이 같은 feature map의 해상도와 함께 
hierarchical representation을 유기적으로 제공한다.<ul>
<li>결과적으로 기존의 다양한 vision task에서 사용한 method를 편리하게 대체할 backbone network이다.</li>
</ul>
</li>
</ul>
<h3 id="12-swin-transformer-block">1.2 Swin Transformer block</h3>
<ul>
<li>shitfed window 연산을 포함한 standard multi-head self attention(<strong><em>W-MSA, SW-MSA</em></strong>)을 대체하는 module이고, 모든 layer에 동일하게 적용한다.<ul>
<li><strong><em>W-MSA/SW-MSA</em></strong> : Regular/Shifted Window Multi-head Self Attetnion</li>
</ul>
</li>
<li>LayerNorm(<strong><em>LN</em></strong>)은 <strong><em>MSA</em></strong> module과 <strong><em>MLP</em></strong> 전에,</li>
<li>residual connection은 각 module 이후에 적용된다.</li>
<li><strong><em>MLP</em></strong> : 2-layer이고, 두 layer 사이의 GLEU를 적용하여 non-linearity를 부여한다.</li>
</ul>
<h3 id="13-shifted-window-based-self-attention">1.3 Shifted Window based Self-Attention</h3>
<ul>
<li>기존 Transformer 와 ViT는 모두 하나의 token과 그 외 다른 모든 token 간 관계를 계산하는 global self-attention 연산을 한다.<ul>
<li>이러한 global 연산이 quadratic complexity로 이끌었고, vision 분야에 맞지 않는 complexity이다.</li>
</ul>
</li>
</ul>
<h4 id="131-self-attention-in-non-overlapped-windows">1.3.1 <strong>Self-attention in non-overlapped windows</strong></h4>
<ul>
<li>효율적인 model을 구축하기 위해, local window 내부에서 self-attention을 진행하는 방법</li>
<li>window는 이미지를 서로 겹치지 않게 분할하여 고르게 배치된다.<ul>
<li>각 window에는 M x M 개의 patch가 존재하고, 
h x w 크기의 patch를 가지는 이미지에서 global/window-based MSA module의 computational complexity는 아래와 같다.</li>
</ul>
</li>
</ul>
<p>$$
Ω(MSA) = 4hwC^2 + 2(hw)^2C;
$$
$$
Ω({W-MSA}) = 4hwC^2 + 2M^2hwC;
$$</p>
<ul>
<li>$hw$ 는 이미지의 크기인데, 기존 $MSA$는 $hw$에 따라 quadratic하게 증가하는 반면,</li>
<li>$W-MSA$(window-based self-attention)는 고정된 $M$ 값이 추가되고, $hw$를 한 번만 곱하여,
이미지 크기 조정이 가능해졌다.</li>
</ul>
<h4 id="132-shifted-window-partitioning-in-successive-blocks">1.3.2 <strong>Shifted window partitioning in successive blocks</strong></h4>
<ul>
<li><p>window-based self-attention는 window간 connections이 부족하다.</p>
</li>
<li><p>1번 방식(<strong>Self-attention in non-overlapped windows)</strong>으로 computation을 효율적으로 유지하면서, 
연속된 Swin Transformer blocks에서 두 개로 분할된 구성 사이를 
번갈아가면서 <strong>Shifted window partitioning</strong>를 진행한다.
<img src="https://velog.velcdn.com/images/c_10/post/ce59d93a-238d-46d4-b8bc-efd993697cc2/image.png" alt=""></p>
<ul>
<li><p>첫 번째 module에서 좌상단 pixel부터 시작하는 regular window partitioning 전략을 사용한다.</p>
</li>
<li><p>그리고 8x8 feature map를 전체 2x2 window 형태가 되도록 균등하게 나눈다. (window size : 4)</p>
<ul>
<li>해석 : patch 단위로 이미지를 8x8 split하고, 전체 patch를 2x2 형태의 window로 grouping한다.</li>
</ul>
</li>
<li><p>그 후, 다음 module은 규칙적으로 분할된 window에서 window size의 절반만큼 위쪽, 오른쪽으로 shift하여, 
이전 layer의 window 구성에서 shifted window의 구성을 적용한다.</p>
</li>
<li><p>shifted window partitioning 기법을 적용하여 Swin Transformer block을 계산하면 아래와 같다.</p>
<p>$$
\hat z^l = {WMSA} (LN(z^{l-1}))+ z^{l-1};
$$</p>
<p>$$
z^l = MLP(LN(\hat z^l)) + \hat z^l
$$</p>
<p>$$
\hat z^{l+1} = {SWMSA} (LN(z^{l}))+ z^{l};
$$</p>
<p>$$
z^{l+1} = MLP(LN(\hat z^{l+1})) + \hat z^{l+1}
$$</p>
<ul>
<li>$\hat z^l, z^l$ : S(W)-MSA의 output feature</li>
<li>$l$ : $l$번째 block</li>
<li>$WMSA, SWMSA$ : regular/shifted window partitioning 구성을 각각 사용하여 window-base multi-head self-attention을 표현하였다.</li>
</ul>
</li>
<li><p>image classification, object detection, semantic segmentation 분야에서 효율적임을 알 수 있었다.</p>
</li>
</ul>
</li>
</ul>
<h4 id="133-efficient-batch-computation-for-shifted-configuration">1.3.3 <strong>Efficient batch computation for shifted configuration</strong></h4>
<ul>
<li><p>shifted window partitioning을 하게 되면, window의 개수가 증가한다. ( 2x2 → 3x3 )</p>
</li>
<li><p>window size도 기존 설정한 것보다 더 작아진다. (모든 window size 4x4 → 일부는 2x2)</p>
<ul>
<li>단순히 해결하려면 padding을 하여 기존 window size에 맞추면 되는데, computation이 증가한다.</li>
</ul>
</li>
<li><p>좌상단 방향으로의 cyclic-shifting(원형 이동)를 통한 more efficient batch computation approach를 제안한다.
  <img src="https://velog.velcdn.com/images/c_10/post/0612685b-336c-44dd-805f-4d29d9fa9b2a/image.png" alt=""></p>
<ul>
<li>shift 이후, batched window는 feature map 안에서 인접하지 않은 각각의 sub window로 구성되어 있다.<ul>
<li>그래서 masking mechanism으로 각 sub-window의 self-attention 계산량의 한계를 해결한다.</li>
</ul>
</li>
<li>cyclic-shift와 함께, batched window의 개수가 regular window partitaioning과 같을 때, efficient하다.<ul>
<li>efficient하다는 근거 → Table 5</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>이해한 내용으로 자세히 필기</strong>
<img src="https://velog.velcdn.com/images/c_10/post/dafc8bc1-4cf7-49f7-b8db-d2260db6e926/image.png" alt=""></p>
<ul>
<li>이를 masked MSA를 통해 해결? → self-attention을 할 때, masking을 해줌으로써 서로 간의 관계에 대한 정보는 없애고, 각 patch에 대한 정보는 계산한다.</li>
</ul>
</li>
</ul>
<h4 id="134-relative-position-bias">1.3.4 <strong>Relative position bias</strong></h4>
<ul>
<li>상대적인 위치에 대한 bias를 각 head에서 유사도를 계산할 때 포함한다.</li>
</ul>
<p>$$
Attention(Q,K,V) = SoftMax(QK^T/ \sqrt{d}+B)V
$$</p>
<ul>
<li>$B \isin R^{M^2 \times M^2}$ : relative position bias</li>
<li>$Q, K, V \isin R^{M^2 \times d}$ : query, key, value</li>
<li>$d$ : query/key dimension</li>
<li>$M^2$ : 한 개의 window 내의 patch 개수</li>
<li>상대적인 위치는 window의 axis별 범위를 $[-M+1, M-1]$ 로 부여한다.<ul>
<li>smaller-sized bias matrix : $\hat B \isin R^{(2M-1) \times (2M-1)}$</li>
<li>$B$의 값은 $\hat B$에서 가져온다,</li>
</ul>
</li>
<li>성능 향상 → Table 4에서 확인할 수 있다. (그치만 모든 상황에서 성능을 올리는 것은 X)</li>
<li>상대적인 위치는 pre-training을 통해 학습되고, 
fine-tuning 과정에서 model을 초기화하기 위해 
bi-cubic interpolation하여 다른 window size와 함께 사용될 수 있다.</li>
</ul>
<h1 id="hypothesis">Hypothesis</h1>
<h2 id="1-shifted-window--hierarchical-architecture">1. shifted window &amp; hierarchical architecture</h2>
<h3 id="11-shifted-window의-scheme는-self-attention-계산을-local-window와-겹치지-않게-제한함과-동시에-cross-window-connection도-허용하여-더-큰-efficiency를-가져다준다">1.1 shifted window의 scheme는 self-attention 계산을 local window와 겹치지 않게 제한함과 동시에, cross-window connection도 허용하여 더 큰 efficiency를 가져다준다.</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/d6c9ce29-1a4e-430a-893f-a7bab9ce8c2a/image.png" alt=""></p>
<ul>
<li>layer l (left)에서 일반적인 window로 분할된 한 scheme는 그 window 내부에서 각각 self-attention을 계산한다.</li>
<li>다음 layer l+1 (right) 은 window 분할이 shift되어, 새로운 window로 나뉜다.<ul>
<li>새로운 window 내부에서 각각 self-attention을 계산하고, 
layer l 에서 이전 window 내에서 계산한 값을 cross하여,
서로 다른 window 간 connection을 제공한다.</li>
</ul>
</li>
</ul>
<h3 id="12-hierarchical-architecture는-이미지-크기에-따라-linear한-complexity를-가진다">1.2 hierarchical architecture는 이미지 크기에 따라 linear한 complexity를 가진다.</h3>
<ul>
<li>이미지를 window가 겹치지 않게 분할하고, 그 범위 내에서 local하게 self-attention 연산을 진행하여 linear한 computational complexity를 가진다.</li>
<li>또한, 각 window 내의 patch 개수를 동일하게 하여 linear한 complexity를 가질 수 있다.</li>
</ul>
<h3 id="13-hierarchical-architecture는-다양한-scale에-대응하는-model의-flexibility를-가진다">1.3 hierarchical architecture는 다양한 scale에 대응하는 model의 flexibility를 가진다.</h3>
<ul>
<li>patch size를 작은 크기로 시작하여 주변과의 merge를 통해 점차 patch의 크기를 키운다.<ul>
<li>이를 통해 다양한 scale에 대응할 수 있게 된다.</li>
</ul>
</li>
<li>각 계층의 feature map를 이용하여 
편하게 FPN(Feature Pyramid Netwroks)이나 U-Net과 같은 
dense prediction에 필요한 advanced technique를 사용할 수 있다.</li>
</ul>
<h3 id="14-shifted-winrdow가-hardware에서-memory-access을-가능하게-하고">1.4 shifted winrdow가 hardware에서 memory access을 가능하게 하고,</h3>
<p>real-world latency와 관련하여 효율성을 가진다.</p>
<ul>
<li><p>qeury : 모든 patch</p>
</li>
<li><p>key : 같은 window 내의 qeury는 같은 key를 가진다.</p>
<p>  → 이러한 query, key는 hardware에서 memory access을 가능하게 한다.</p>
</li>
</ul>
<h1 id="main-experiments">Main Experiments</h1>
<p><img src="https://velog.velcdn.com/images/c_10/post/45f63954-36f4-4f40-86f6-b8bf86cc1675/image.png" alt=""></p>
<h2 id="1-vision-task에서-cnn을-능가하는-성능을-낼-수-있는지-검증하는-실험">1. vision task에서 CNN을 능가하는 성능을 낼 수 있는지 검증하는 실험</h2>
<ul>
<li><strong>Trasnformer-based, CNN-based 등 다른 backbone과 비교</strong></li>
</ul>
<h4 id="11-image-classification">1.1 Image Classification</h4>
<p><img src="https://velog.velcdn.com/images/c_10/post/302793e4-8a9d-487a-b6ad-980cfdcfec8d/image.png" alt=""></p>
<ul>
<li>(a) : 작은 dataset<ul>
<li>Transformer-based와 비교<ul>
<li>DeiT와 유사한 complexity를 가지지만, 더 좋은 성능을 가진다.</li>
</ul>
</li>
<li>Covolution Network와 비교<ul>
<li>RegNet, EfficientNet과 비교하여 더 좋은 speed-accuracy trade-off를 달성했다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/c_10/post/fc2893ed-3ddf-4862-8751-50e8b9d75088/image.png" alt=""></p>
<ul>
<li>(b) : 큰 dataset<ul>
<li>Swin-B 기준, 1K pre-trained model보다 1.8 ~ 1.9% 의 성능 향상을 얻었다.</li>
<li>Swin Transformer가 ViT보다 더 좋은 성능, 약간 더 낮은 FLOPs를 가진다.</li>
</ul>
</li>
</ul>
<h4 id="12-object-detection">1.2 Object Detection**</h4>
<p><img src="https://velog.velcdn.com/images/c_10/post/d13b5045-5488-4685-b148-9c8f047251a1/image.png" alt=""></p>
<ul>
<li>(a) : Method에 따른 ResNe(X)t과 비교<ul>
<li>parameter와 FLOPs가 더 크지만, 더 좋은 성능을 보인다.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/c_10/post/716b03b5-649b-4a56-9884-198a5ed310a6/image.png" alt=""></p>
<ul>
<li>(b) : Method 중 가장 성능이 좋은 Cascade Mask R-CNN을 통한 비교<ul>
<li>DeiT와 비교했을 때도 parameter와 FLOPs가 더 크지만, 더 좋은 성능을 보인다.</li>
</ul>
</li>
</ul>
<h4 id="13-semantic-segmentation">1.3 Semantic Segmentation**</h4>
<p><img src="https://velog.velcdn.com/images/c_10/post/33243236-1b47-4f67-a612-137ff1449e5f/image.png" alt=""></p>
<ul>
<li>(c) : System 단에서의 Method 별 비교<ul>
<li>Swin Transformer를 backbone으로 활용한 HTC framework가 가장 좋은 성능을 보인다.</li>
</ul>
</li>
</ul>
<h1 id="ablation-study">Ablation Study</h1>
<ul>
<li><p>shift, absolute position, relative position, scaled dot-product 등 유무에 따른 성능 실험
<img src="https://velog.velcdn.com/images/c_10/post/383fb35c-fec0-404e-a5c2-e4536ca3abd5/image.png" alt=""></p>
</li>
<li><p>cyclic shift에 따른 속도 차이 실험
<img src="https://velog.velcdn.com/images/c_10/post/c16f6491-23a3-4344-b4dd-e790535a9880/image.png" alt=""></p>
<ul>
<li>padding을 추가했을 때 계산 속도가 더 느려진다. (window 개수가 많아져서)</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] ARIMA 모델]]></title>
            <link>https://velog.io/@c_10/Time-Series-ARIMA-%EB%AA%A8%EB%8D%B8</link>
            <guid>https://velog.io/@c_10/Time-Series-ARIMA-%EB%AA%A8%EB%8D%B8</guid>
            <pubDate>Tue, 16 Jan 2024 10:22:33 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/arima.html">[Forecasting : Principles and Practice] 8장</a>을 참고하여 작성하였습니다.</p>
</blockquote>
<h1 id="8-arima-모델">8. ARIMA 모델</h1>
<ul>
<li>시계열 예측 방법 중 exponential smoothing과 함께 가장 널리 사용하는 방식</li>
<li>데이터에 나타나는 <em><strong>자기상관(autocorrelation)</strong></em> 을 표현하기 위해 만들어진 모델이다.<ul>
<li>exponential smoothing : 추세와 계절성을 표현</li>
</ul>
</li>
</ul>
<h2 id="81-정상성과-차분">8.1 정상성과 차분</h2>
<h3 id="811-정상성stationarity">8.1.1 정상성(Stationarity)</h3>
<ul>
<li>해당 시계열 데이터가 시점과 무관한 특징을 가진다.<ul>
<li>추세나 계절성이 존재 → 정상성 X</li>
<li>백색잡음인 시계열 데이터 → 정상성 O</li>
<li><strong>주기 O (추세 X, 계절성 X) → 정상성 O</strong><ul>
<li>주기는 고정된 길이를 가지고 있지 않고, 주기의 고점이나 저점이 어딘지 확실히 알 수 없다.</li>
</ul>
</li>
<li>일반적으로 정상성 O → 예측할 수 있는 패턴 X<pre><code>ㄟ(▔,▔)ㄏ 
주기는 고정된 길이를 가지고 있지 않고, 
주기의 고점이나 저점이 어딘지 확실히 알 수 없다.
</code></pre></li>
</ul>
</li>
</ul>
<p>주기는 해당 주기의 길이를 파악할 수 없기 때문에, 시점과 무관하다는 것을 의미하는지?</p>
<pre><code>
#### 예시 : 정상성 유무 판단
  ![](https://velog.velcdn.com/images/c_10/post/93880625-244e-481a-b145-1a293b0f8357/image.png)
  - 계절성이 있는 (d), (h), (i)는 정상성 X
  - 추세가 있고 수준이 변하는 (a), (c), (e), (f), (i)</code></pre><p>  ㄟ(▔,▔)ㄏ
  (c)와 (f)는 추세가 있다고 할 수 있나?
  수준이 변하는 그래프인가?</p>
<pre><code>  - 분산이 증가하는 (i)
  - (b)는 정상성을 나타낸다.
  - (g)는 주기가 존재하여 정상성이 없는 시계열 데이터로 볼 수 있지만, 주기의 불규칙성이 존재하여 주기의 시작이나 끝을 예측할 수 없기 때문에 이 시계열은 정상성을 나타낸다.


### 8.1.2 차분(differencing)
- 관측값들의 차이를 계산하는 것
- 정상성이 없는 시계열 데이터를 정상성을 나타내게 할 수 있는 방법
  - 위 [예시] 그림에서 (a)는 시계열 데이터, (b)는 시계열 데이터의 일일변동 데이터인데, (a)에서는 정상성이 없었으나, (b)에서는 추세나 수준 변화가 없어지면서 정상성을 나타냄을 알 수 있다.
- ACF 그래프
![](https://velog.velcdn.com/images/c_10/post/54e2d207-6df9-4978-97bd-2a1b722ee0af/image.png)
  - 정상성 X → ACF가 느리게 감소, r_1은 종종 큰 양수를 갖는다.
  - 차분의 ACF를 보면 95% 한계 바깥에 자기상관 값이 없기 때문에 단순히 백색잡음 시계열처럼 보인다. → 일일 변동이 기본적으로 이전 거래일의 데이터와 관련이 없는 값임을 나타낸다. → 정상성 O

### 8.1.3 확률보행 모델(random walk model)
- 차분 y_t&#39; (관측값의 차이)
$$
y_t&#39; = y_t - y_{t-1}
$$
- 첫 번째 관측값에 대한 차분 y_1&#39;을 계산할 수 없기 때문에 
T-1 개의 차분만을 가진다.
- 백색잡음 데이터의 차분을 구할 때,
$$
y_t - y_{t-1} = ε_t
$$
로 표현할 수 있고, 여기서 ε_t는 백색잡음을 의미한다.
- 이를 정리하면 &quot;확률보행 모델&quot; 을 얻을 수 있다.
$$
y_t = y_{t-1} + ε_t
$$

### 8.1.4 2차 차분
- 차분을 구했을 때도 정상성이 없을 수 있는데, 이 때 차분의 차분을 구하면서 정상성을 나타내는 시계열 데이터를 얻을 수 있다.
$$
y_t&#39;&#39; = y_t&#39; -y_{t-1}&#39;&#39;
$$
$$
= (y_t - y_{t-1}) - (y_{t-1}-y_{t-2})
$$
$$
= y_t - 2y_{t-1}+y_{t-2}
$$
- T-2 개의 차분만을 가진다.
- &quot;변화에서 나타나는 변화&quot;를 모델링하게 되는 것인데, 실제로는 2차 차분 이사응로 구하는 경우는 거의 없다.

### 8.1.5 계절성 차분
- 이전 계절의 관측치와의 차이
- m이 계절의 개수라 할 때,
  $$
  y_t&#39; = y_t - y_{y-m}
  $$
- 시차 m차분 이라고도 한다.
- 계절성 차분 데이터가 백색잡음처럼 보인다면, 아래와 같은 식으로 표현할 수 있다.
$$
y_t = y_{t-m} + ε_t
$$
- 이 모델을 통해 구한 예측값은 같은 계절의 마지막 관측값과 같다.
#### 계절성 차분의 2차 차분
$$
y_t&#39;&#39; = y_t&#39; -y_{t-m}&#39;&#39;
$$
$$
= (y_t - y_{t-m}) - (y_{t-m}-y_{t-m-1})
$$
$$
= y_t - y_{t-1} - y_{t-m} +y_{t-m-1}
$$
- 계절성 차분과 1차 차분을 둘 다 적용할 때,
  - 어떤 것을 먼저 적용해도 큰 차이 X
  - 단, 계절성 패턴이 강하다? 계절성 차분을 먼저 하면 1차 차분을 안 해도 되는 경우가 있다.

#### 1차 차분? 2차 차분? 계절성 차분?
- 어떤 차분을 구할지는 주관적인 요소가 필요하다.
- 모델링 과정에서 항상 몇 가지 선택이 존재하고 분석하는 사람마다 다른 선택을 할 수 있다.
- 이 외의 다른 시차값은 사용하지 않는 것이 좋다. (직관적 해석 불가)

### 8.1.6 단위근검정
- 차분을 구하는 것이 필요할지에 대한 객관적인 방법
- 검정 방법은 다양하고, 서로 다른 가정에 기초하기 때문에 상반되는 답을 낼 수 있다.
#### 퀴아트코프스키-필립스-슈미트-신 검정 (KPSS)
- Kwiatkowski-Phillips-Schmidt-Shin 검정
- 귀무가설 : 이 검정은 데이터에 정상성이 나타난다.
- 귀무가설이 거짓이라는 증거를 찾음으로써 (== p value &lt; 0.05) 데이터가 정상성을 보이지 않음을 증명한다.

## 8.2 후방이동 기호(Backshift)
- 시계열의 시차를 다룰 때 유용한 연산자 _**B**_
- 시차(lag)를 나타내어 _**L**_ 이라고도 표현한다.
  $$
  By_t=y_{t-1}
  $$
- 데이터를 한 시점 뒤로 옮기는 역할을 한다.
- 두 시점 뒤로 옮길 때는 아래와 같이 표현한다.
  $$
  B(By_t) = B^2y_t = y_{t-2}
  $$
- 월별 데이터에서  &quot;지난해 같은 달&quot;을 표현할 때는 아래와 같이 표현한다.
  $$
  B^{12}y_t=y_{t-12}
  $$
### 차분을 구하는 과정에서 후방이동 기호의 사용
- 1차 차분
  $$
  y&#39;_t=y_t-y_{t-1}=y_t-By_t = (1-B)y_t
  $$
- 2차 차분
  $$
  y&#39;&#39;_t=y_t-2y_{t-1}+y_{t-2}=(1-2B+B^2)y_t = (1-B)^2y_t
  $$
- d차 차분 $(1-B)^dy_t$
- 차분을 연산자로 결합했을 때 대수의 법칙을 적용할 수 있다.
  - 예시
  $$
  (1-B)(1-B^m)y_t=(1-B-B^m+B^{m+1})y_t
  $$
  $$
  =y_t-y_{t-1}-y_{t-m}+y_{t-m-1}
  $$

## 8.3 자기회귀 모델(AutoRegressive Model)
- 자기 자신에 대한 변수의 회귀 모델
- 다중 회귀 모델에서는 
목표 예상 변수 x의 선형 조합을 이용하여 관심 있는 변수 y를 예측한다.
- 자기회귀 모델에서는
과거 관측치의 선형 조합을 이용하여 관심 있는 변수를 예측한다.
- **y_t의 시차 값을 예측변수로 다룬다!**
- 차수 p의 autoregressive model : **_AR(p)_** ($ε_t$ : 오차항)
$$
y_t = c + ϕ_1y_{t-1} + ϕ_2y_{t-2} + ... + ϕ_py_{t-p} + ε_t
$$
- autoregressive model은 다양한 종류의 시계열 패턴을 유연하게 다룰 수 있다.

### 예시
![](https://velog.velcdn.com/images/c_10/post/d4ef43c6-7110-4380-affb-c3614d71c7a3/image.png)
- Figure 8.5는 차수 p가 1일 때와 2일 때 $y_t$를 표현한 것이고, 
$ϕ_1,…,ϕ_p$에 따라서도 시계열 패턴이 달라진다. 
$ε_t$에 따라 눈금이 달라진다.
- AR(1) 모델
  - $ϕ_1 = 0$일 때, $y_t == ε_t$
  - $ϕ_1 = 1$일 때, $c=0$이면, $y_t$는 확률보행 모델
  - $ϕ_1 = 1$일 때, $c≠0$이면, $y_t$는 표류가 있는 확률보행 모델
  - $ϕ_1 &lt; 0$ (음수)일 때, $y_t$는 평균값을 중심으로 진동한다.
- 보통 _**자기회귀 모델은 정상성이 보이는 데이터에만 사용한다.**_
  - 이 경우 매개변수 값에 대한 제한조건이 필요하다.
    - AR(1)의 경우 $-1 &lt; ϕ_1 &lt; 1$ 
    - AR(2)의 경우 $-1 &lt; ϕ_2 &lt; 1,$ $ϕ_1+ϕ_2 &lt; 1,$ $ϕ_2-ϕ_1 &lt; 1$
    - ...

## 8.4 이동 평균 모델(Moving Average Model)
- AutoRegressive Model에서 과거 값을 사용했다면,
이동 평균 모델에서는 과거의 예측 오차 ε을 사용한다.
- q차 이동 평균 모델 _**MA(q)**_
$$
y_t = c + ε_t + ϕ_1ε_{t-1} +  ϕ_2ε_{t-2} + ... +  ϕ_qε_{t-q}
$$
- $y_t$ 각 값을 &quot;과거 몇 개의 예측 오차 $ε$의 **가중 이동 평균**&quot;으로 볼 수 있다.

### 이동 평균 vs 평활
- 이동 평균 모델은 미래 값을 예측할 때 사용한다.
- 평활은 과거 값의 추세-주기를 측정할 때 사용한다.

### 예시
![](https://velog.velcdn.com/images/c_10/post/0e5ac1be-98a9-481c-be5d-83e1a4dbeda0/image.png) 
- Figure 8.6는 차수 p가 1일 때와 2일 때 $y_t$를 표현한 것이고, 
$ϕ_1,…,ϕ_p$에 따라서도 시계열 패턴이 달라진다. 
$ε_t$에 따라 눈금이 달라진다.

- 정상성을 나타내는 AR(p) 모델을 MA(∞)로 사용할 수 있다.
  - **예시**
  $$
  y_t =ϕ_1y_{t−1}+ε_t
  $$
  $$
  =ϕ_1(ϕ_1y_{t−2}+ε_{t-1})+ε_t
  $$
  $$
  =ϕ_1^2y_{t−2}+ϕ_1ε_{t-1}+ε_{t}
  $$
  $$
  =ϕ_1^3y_{t−3}+ϕ_1^2y_{t−2}+ϕ_1ε_{t-1}+ε_{t}
  $$
  $$
  ...
  $$
    - $-1&lt;ϕ_1&lt;1$ 이므로 k가 커질수록 $ϕ_1^k$은 작아진다.
    - 결론적으로 AR(p)모델에서 MA(∞)식을 얻을 수 있다.
    $$
    y_t=ε_t+ϕ_1ε_{t−1}+ϕ^2_1ε_{t−2}+ϕ^3_1ε_{t−3}+...

    $$


- MA 모델은 invertible하다. 
  - 즉, MA(q) 모델을 AR(∞)로도 표현할 수 있다.
  - 단, 몇몇의 제한 조건이 필요하다. 
  (AutoRegressive model의 정상성 제한 조건과 비슷하다)
    - MA(1)의 경우 $-1 &lt; ϕ_1 &lt; 1$ 
    - MA(2)의 경우 $-1 &lt; ϕ_2 &lt; 1,$ $ϕ_2+ϕ_1 &gt; -1,$ $ϕ_1-ϕ_2 &lt; 1$
    - ...

  **예시 : 왜 $|θ|&lt;1$ 인가?**
  - MA(1) : $y_t=e_t+θ_1e_{t−1}$ 를 AR(∞)로 표현하자.
  - 가장 최근의 오차 = 현재와 과거 관측값의 선형 함수
    $$
    e_t = \sum_{j=0}^∞(−θ)^jy_{t−j}
    $$
    ```
    ㄟ(▔,▔)ㄏ
    &quot;과거의 모든 관측값의 가중치 곱&quot;은
    과거의 예측값에서 오차를 뺀 값이다.

    현재의 오차는
    &quot;현재 예측값&quot;에서 &quot;현재 관측값&quot;의 가중치곱을 뺀 값이다.

    근데 위 식을 보면 음수에도 ^j가 포함되어, 
    과거의 모든 관측값의 가중치 곱이 양/음수를 반복하게 되는데, 
    어떻게 식이 성립할 수 있는지 모르겠다.
    ```

  - $|θ|&gt;1$이면, 더욱 과거의 관측값일수록 현재 오차에 미치는 영향이 커진다. 🫤
  - $|θ|=1$이면, 가중치가 상수이고, 모든 관측값이 현재 오차에 미치는 영향이 동일하다. 🫤
  - $|θ|&lt;1$이면, 최근 관측값일수록 현재 오차에 미치는 영향이 커진다. 😊
    - MA(1)의 경우 $-1 &lt; ϕ_1 &lt; 1$ 의 제한 조건을 가진다.

## 8.5 비-계절성 ARIMA 모델
- **A**uto**R**egressive **I**ntegrated **M**oving **A**verage : 이동 평균을 누적한 자기회귀
- 차분을 구하는 것을 자기회귀와 이동 평균 모델을 더해서 결합한 것이다.
- $ARIMA(p,d,q)$ 모델
$$
y&#39;_t = c+ϕ_1y&#39;_{t−1}+⋯+ϕ_py&#39;_{t−p}+θ_1ε_{t−1}+⋯+θ_qε_{t−q}+ε_t
$$
  - $p$ : AutoRegressive의 차수
  - $d$ : 차분의 차수(1차 차분, 2차 차분)
  - $q$ : Moving Average의 차수
- AutoRegressive의 정상성과 Moving Average의 가역성은 ARIMA에서 모두 적용된다.


- 후방이동 기호를 사용하면 더 쉽게 표현할 수 있다.
  ![](https://velog.velcdn.com/images/c_10/post/b56480a2-ff74-493f-8b7f-65901ae4d1c8/image.png)

### 8.5.1 예시 : 미국의 소비 지출
- 아래 Figure 8.7의 시계열 데이터를 ARIMA를 통해 예측해보자.
![](https://velog.velcdn.com/images/c_10/post/8e7f8ebf-c590-495c-801a-6569dd68190b/image.png)
- $ARIMA(1,0,3)$ 모델을 R코드를 통해 실행한 결과,
  ![](https://velog.velcdn.com/images/c_10/post/c83be608-0320-4069-9020-73dde00bd365/image.png)
  $$  y_t=c+0.589y_{t−1}−0.353ε_{t−1}+0.0846ε_{t−2}+0.174ε_{t−3}+ε_t
  $$
  - $c = mean * (1-ar1) = 0.745×(1−0.589)=0.307$
  - $ε_t$는 다음과 같이 $0.592 = \sqrt{0.350}$
    - 이러한 표준편차를 가지는 백색잡음이다.</code></pre><p>  ㄟ(▔,▔)ㄏ
  ε_t는 어떤 식에 의해 저렇게 구해지는지?</p>
<pre><code>- 아래 Figure 8.8은 모델로 얻은 예측값이다.
  ![](https://velog.velcdn.com/images/c_10/post/d187951b-6b48-46a4-9a4c-1da961442897/image.png)

### 8.5.2 ARIMA 모델 이해하기
#### : 적절한 $c, d$ 선정
- 상수 c는 장기 예측값에 중요한 영향을 준다.
- 차분의 차수 d 값이 클 수록, prediction interval(예측 구간)의 크기가 더욱 급격하게 늘어난다.
- d=0에서, 장기 예측 표준 편차는 과거 데이터의 표준 편차와 가까워지고, 모든 예측 구간이 같아진다.
  - **예시**
    - c=0, d=0이면, 장기 예측값이 0에 가까워질 것입니다.
    - c=0, d=1이면, 장기 예측값이 0이 아닌 상수에 가까워질 것입니다.
    - c=0, d=2이면, 장기 예측값이 직선 형태로 나타나게 될 것입니다.
    - c≠0, d=0이면, 장기 예측값이 데이터의 평균에 가까워질 것입니다.
    - c≠0, d=1이면, 장기 예측값이 직선 형태로 나타나게 될 것입니다.
    - c≠0, d=2이면, 장기 예측값이 2차 곡선 추세로 나타나게 될 것입니다.
- Figure 8.8을 다시 보면, c≠0, d=0이므로 
예측 구간은 마지막 몇 개의 예측 수평선에 대한 경우와 거의 같고,
점 예측값은 데이터의 평균과 같다.
  ![](https://velog.velcdn.com/images/c_10/post/d187951b-6b48-46a4-9a4c-1da961442897/image.png)
- $p$ 값은 데이터에 주기가 존재할 때 중요하다.
  - 주기적인 데이터에서 예측값을 얻기 위해 $p \ge 2$라는 조건이 추가된다.
  - **예시**
    - AR(2) 모델은 $ϕ^2_1+4ϕ_2&lt;0$ 일 때, 주기적이다.
    - 이 때, 주기는 평균 기간과 같다.
    $$
    cycle = \frac{2\pi}{\arccos(-ϕ_1(1-ϕ_2)/(4ϕ_2))}
    $$

### 8.5.3 ACF와 PACF 그래프
#### : 적절한 $p, q$ 선정
- 보통 time plot만 보고 $p, q$를 선정할 수 없고, ACF, PCAF 그래프를 이용해야 한다.
- ARIMA(p,d,0)이거나 ARIMA(0,d,q) 일 때,
즉, AR이나 MA의 차수 중 하나가 0일 때, 나머지 차수를 결정한다면, 이 때 ACF와 PACF가 유용하다.
- **ACF 그래프**
  - 서로 다른 $k$값에 대해, $y_t$와 $y_{t-k}$의 관계를 측정하는 자기상관값 그래프
- y_t와 y_t-1의 상관관계가 있고, y_t-1와 y_t-2의 상관관계가 있으니, y_t와 y_t-2도 상관관계를 가질 수 있음 → 문제가 발생할 수 있다.
  - partial autocorrelations(부분 자기상관값)을 통해 해결한다.
- **partial autocorrelations**
  - 시차($1, 2, 3, ..., k-1$)의 효과를 제거한 뒤, $y_t$와 $y_{t-k}$간의 관계를 측정한다.
  - 첫 번째 partial autocorrelation은 그대로
  - 각 partial autocorrelation은 autoregressive model의 마지막 계수처럼 측정할 수 있다.
    - $k$번째 partial autocorrelation 계수 $α_k$는 AR(k) 모델에서 계수 $ϕ_k$ 측정값과 같다.

- 차분을 구한 데이터의 ACF와 PACF 그래프의 패턴에 따라 AR 혹은 MA의 차수가 0인지 추측할 수 있다.
  - ARIMA(p,d,0) : MA의 차수가 0
    - ACF가 지수적으로 감소하거나 sin 함수 모양인 경우
    - PACF 그래프에서 시차 p에 뾰족한 막대가 존재하지만, 그 이후에 없을 때
  - ARIMA(0,d,q) : AR의 차수가 0
    - PACF가 지수적으로 감소하거나 sin 함수 모양인 경우
    - ACF 그래프에서 시차 q에 뾰족한 막대가 존재하지만, 그 이후에 없을 때

- **예시**
  - 아래 Figure 8.9와 8.10은 미국 소비 데이터의 ACF와 PACF 그래프이다.
  ![](https://velog.velcdn.com/images/c_10/post/ce330dcf-e0b6-44d1-b81d-7ccde805ffa0/image.png)
  - ACF는 시차 4까지 유의미한 뾰족 막대가 있고, 이전에 3개의 유의미한 뾰족 막대가 존재한다. 그 이후에는 없다.
  - PACF는 시차 3까지 유의미한 뾰족 막대가 있고, 그 이후에는 없다.
  - 시차 22는 뒤처짐으로 인해 한 번 정도 경계를 벗어나는 것은 무시할 수 있다.
  - PACF에서 첫 3의 뾰족한 막대가 감소하는 경향이 있다.
  - 이를 통해 ARIMA(3,0,0)이 적절할 수 있다 생각한다.</code></pre><p>  ㄟ(▔,▔)ㄏ
  오히려 AR의 차수가 0이지 않을까?
  Figure 8.9는 MA의 차수가 0일 때의 패턴과 
  AR의 차수가 0일 때의 패턴이 모두 나타난다고 생각한다.</p>
<pre><code>
## 8.6 추정과 차수 선택
### 8.6.1 최대 가능도 추정
- 매개변수 $c, ϕ_1,…,ϕ_p, θ_1,…,θ_q$ 를 추정하는 방법
- R에서 ARIMA 모델을 계산할 때, 최대 가능도 추정(maxium likelihood estimation)을 사용한다.
- 예측값이 관찰한 데이터와 같아질 확률이 가장 높은 매개변수 값을 찾는다.
- 실제로 R은 데이터의 log likelihood 값을 산출하고, 이를 최대화 하는 매개변수 값을 찾는다.
  - log likelihood : 추정한 모델에서 나온 관측값의 확률 log

### 8.6.2 정보 기준
- **차분 차수($d$)를 고를 때는 도움이 되지 않고,
$p$와 $q$값을 고를 때만 도움이 된다.**
  - 차분을 통해 likelihood(가능도)를 산출하기 때문에 서로 다른 차수로 차분을 구한 모델의 AIC 값을 비교할 수 없기 때문이다.
- 이전에 회귀에서 예측변수 x를 고를 때 유용했던 AIC (Akaike 정보 기준)을 ARIMA의 차수 결정 시에도 사용한다.
- 아카이케의 정보 기준(AIC: Akaike’s information Criterion)
  $$
  AIC=−2log(L)+2(p+q+k+1)
  $$
  - $L$ : 데이터 가능도
    - c≠0 이면  k=1 이고,  c=0 이면  k=0이다.
  - **괄호 안의 마지막 항이 모델의 매개변수 개수이다.**
  ($σ^2$과 잔차의 분산도 포함한다.)
- 수정된 아카이케 정보 기준 (AICc)
  $$
  AICc = AIC + \frac{2(p+q+k+1)(p+q+k+2)}{T-p-q-k-2}
  $$
- 베이지안 정보 기준
  $$
  BIC = AIC + [log(T)-2](p+q+k+1)
  $$
- 위와 같은 정보 기준(AIC, AICc, BIC)이 최소화 된 것이 좋은 모델이다.

## 8.7 R에서 ARIMA 모델링
생략 ([해당 교재 내용 link](https://otexts.com/fppkr/arima-r.html))

## 8.8 예측하기
### 8.8.1 점 예측값
- 점 예측값을 구하는 방법 3단계
  1. $y_t$를 좌변으로, 나머지를 모두 우변으로 오도록 ARIMA 식을 전개한다.
  2. t를 T+h로 변환한다. (T는 현재 시점)
  3. 우변에서 미래 관측값을 예측값으로 바꾸고,
  미래 오차값을 0으로 바꾸고,
  과거 오차값을 해당 잔차로 바꾼다.
  4. $h=1$로 시작하여 모든 예측값을 계산할 때까지 
  $h=2, 3, ...$로 1~3단계를 반복한다.

**예시 : ARIMA(3,1,1)**
- ARIMA 식
  $$
  (1−\hatϕ_1B−\hatϕ_2B^2−\hatϕ_3B^3)(1−B)y_t=(1+\hatθ_1B)ε_t
  $$
  - 좌변 전개
  $$
  [1−(1+\hatϕ_1)B+(\hatϕ_1-\hatϕ_2)B^2+(\hatϕ_2-\hatϕ_3)B^3+\hatϕ_3B^4]y_t=(1+\hatθ_1B)ε_t
  $$
  - 후방이동 연산자 적용
  $$
  y_t−(1+\hatϕ_1)y_{t-1}+(\hatϕ_1-\hatϕ_2)y_{t-2}+(\hatϕ_2-\hatϕ_3)y_{t-3}+\hatϕ_3y_{t-4}=ε_t+\hatθ_1ε_{t-1}
  $$
1. $y_t$를 좌변으로, 나머지를 모두 우변으로 오도록 ARIMA 식을 전개한다.
  $$
  y_t=(1+\hatϕ_1)y_{t-1}-(\hatϕ_1-\hatϕ_2)y_{t-2}-(\hatϕ_2-\hatϕ_3)y_{t-3}-\hatϕ_3y_{t-4}+ε_t+\hatθ_1ε_{t-1}
  $$
2. t를 T+1로 변환한다. (h=1)
  $$
  y_{T+1}=(1+\hatϕ_1)y_{T}-(\hatϕ_1-\hatϕ_2)y_{T-1}-(\hatϕ_2-\hatϕ_3)y_{T-2}-\hatϕ_3y_{T-3}+ε_{T+1}+\hatθ_1ε_{T}
  $$
3. 우변에서 미래 관측값을 예측값으로 바꾸고,
  미래 오차값을 0으로 바꾸고,
  과거 오차값을 해당 잔차로 바꾼다.
   - 시간 T까지의 관측값을 가지고 있을 때, 우변의 $ε_{T+1}$를 제외하고 모두 알고 있다.
   - 이 때, 이 값을 0으로 두고, $ε_{T}$를 관측 잔차 $e_T$로 둔다.

  $$
  \hat y_{T+1|T}=(1+\hatϕ_1)y_{T}-(\hatϕ_1-\hatϕ_2)y_{T-1}-(\hatϕ_2-\hatϕ_3)y_{T-2}-\hatϕ_3y_{T-3}+\hatθ_1e_{T}
  $$

4. t를 T+2로 변환한다. (h=2)
  $$
  \hat y_{T+2|T}=(1+\hatϕ_1)\hat y_{T+1|T}-(\hatϕ_1-\hatϕ_2)y_{T}-(\hatϕ_2-\hatϕ_3)y_{T-1}-\hatϕ_3y_{T-2}
  $$

- 이러한 과정을 반복하며 모든 미래 시점에 대한 점 예측값을 산출한다.

### 8.8.2 예측 구간
- ARIMA의 예측 구간은 잔차와 관련이 없고, 잔차는 정규분포를 따른다는 가정에 기초한다.
  - 예측구간을 내기 전, 항상 ACF 그래프와 
  잔차 히스토그램을 통해 가정 성립 여부를 파악한다.
- 일반적으로 예측 수평선이 증가할수록, 
ARIMA 모델로 얻은 예측구간은 증가한다.
- 정상성을 나타내는 모델(즉 $d=0$)인 경우,
긴 수평선에 대해 예측구간이 모두 같도록 수렴한다.
- $d \ge 1$인 경우, 시간이 지날수록 예측구간은 계속 증가한다.
#### 예시 1. $\hatσ$ = 잔차의 표준편차
- 95% 예측 구간은 $\hat y_{T+1|T} \plusmn 1.96\hatσ_h$로 주어진다.
- 모든 ARIMA 모델에서 적용된다.

#### 예시 2. ARIMA(0,0,q)
- ARIMA(0,0,q) 모델
  $$
  y_t = ε_t + \sum^q_{i=1}θ_iε_{t−i}
  $$
- 추정한 예측 분산
  ![](https://velog.velcdn.com/images/c_10/post/5d3f2b11-b320-4fa1-bb80-3d7b355be4d2/image.png)
- 95% 예측 구간은 $\hat y_{T+1|T} \plusmn 1.96\sqrt{\hatσ_h}$로 주어진다.

## 8.9 계절성 ARIMA 모델들
- 지금까지 살펴본 비계절성 ARIMA 모델에 계절성 항을 포함하여 구성한다.
  - 비계절성 부분 : $(p,d,q)$
  - 계절성 부분 : $(P,D,Q)_m$
- m : 매년 관측값의 개수
- 계절성 부분도 비계절성 부분과 비슷하게 구성되지만, 계절성 주기의 후방이동을 포함한다.
- **예시 : 상수가 없는 $ARIMA (1,1,1)(1,1,1)_4$**
  - m=4 이므로 계절성을 지닌 분기별 데이터임을 알 수 있다.
  - 단순하게 비계절성 항에 계절성 항을 곱해준다.
  $$
  (1−ϕ_1B) (1−Φ_1B^4)(1−B)(1−B^4)y_t=(1+θ_1B) (1+Θ_1B^4)ε_t
  $$

### 8.9.1 ACF/PACF
- 모델의 계쩔성을 파악하는 방법
- AR이나 MA 모델의 계절성 부분은 PACF와 ACF의 계절성 시차에서 확인할 수 있다.
- **예시 : $ARIMA(0,0,0)(0,0,1)_{12}$**
  - ACF에 시차 12에서 나타나는 뾰족한 막대가 존재한다.
  - PCAF의 계절성 시차가 지수적으로 감소한다.(시차 12, 24, 36, ...)
- 계절성 ARIMA 모델의 적절한 계절성 차수 $(P,D,Q)_m$를 선정할 때, 계절성 시차를 고려해야한다.

#### 예제 : 유럽 분기별 소매 거래
1. time plot을 보고, 정상성, 계절성 여부 파악
  ![](https://velog.velcdn.com/images/c_10/post/3e5a52e7-00fa-4254-bc16-248a1aeb417b/image.png)
  - 정상성 X, 계절성 O
  - 계절성 차분을 먼저 구하여 정상성 O를 만든다.
    - 1차 차분으로 정상성 X 라면, 한 번 더 차분을 진행한다.
2. ACF, PACF에 기초하여 적절한 ARIMA 모델을 찾는다.
  ![](https://velog.velcdn.com/images/c_10/post/3a2c5c77-14bb-40da-9c08-429c82b56453/image.png)
  - ACF에서 시차 1의 유의미한 뾰족 막대 → 비계절성 MA(1)
  - ACF에서 시차 4의 유의미한 뾰족 막대 → 계절성 MA(1), 관측값 개수 m=4
  =&gt; **1차 차분과 계절성 차수을 나타내는 $ARIMA(0,1,1)(0,1,1)_4$**</code></pre><p>  ㄟ(▔,▔)ㄏ
  위에서 정상성 확보를 위해 2차 차분까지 했다고 설명되어있는데 
  왜 여기서는 1차 차분인건지?</p>
<pre><code>3. ARIMA 모델의 잔차를 확인한다.
  ![](https://velog.velcdn.com/images/c_10/post/5ef859e9-bf9a-425c-8cdb-25f549d16e1d/image.png)
  - ACF와 PACF 둘 다 시차 2에서의 유의미한 뾰족 막대
  - 시차 3에서 덜 유의미하지만 뾰족한 막대
  **=&gt; 이렇게 유의미한 뾰족 막대가 등장한다면, 
  추가적인 비계절성 항을 추가할 것을 고려해야 한다.**

4. 비계절성 항을 조절하며 정보 기준 산출 → 최소값
  - 정보 기준을 비교하는 것은 같은 차수로 차분을 구한 ARIMA 모델에 대해서만 의미가 있다.
  - $ARIMA(0,1,3)(0,1,1)_4$의 AICc : 68.53
  - $ARIMA(0,1,2)(0,1,1)_4$의 AICc : 74.36
  - ...
  - **AICc가 가장 작은 $ARIMA(0,1,3)(0,1,1)_4$ 선택**

5. 다시 선택한 ARIMA 모델로 잔차를 확인한다.
  ![](https://velog.velcdn.com/images/c_10/post/a71db6a3-d4a3-4113-87b3-e91d3938c799/image.png)
  - ACF 그래프를 보면 모든 잔차가 유의미한 범위 안에 들어오고, 뾰족한 막대가 없다. → 백색잡음
    - 추가로 융-박스 검정을 통해 잔차에 자기상관관계가 없음을 확인할 수 있다.
  - **예측을 진행할 계절성 ARIMA 모델 선택을 완료한 것이다.**

6. 확인 절차를 거친 ARIMA 모델을 통해 예측을 진행한다.
  ![](https://velog.velcdn.com/images/c_10/post/5b849429-dfec-4aaf-845f-e46dfe364805/image.png)
  - 2차 차분을 통해 구했기 때문에 예측값이 데이터의 최근 추세를 따라간다.</code></pre><p>  ㄟ(▔,▔)ㄏ
  왜 2차 차분 때문에 최근 추세를 따라가나?</p>
<p>  c=0, d=2이면, 장기 예측값이 직선 형태로 나타나게 될 것입니다.
  c≠0, d=2이면, 장기 예측값이 2차 곡선 추세로 나타나게 될 것입니다.</p>
<p>  위 내용이 최근 추세를 따라간다는 것에 대한 반증이 되는지 궁금하다.</p>
<pre><code>
#### 예제 : 호주 코르티코 스테로이드 약물 판매량
- 생략([해당 교재 내용 link](https://otexts.com/fppkr/seasonal-arima.html#%EC%98%88%EC%A0%9C-%ED%98%B8%EC%A3%BC-%EC%BD%94%EB%A5%B4%ED%8B%B0%EC%BD%94-%EC%8A%A4%ED%85%8C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%BD%EB%AC%BC-%ED%8C%90%EB%A7%A4%EB%9F%89))

## 8.10 ARIMA vs ETS
- 비교 예제에 대한 설명 ([해당 교재 내용 link](https://otexts.com/fppkr/arima-ets.html))
- 모든 ETS 모델은 정상성 X의 경우,
ARIMA 모델은 정상성 O의 경우에 맞는다? 성능이 좋다?
### 8.10.1 비계절성 데이터에서 ARIMA와 ETS 비교
- 비교를 위해 시계열 교차검증을 사용한다.
  - 시계열 데이터가 아주 긴 경우에는 시계열 교차 검증보다 데이터를 학습 데이터와 테스트 데이터로 나누어 사용한다.
- 비교 결과
  - MSE 값에 기초해서 보면 ETS 모델이 더 낮은 tsCV 통계량을 갖는다. (낮을수록 좋은 모델이다.)
### 8.10.2 계절성 데이터에서 ARIMA와 ETS 비교
- 학습 데이터와 테스트 데이터로 나누어 사용한다.
- ARIMA와 ETS 두 모델 모두 잔차가 백색잡음인 것 같은 결과를 보인다.
- 비교 결과
  - 학습 데이터 예측에서는 ARIMA가 살짝 우세했지만, 테스트 데이터 예측에서는 ETS가 살짝 우세하였다.
- 결론적으로 어떤 유형의 데이터이던 간에 절대적으로 ARIMA가 더 좋다고 할 수 없다.</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] ETS 모델로 예측하기]]></title>
            <link>https://velog.io/@c_10/Time-Series-ETS-%EB%AA%A8%EB%8D%B8%EB%A1%9C-%EC%98%88%EC%B8%A1%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@c_10/Time-Series-ETS-%EB%AA%A8%EB%8D%B8%EB%A1%9C-%EC%98%88%EC%B8%A1%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 15 Dec 2023 16:31:29 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 7장 7절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="77-ets-모델로-예측하기">7.7 ETS 모델로 예측하기</h2>
<ul>
<li><strong><em>t = T, T+1, T+2, … , T+h</em></strong>인 즉, <strong><em>t &gt; T</em></strong> 에 대해 모두 <strong><em>ε_t = 0</em></strong> 으로 두고 예측값을 구한다.</li>
<li><strong>예시 : ETS(M,A,N)</strong>
  $$
  y_{T+1} = (ℓ<em>T + b_T)(1+ε</em>{T+1})
  $$<ul>
<li>곱셈 오차의 형태
$$
\hat y_{T+1|T} = ℓ_T + b_T
$$</li>
<li>예측값은 <strong><em>ε_t = 0</em></strong> 으로 두고 구한다.
$$
y_{T+2} = (ℓ<em>{T+1} + b</em>{T+1})(1+ε<em>{T+1})
$$
$$
=[(ℓ_T+b_T)(1+αε</em>{T+1})+b_T+β(ℓ<em>T+b_T)ε</em>{T+1}](1+ε<em>{T+1})
$$
$$
\hat y</em>{T+21|T} = ℓ_T + 2b_T
$$</li>
</ul>
</li>
<li>ETS 모델의 예측값 = 예측 분포의 중간값<ul>
<li>덧셈 성분만 이용하는 모델의 경우,<ul>
<li>예측 분포가 정규 분포 → 평균 == 중간값</li>
</ul>
</li>
<li>곱셈 오차 or 곱셈 계절성을 이용하는 경우,<ul>
<li>평균 != 중간값</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 추정과 모델 선택]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%B6%94%EC%A0%95%EA%B3%BC-%EB%AA%A8%EB%8D%B8-%EC%84%A0%ED%83%9D</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%B6%94%EC%A0%95%EA%B3%BC-%EB%AA%A8%EB%8D%B8-%EC%84%A0%ED%83%9D</guid>
            <pubDate>Fri, 15 Dec 2023 16:21:24 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 7장 6절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="76-추정과-모델-선택">7.6 추정과 모델 선택</h2>
<h3 id="761-ets-모델-추정">7.6.1 ETS 모델 추정</h3>
<ul>
<li>매개변수를 추정하는 방법<ul>
<li>기존 : 제곱 오차의 합 최소화</li>
<li>대안 : 가능도(likelihood) 최대화</li>
</ul>
</li>
<li>가능도(likelihood) ?<ul>
<li>특정한 모델에서 일어나는 데이터의 확률</li>
</ul>
</li>
<li>가능도가 클수록 모델이 좋다.<ul>
<li>덧셈 오차 모델의 경우,<ul>
<li>가능도를 최대화하는 것과 제곱 오차의 합을 최소화하는 것과 같다.</li>
</ul>
</li>
<li>곱셈 오차 모델의 경우,<ul>
<li>가능도를 최대화하는 것과 제곱 오차의 합을 최소화하는 것과 다르다.</li>
</ul>
</li>
</ul>
</li>
<li>가능도를 최대화하여 아래 두 가지에 대해 구한다.<ul>
<li>평활 매개변수 <strong><em>α, β, γ, ϕ</em></strong><ul>
<li>통상적으로 0부터 1사이의 값을 가진다.</li>
<li>상태 공간 모델의 경우, <strong><em>β=αβ*</em></strong>와 <strong><em>γ=(1−α)γ*</em></strong>로 둔다.</li>
<li><strong><em>0&lt;α&lt;1, 0&lt;β&lt;α, 0&lt;γ&lt;1−α, 0.8&lt;ϕ&lt;0.98</em></strong></li>
</ul>
</li>
<li>초기 상태 <strong><em>ℓ_0, b_0, s_0, s_−1, … , s_−m+1</em></strong></li>
</ul>
</li>
<li>허용성(admissibility) 제한 조건?<ul>
<li>전통적인 제한 조건의 범위보단 널널하다.</li>
<li>예시로 ETS(A,N,N) 모델의 경우에는,<ul>
<li>전통적인 매개변수 범위는 0&lt;α&lt;1</li>
<li>허용 범위는 0&lt;α&lt;2</li>
</ul>
</li>
<li>예시로 ETS(A,A,N) 모델의 경우에는<ul>
<li>전통적인 매개변수 범위는 0&lt;α&lt;1 와 0&lt;β&lt;α</li>
<li>허용 범위는 0&lt;α&lt;2 와  0&lt;β&lt;4−2α</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="762-모델-선택">7.6.2 모델 선택</h3>
<ul>
<li>정보 기준(AIC, AIC_c, BIC,)를 사용하여 모델을 선택한다. (ETS 통계의 장점)</li>
<li>AIC
  <img src="https://velog.velcdn.com/images/c_10/post/9fd5bc43-5618-429a-bf53-9929b005cca3/image.png" alt=""><ul>
<li><strong><em>L</em></strong> : 모델의 <strong>가능도(Likelihood)</strong></li>
<li><strong><em>k</em></strong> : 잔차 분산을 포함하는 <strong>추정된 매개변수 개수 + 초기 상태값의 개수</strong></li>
</ul>
</li>
<li>AIC_c
  <img src="https://velog.velcdn.com/images/c_10/post/462a6acb-0a96-4e4b-88e8-ca150acdf2b9/image.png" alt=""><ul>
<li>작은 표본 크기에 보정된 AIC</li>
</ul>
</li>
<li>BIC
  <img src="https://velog.velcdn.com/images/c_10/post/16e9fb31-92e7-4770-b0ec-d46a9aaea593/image.png" alt=""></li>
<li>불안정성을 가지는 모델은 수치적으로 판단하기 어려울 수 있고, 이러한 모델에선 해당 척도를 고려하지 않는다.<ul>
<li>ETS(A,N,M), ETS(A,A,M), ETS(A,Ad, M) → 오차는 덧셈오차, 계절성은 곱셈</li>
<li>Why? 상태 식에서 0에 가까운 값으로 나눌 수 있기 때문에</li>
</ul>
</li>
<li>곱셈 오차는 데이터가 0이나 음수 값에 있으면 수치적으로 안정적이지가 않다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 지수 평활에 대한 혁신 상태 공간 모델]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%A7%80%EC%88%98-%ED%8F%89%ED%99%9C%EC%97%90-%EB%8C%80%ED%95%9C-%ED%98%81%EC%8B%A0-%EC%83%81%ED%83%9C-%EA%B3%B5%EA%B0%84-%EB%AA%A8%EB%8D%B8</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%A7%80%EC%88%98-%ED%8F%89%ED%99%9C%EC%97%90-%EB%8C%80%ED%95%9C-%ED%98%81%EC%8B%A0-%EC%83%81%ED%83%9C-%EA%B3%B5%EA%B0%84-%EB%AA%A8%EB%8D%B8</guid>
            <pubDate>Fri, 15 Dec 2023 16:16:06 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 7장 5절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="75-지수-평활에-대한-혁신-상태-공간-모델">7.5 <strong>지수 평활에 대한 혁신 상태 공간 모델</strong></h2>
<ul>
<li><p>지수 평활 기법에 깔린 통계 모델에 대한 설명</p>
<ul>
<li>통계 모델 : 전체 예측분포를 만들어줄 수 있는 무작위적 데이터 생성 과정</li>
<li>같은 점의 예측값을 내는 동시에 예측 구간도 생성한다.</li>
</ul>
</li>
<li><p>각 모델은 측정식과 몇 가지 상태식으로 구성된다. (상태 공간 모델 이라고도 함.)</p>
<ul>
<li>측정식(measurement equation) : 관측된 데이터를 묘사하는 식</li>
<li>상태식(state equation) : 아직 관측되지 않은 성분이나 상태(수준, 추세, 계절성)</li>
</ul>
</li>
<li><p>각 지수 평활 기법마다 두 가지 모델이 존재한다.</p>
<ul>
<li>덧셈 오차</li>
<li>곱셈 오차</li>
<li>평활 매개변수 <strong><em>α</em></strong> 가 같다면, 오차 방식과 관계없이 모델의 예측값은 동일하다.<ul>
<li>하지만, 다른 예측 구간을 생성한다.</li>
</ul>
</li>
</ul>
</li>
<li><p>ETS(오차 Error, 추세 Trend, 계절성 Seasonal)</p>
<ul>
<li><p>덧셈 오차와 곱셈 오차까지 분류 기준에 추가하기 위해 Table 7.5 에 오차 Error를 추가한다. (3차원 형태의 표로 생각하면 된다.)</p>
</li>
<li><p>오차 ={A, M}, 추세 ={N,A,Ad}, 계절성 ={N,A,M}</p>
<p>  A : 덧셈, M : 곱셈 / N : 없음, A : 덧셈, Ad : 덧셈 감쇠 / N : 없음, A : 덧셈, M : 곱셈</p>
</li>
</ul>
</li>
</ul>
<h3 id="751-etsa-n-n--덧셈-오차를-이용하는-단순-지수평활">7.5.1 ETS(A, N, N) : <strong>덧셈 오차를 이용하는 단순 지수평활</strong></h3>
<ul>
<li><p>덧셈 오차, 추세 없음, 계절성 없음</p>
</li>
<li><p>단순 지수 평활의 성분 형태 (오차 없이)
  <img src="https://velog.velcdn.com/images/c_10/post/939ba27a-b0d1-4504-a4a1-a8013b36bd9c/image.png" alt=""></p>
</li>
<li><p>Smoothing equation에 대한 정리하면,
  <img src="https://velog.velcdn.com/images/c_10/post/9b228a57-4cb6-4137-8b0c-98b60d6e206f/image.png" alt=""></p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/ce64d3e3-6ddd-42ee-ac6d-9bfe1bcf3bc0/image.png" alt="">   </p>
<p>  오차 보정 (error correction)에 대한 식을 얻을 수 있다.</p>
</li>
<li><p>시간 t에서 오차가 음수?</p>
<ul>
<li><strong><em>y_t &lt; y_hat_t|t-1</em></strong> → 시간 t-1에서의 추정 값이 과도하다. → 하향 조정 필요 → 하향 조정된 이전 수준값 <strong>ℓ<em>_t-1</em></strong></li>
</ul>
</li>
<li><p>평활 매개변수 <strong><em>α</em></strong>에 따라 조정값의 크기가 달라진다. (<strong><em>α</em></strong>가 1에 가까울수록 큰 조정)</p>
</li>
<li><p>t에서의 관측값 = t-1 에서의 수준값 + t에서의 오차 를 나타내기 위해 
(<strong><em>y_t   =   ℓ_t−1 + e_t</em></strong>) 와 같은 식으로 표현할 수 있다.</p>
<ul>
<li>이 때, 오차 e_t를 innovation state space model로 만들기 위해 </li>
<li><em>e_t에 대한 확률분포 식*</em>을 구체적으로 적어야 한다.</li>
</ul>
</li>
<li><p><strong>e_t에 대한 확률분포 식</strong></p>
<ul>
<li><strong><em>e_t = ε_t ∼ NID(0, σ^2)</em></strong><ul>
<li>평균이 <strong><em>0</em></strong>이면서, 분산이 <strong><em>σ^2</em></strong> 인 정규 분포를 따르는 형태 → 백색 잡음</li>
<li><strong><em>NID</em></strong> : Normally and Independently Distributed (정규적이고 독립적인 분포)</li>
</ul>
</li>
</ul>
</li>
<li><p>ETS(A, N, N) 상태공간모델의 식
<img src="https://velog.velcdn.com/images/c_10/post/6f741a8b-347a-44b1-b292-14a33eb6b4ba/image.png" alt=""></p>
<ul>
<li><p>오차의 통계적인 분포를 함께 이용하여 <strong><em>e_t</em></strong>를 <strong><em>ε_t</em></strong>로 표현할 수 있다.</p>
</li>
<li><p>단순 지수 평활을 이루는 innovations state space model이 된다.</p>
</li>
<li><p><strong>식 7.3 측정 방정식</strong></p>
<ul>
<li><strong>관측값 y_t</strong>과 <strong>아직 관측되지 않은 상태(state)</strong>와의 관계</li>
<li><strong>관측값 y_t</strong>는 아래 3가지 부분을 활용한 선형 함수<ul>
<li>수준 <strong><em>ℓ_t−1</em></strong></li>
<li><strong><em>y_t</em></strong>의 예측 가능한 부분</li>
<li>오차 <strong><em>ε_t, y_t</em></strong>의 예측 가능하지 않은 부분</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>식 7.4 상태 방정식</strong></p>
<ul>
<li>시간에 따른 상태(state)의 변화</li>
<li>높은 α 값은 급격한 수준 변화, 작은 α 값은 매끄러운 변화</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="752-etsmnn-곱셈-오차를-이용하는-단순-지수평활">7.5.2 <strong>ETS(M,N,N): 곱셈 오차를 이용하는 단순 지수평활</strong></h3>
<ul>
<li><strong>ETS(M, N, N) 상태공간모델의 식</strong>
<img src="https://velog.velcdn.com/images/c_10/post/3daa5fcf-a4a7-40fe-bb58-ecc031d0d0fc/image.png" alt=""></li>
<li>한 단계 앞 학습 오차 → 상대적인 학습 오차를 통해 곱셈 오차를 이용
<img src="https://velog.velcdn.com/images/c_10/post/4e447228-5661-49cc-a52c-b706e9142e4d/image.png" alt=""><ul>
<li>오차는 실제값 - 예측값을 예측값으로 나눈 값</li>
<li><strong><em>ε_t ∼ NID(0, σ^2)</em></strong></li>
<li>아래 식을 활용하여 e_t에 대한 식을 산출할 수 있다.<ul>
<li><strong><em>y_hat_t|t−1   =   ℓ_t−1</em></strong></li>
<li><strong><em>y_t   = ℓ_t−1 + ℓ_t−1 * ε_t</em></strong></li>
<li><strong><em>e_t   =   y_t − y_hat_t|t−1   =   ℓ_t−1 * ε_t</em></strong></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="753-etsaan-덧셈-오차를-이용한-홀트의-선형-기법">7.5.3 <strong>ETS(A,A,N): 덧셈 오차를 이용한 홀트의 선형 기법</strong></h3>
<ul>
<li><p><strong>ETS(A,A,N) 상태공간모델의 식</strong></p>
<p><img src="https://velog.velcdn.com/images/c_10/post/9198d339-479d-469d-9927-7943a3752028/image.png" alt=""></p>
<ul>
<li>한 단계 앞 학습 오차 <strong><em>ε_t</em></strong><ul>
<li><strong><em>ε_t = y_t − (ℓ_t−1 + b_t−1) ∼ NID(0,σ^2)</em></strong></li>
<li>이러한 식에 Holt의 선형 기법에 대한 오차 보정식을 대입</li>
</ul>
</li>
<li><strong><em>β =</em></strong> <strong><em>αβ*</em></strong> 로 표현</li>
</ul>
</li>
</ul>
<h3 id="754-etsman-곱셈-오차를-이용하는-홀트의-선형-기법">7.5.4 <strong>ETS(M,A,N): 곱셈 오차를 이용하는 홀트의 선형 기법</strong></h3>
<ul>
<li><p><strong>ETS(M,A,N) 상태공간모델의 식</strong></p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/a868f847-bd9f-428b-9012-4b09dda042a8/image.png" alt=""></p>
<ul>
<li><p>한 단계 앞 학습 오차 <strong><em>ε_t</em></strong></p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/c1f29404-8392-4ea2-a4fe-85d9b4c1ec27/image.png" alt=""></p>
</li>
</ul>
</li>
</ul>
<h3 id="755-다른-ets-모델">7.5.5 다른 ETS 모델</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/8a57f7b6-f01e-49f2-9c99-eb94e1896e57/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 지수 평활 기법 분류 체계]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%A7%80%EC%88%98-%ED%8F%89%ED%99%9C-%EA%B8%B0%EB%B2%95-%EB%B6%84%EB%A5%98-%EC%B2%B4%EA%B3%84</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%A7%80%EC%88%98-%ED%8F%89%ED%99%9C-%EA%B8%B0%EB%B2%95-%EB%B6%84%EB%A5%98-%EC%B2%B4%EA%B3%84</guid>
            <pubDate>Fri, 15 Dec 2023 16:09:20 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 7장 4절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="74-지수-평활-기법-분류-체계">7.4 지수 평활 기법 분류 체계</h2>
<ul>
<li><p>추세와 계절적인 성분을 고려 → 15개의 지수 평활 기법이 가능하다.</p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/ea045f0b-96d6-4fe0-a581-c140754f5014/image.png" alt=""></p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/d77201bd-f789-4e26-b9c3-62e214521020/image.png" alt=""></p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/647b9c62-2b00-497a-9066-8b4dca7207a7/image.png" alt=""></p>
<ul>
<li>추세성분이 있다면 덧셈 기법과 덧셈 감쇠 기법을 사용할 수 있다.</li>
<li>계절성분이 있다면 덧셈 기법과 곱셈 기법을 사용할 수 있다.</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 계절성 기법]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EA%B3%84%EC%A0%88%EC%84%B1-%EA%B8%B0%EB%B2%95</link>
            <guid>https://velog.io/@c_10/Time-Series-%EA%B3%84%EC%A0%88%EC%84%B1-%EA%B8%B0%EB%B2%95</guid>
            <pubDate>Fri, 15 Dec 2023 16:06:26 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 7장 3절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="73-holt-winters의-계절성-기법">7.3 Holt<strong>-Winters의 계절성 기법</strong></h2>
<ul>
<li>계절성을 잡아내기 위해 홀트(Holt)의 선형 추세 기법을 확장한 기법이다.</li>
<li>예측식과 3개의 평활식으로 구성된다.<ul>
<li>평활식<ul>
<li>수준 <strong>ℓ<em>_t</em></strong></li>
<li>추세 <strong><em>b_t</em></strong></li>
<li>계절 성분 <strong><em>s_t</em></strong></li>
<li>각 식은 대응되는 평활 매개변수 <strong><em>α, β∗, γ</em></strong> 를 가진다.</li>
</ul>
</li>
<li><strong><em>m</em></strong> : 계절성의 주기 (분기 데이터 : m=4 , 등)</li>
</ul>
</li>
<li>계절 성분의 특징에 따라 두 가지 형태의 기법이 존재한다. (덧셈 기법, 곱셈 기법)</li>
</ul>
<h3 id="731-holt-winters의-덧셈-기법">7.3.1 Holt<strong>-Winters의 덧셈 기법</strong></h3>
<ul>
<li><p>계절성 변동이 시계열 전반에 걸쳐 거의 일정할 때 사용한다.</p>
</li>
<li><p>덧셈 기법에서 계절성분 <strong><em>s_t</em></strong> : 관측된 시계열의 척도</p>
</li>
<li><p>수준식 <strong>ℓ<em>_t</em></strong> 의 (관측치 <strong><em>y_t</em></strong> - 계절성분 <strong><em>s_t-m)</em></strong>를 통해 데이터에서 계절성을 제거한다.</p>
</li>
<li><p>각 연도 안의 계절성분 <strong><em>s_t</em></strong>는 거의 0에 맞춰진다.
  <img src="https://velog.velcdn.com/images/c_10/post/5570e2ac-b888-466e-b2cd-76b50153d644/image.png" alt=""></p>
<ul>
<li><p><strong><em>k</em></strong></p>
<ul>
<li><strong><em>(h−1)/m</em></strong> 의 정수 부분</li>
<li>k를 통해 
예측을 위해 계절성 지수를 추정한 값이 </li>
<li><em>표본의 마지막 연도*</em>에서 유래하도록 한다.</li>
</ul>
</li>
<li><p>수준식 <strong>ℓ<em>_t</em></strong></p>
<ul>
<li>계절성으로 조정된 관측값(<strong><em>y_t</em></strong> <strong><em>-</em></strong> <strong><em>s_t-m)</em></strong>과 
시간 t에 대한 <strong>비-계절성 예측</strong>(직전 관측값에 계절성분 제외하고 추세만 더한 값)을 
활용한다.</li>
<li>시간 t에 대한 <strong>비-계절성 예측</strong>은 Holt의 선형 추세 기법에서 똑같이 사용된다.</li>
</ul>
</li>
<li><p>계절성 <strong><em>s_t</em></strong></p>
<ul>
<li><p>현재 계절성 지수 (<strong><em>y_t − ℓ_t−1 − b_t−1</em></strong>)와 
한 주기 전(m 시점 이전)의 계절성 지수
사이의 가중 평균</p>
</li>
<li><p>종종 아래와 같이 표현이 가능한데,
  <img src="https://velog.velcdn.com/images/c_10/post/9550a59a-ef84-4500-be3e-c4bd55183709/image.png" alt=""></p>
<pre><code>  ㄟ(▔,▔)ㄏ 왜 이렇게 표현할 수 있을까 ?

  식을 비교해보면
  ℓ_t = ℓ_t−1 + b_t−1 라는 식이 성립해야 한다.
  b_t-1은 t-1시점에서의 추세(기울기)이므로,

  계절성으로 조정된 값이라 할 때,

  어떠한 시점의 수준값에 추세를 한번 더하면,
  다음 시점의 수준값으로 볼 수 있다.</code></pre><ul>
<li>위 식의 <strong><em>ℓ_t</em></strong>에 <strong>**성분 형태의 수준식</strong>을 대입하면,
<img src="https://velog.velcdn.com/images/c_10/post/0d1f47ec-f03d-4194-89fe-9ed2768c98d1/image.png" alt=""></li>
<li>이러한 형태에서 <strong><em>γ∗</em></strong>이 <strong><em>0≤γ∗≤1</em></strong> 이고, 기본 형태의 <strong><em>γ</em></strong>은 <strong><em>γ = γ∗(1−α)</em></strong> 이다.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="732-holt-winters의-곱셈-기법">7.3.2 Holt<strong>-Winters의 곱셈 기법</strong></h3>
<ul>
<li>계절성 변동이 시계열의 수준에 비례하게 변할 때 사용한다.</li>
<li>곱셈 기법에서 계절성분 <strong><em>s_t</em></strong> : 특정 값의 백분율로 상대적인 값을 표현한다.</li>
<li>수준식 <strong>ℓ<em>_t</em></strong> 의 (관측치 <strong><em>y_t</em></strong> / 계절성분 <strong><em>s_t)</em></strong>를 통해 데이터에서 계절성을 제거한다.</li>
<li>각 연도 안의 계절성분 <strong><em>s_t</em></strong>는 거의 m에 맞춰진다.
<img src="https://velog.velcdn.com/images/c_10/post/b95be6ff-0a8b-4911-9dcf-fc6b027dfdc0/image.png" alt=""></li>
</ul>
<h3 id="733-holt-winters의-감쇠-기법">7.3.3 Holt<strong>-Winters의 감쇠 기법</strong></h3>
<ul>
<li>홀트-윈터스(Holt-Winters)의 덧셈과 곱셈 기법 두 경우 모두 감쇠 효과를 추가할 수 있다.</li>
<li>추세에 곱하는 h 대신 <strong><em>ϕ + ϕ^2 + … + ϕ^h</em></strong> 를 사용한다.</li>
<li>추세에 곱하는 1 대신 <strong><em>ϕ</em></strong> 를 사용한다.</li>
<li>아래는 곱셉 기법에 감쇠 기법을 추가한 것인데, 덧셈 기법에서도 똑같이 적용하면 된다.
<img src="https://velog.velcdn.com/images/c_10/post/c5ffb8db-2190-45c6-b34f-fab75373c8df/image.png" alt=""></li>
</ul>
<h3 id="734-예제--국제선-여행객-예측">7.3.4 예제 : 국제선 여행객 예측</h3>
<ul>
<li><strong>Table 7.3 덧셈 기법</strong>
  <img src="https://velog.velcdn.com/images/c_10/post/f8bceadf-94e1-48c5-858c-044c24e70055/image.png" alt=""><ul>
<li>추세가 모든 시점에서 0.70으로 고정됨을 알 수 있다.</li>
<li>계절성이 존재하는 데이터에 덧셈 기법을 사용하여 예측 성능이 좋지 않음을 알 수 있다.</li>
</ul>
</li>
</ul>
<hr>
<ul>
<li><strong>Table 7.4 곱셈 기법</strong>
<img src="https://velog.velcdn.com/images/c_10/post/d86f665e-77a1-471d-aae0-8601a4eea2e9/image.png" alt=""><ul>
<li>추세가 모든 시점에서 0.70을 기준으로 조금씩 변동이 존재함을 알 수 있다.</li>
<li>계절성이 존재하는 데이터에 곱셈 기법을 사용하여 좋은 성능을 보였다.</li>
<li>곱셈 기법에서 예측값은 
덧셈 기법에 비해
수준값 변화에 따른 계절성 변동이 더 크다.</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 추세 기법]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%B6%94%EC%84%B8-%EA%B8%B0%EB%B2%95</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%B6%94%EC%84%B8-%EA%B8%B0%EB%B2%95</guid>
            <pubDate>Fri, 15 Dec 2023 15:57:23 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 7장 2절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="72-추세-기법">7.2 추세 기법</h2>
<h3 id="721-holt의-선형-추세-기법">7.2.1 Holt의 선형 추세 기법</h3>
<ul>
<li><p>추세가 있는 데이터를 예측할 수 있도록 단순 지수 평활을 확장한 기법이다.</p>
</li>
<li><p>Forecast equation과 
두 개의 Smoothing equation (하나는 수준에 관한 것, 다른 하나는 추세에 관한 것)을 포함이다.
<img src="https://velog.velcdn.com/images/c_10/post/9421df28-22a8-4b68-88e7-1299dabd9099/image.png" alt=""></p>
<ul>
<li><strong>ℓ<em>_t</em></strong> : 시간 <strong><em>t</em></strong>에서 추정한 수준값, 수준식</li>
<li><strong><em>b_t</em></strong> : 시간 <strong><em>t</em></strong>에서의 시계열의 추세(기울기) 추정 값</li>
<li><strong><em>α</em></strong> : 수준에 대한 평활 매개변수</li>
<li><strong><em>β∗</em></strong> : 추세에 대한 평활 매개변수<ul>
<li><strong><em>β∗</em></strong>이 작다는 것은 기울기가 시간에 따라 변하기 어려움을 의미한다.</li>
</ul>
</li>
<li>Level equation(수준식)<ul>
<li>수준값 <strong>ℓ<em>_t</em></strong> 은 관측치 <strong><em>y_t</em></strong> 의 가중 평균이다.</li>
<li>(<strong>ℓ<em>_t-1 + b_t-1)</em></strong>으로 시간 t에 대한 one-step-ahead 학습 예측임을 알 수 있다.</li>
</ul>
</li>
<li>Trend equation(추세식)<ul>
<li>추세값 b_t는 이전에 추정된 수준값(<strong>ℓ<em>_t -</em> ℓ<em>_t-1</em></strong>)과 추세값(<strong><em>b_t-1</em></strong>)을 기반으로 
시간 t에서 추정한 <strong>추세의 이동 평균</strong>이다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>예측값이 추세를 가지고, 평평하지 않다.</li>
<li>h단계 앞의 예측은 선형 함수 형태이다.<ul>
<li>마지막 시점에서 추정한 수준값(<strong>ℓ<em>_t</em></strong>)에 
마지막 시점에서 추정한 추세값(<strong><em>b_t</em></strong>)과 <strong><em>h</em></strong>를 곱한 값을 
더한 값이다.</li>
</ul>
</li>
</ul>
<p><strong>7.2.1.1 예제 : 항공객</strong></p>
<p><img src="https://velog.velcdn.com/images/c_10/post/606af417-a151-4142-9c4f-f55a62925c5f/image.png" alt=""></p>
<h3 id="722-gardner--mckenzie의-감쇠-추세-기법">7.2.2 Gardner &amp; McKenzie의 감쇠 추세 기법</h3>
<ul>
<li>홀트(Holt)의 선형 기법 : 미래에도 계속 일정한 (증가 또는 감소) 추세가 존재한다.<ul>
<li>이는 과도하게 예측하는 경향일 수 있고, 예측 범위(forecast horizon)이 늘어날수록 더 심해진다.</li>
</ul>
</li>
<li>이를 해결하고자 미래 어느 시점에 추세를 평평하게 감쇠시키는 한 가지 매개변수를 도입하였다.</li>
<li>추세 감쇠 효과를 보이며, 시계열 자동 예측 분야에서 가장 인기있는 기법이다.
<img src="https://velog.velcdn.com/images/c_10/post/bcd66355-d513-49c2-bd6b-f6651c049c15/image.png" alt=""><ul>
<li><strong><em>ϕ</em></strong> : 감쇠 매개변수<ul>
<li>추세를 감쇠시켜, 미래 어떤 시점에 추세가 상수가 되도록 한다.</li>
<li><strong><em>ϕ</em></strong>가 작을수록, 추세 감쇠 효과가 크다.<ul>
<li>실제 상황에서 <strong><em>ϕ</em></strong>가 0.8보다 작은 경우는 거의 없다.</li>
</ul>
</li>
<li><strong><em>ϕ = 1</em></strong> 일 때, Holt의 선형 기법과 동일하다. (비-감쇠 모델)<br>⇒ <strong><em>ϕ</em></strong>는 보통 최소 0.8 최대 0.98로 둔다.</li>
<li>h→∞일 수록 예측치 y_hat_t+h|t 를 산출할 때, 추세에 곱해지는 값은
  <strong>ϕ + ϕ</strong>^2 + … + <strong>ϕ^h*</strong> 에서 <strong><em>ϕ / (1-ϕ)</em></strong> 가 된다.<ul>
<li><strong>단기 예측값에서는 추세</strong>, <strong>장기 예측값에서는 상수로</strong> 표현하기 위함이다.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 지수평활과 단순지수평활]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%A7%80%EC%88%98%ED%8F%89%ED%99%9C%EA%B3%BC-%EB%8B%A8%EC%88%9C%EC%A7%80%EC%88%98%ED%8F%89%ED%99%9C</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%A7%80%EC%88%98%ED%8F%89%ED%99%9C%EA%B3%BC-%EB%8B%A8%EC%88%9C%EC%A7%80%EC%88%98%ED%8F%89%ED%99%9C</guid>
            <pubDate>Fri, 15 Dec 2023 15:51:57 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 7장 1절을 참고하여 작성하였습니다.</p>
</blockquote>
<h1 id="7-지수평활">7. 지수평활</h1>
<ul>
<li>“가장 최근 관측값이 가장 높은 가중치를 갖는다”</li>
</ul>
<h2 id="71-단순-지수-평활">7.1 단순 지수 평활</h2>
<ul>
<li>simple exponential smoothing, 단일 지수 평활(single exponential smoothing)</li>
<li><strong>추세나 계절성 패턴이 없는 데이터</strong>를 예측할 때 사용하는 방법이다.</li>
<li>오래된 관측값보다 더 <strong>최근 관측값에 더 큰 가중치</strong>를 주는 방법</li>
<li>단순 기법 사용 시,
<img src="https://velog.velcdn.com/images/c_10/post/286061d5-5989-4ee5-a36e-2e8f32049a2b/image.png" alt=""><ul>
<li>모든 미래 예측값 = 시계열의 마지막 관측값<ul>
<li>Why? 가장 최근 관측값만 가장 중요한 유일한 값 
&amp; 이전의 모든 관측값의 정보는 미래 예측에 도움 X</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>평균 기법 사용 시,
<img src="https://velog.velcdn.com/images/c_10/post/aa0f9a2b-d6da-4b60-afc5-29a748878c15/image.png" alt=""><ul>
<li>모든 관측값이 동일하게 중요하다.</li>
<li>모든 미래 예측값 ⇒ 모든 같은 가중치 부여</li>
</ul>
</li>
</ul>
<ul>
<li><p><code>단순 지수 평활</code> <strong>사용 시,</strong>
<img src="https://velog.velcdn.com/images/c_10/post/5b1c919a-6977-4b1a-aaaf-6349b6233fba/image.png" alt=""></p>
<ul>
<li><strong><em>y_hat_(T+1|T)</em></strong> : one-step-ahead forecast(T+1에 대한 한 단계 앞 예측치)<ul>
<li>y_1, … , y_T 의 모든 관측값을 가중 평균하여 얻은 값이다.</li>
</ul>
</li>
<li><strong><em>α</em></strong> : 평활 매개변수 (0≤<strong><em>α</em></strong>≤1)<ul>
<li>가중치 감소 비율을 조정한다.</li>
<li><strong><em>α</em></strong>가 작을 때, 더 먼 과거 관측값의 가중치가 커진다.</li>
<li><strong><em>α</em></strong>가 클 때, 더 최근 과거 관측값의 가중치가 커진다. (1인 경우, 단순 예측 기법과 동일)</li>
<li>어떤 <strong><em>α</em></strong> 이더라도, 관측치에 붙는 가중치는 과거로 갈수록 감소한다.</li>
<li>어떤 <strong><em>α</em></strong> 이더라도, 가중치의 합은 근사적으로 1이다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="711-가중-평균-형태">7.1.1 가중 평균 형태</h3>
<ul>
<li><p>단순 지수 평활 식 7.1 에 대한 다른 표현 형태</p>
<ul>
<li><p>시간 <strong><em>T+1</em></strong> 의 예측 = 시간 <strong><em>T</em></strong>의 예측 + 가장 최근 관측값
  <img src="https://velog.velcdn.com/images/c_10/post/f07eb67e-a7d1-4808-811a-c4839007b322/image.png" alt=""></p>
</li>
<li><p><strong><em>t = 1, … , T</em></strong> 일 때, 적합값을 보면 아래와 같을 것이다.
  <img src="https://velog.velcdn.com/images/c_10/post/e0627912-f5be-4e27-94b3-671bcc117dec/image.png" alt=""></p>
<ul>
<li><p>이 단계는 one-step-forecast 이기 때문에, t=1 일 때 적합값을 <strong><em>ℓ_0</em></strong>라 가정하면 아래의 식이 성립한다.
<img src="https://velog.velcdn.com/images/c_10/post/672c6925-de4f-44d3-b9ed-844c0045574d/image.png" alt=""></p>
</li>
<li><p>해당 식을 풀어 쓰면 아래와 같다.
<img src="https://velog.velcdn.com/images/c_10/post/3f49d0e9-b01d-442d-a8df-36aae230f815/image.png" alt=""></p>
</li>
<li><p>아래는 식을 일반화 한 형태이다.
<img src="https://velog.velcdn.com/images/c_10/post/1dc0fbaa-93fe-45c3-b873-f1cf2cfc3512/image.png" alt=""></p>
</li>
<li><p><strong><em>T</em></strong>가 클 수록 마지막 항의 크기가 작아진다.</p>
<ul>
<li>시계열 데이터의 길이가 길수록 첫 시점의 적합값의 개입이 작아진다.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="712-성분-형태">7.1.2 성분 형태</h3>
<ul>
<li><p>단순 지수 평활 식 7.1 에 대한 다른 표현 형태</p>
</li>
<li><p>기법에 포함된 각 성분에 대한 Forecast equation과 Smoothing equation으로 구성된다.</p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/55319aae-8e43-4846-a701-b82f522dc398/image.png" alt=""></p>
<ul>
<li><strong><em>ℓ_t</em></strong> : 시간 t에서 시계열의 수준식, 수준값(가중치에 의해 평활화된 값)<ul>
<li>단순 지수평활에서 포함된 유일한 성분이다.</li>
</ul>
</li>
<li>Smoothing equation<ul>
<li>각 시기 t에서 시계열의 추정된 수준을 얻을 수 있다.</li>
</ul>
</li>
</ul>
</li>
<li><p>성분 형태는 자주 사용하지 않지만, 다른 성분을 추가할 때 쉽게 사용할 수 있는 형태이다.</p>
</li>
</ul>
<h3 id="713-평평한-예측값">7.1.3 평평한 예측값</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/85dbd1de-92a7-4f26-abf7-6db12483da57/image.png" alt=""></p>
<ul>
<li>단순 지수 평활은 평평한 예측함수를 가진다.<ul>
<li>즉, h가 몇이든 모든 예측값이 마지막 수준값과 같은 값을 갖는다.</li>
<li>Why? 이건 one-step-forecast 이기 때문에</li>
</ul>
</li>
<li>이러한 예측은 시계열에 추세나 계절 성분이 없을 때 사용할 수 있다.</li>
</ul>
<h3 id="714-최적화">7.1.4 최적화</h3>
<ul>
<li><p>단순 평활 지수를 사용하기 위해 
평활 매개변수 <strong><em>α</em></strong> 와 초기값 <strong><em>ℓ_0</em></strong> 가 필요하다.</p>
</li>
<li><p>최적의 <strong><em>α</em></strong> 를 선정하는 방법
  모든 <strong><em>t</em></strong>에 대한 예측값을 산출하고, 그에 대한 잔차를 최소화 하는 <strong><em>α</em></strong> 를 선정한다.</p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/00942582-16d3-4821-b1a3-27c7402f3013/image.png" alt=""></p>
</li>
</ul>
<h3 id="715-예제--사우디-아라비아의-원유-생산량">7.1.5 예제 : 사우디 아라비아의 원유 생산량</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/b8f3f84c-bdd4-45b7-8d47-0f88b0355782/image.png" alt=""></p>
<ul>
<li><strong><em>t = 1, 2, … , 18</em></strong>에 대해 관측값 <strong><em>y_t</em></strong>와 적합값 <strong>ℓ<em>_t</em></strong> 의 SSE를 최소화하는 <strong><em>α</em></strong> 를 산출한다.</li>
<li>이를 기반으로 미래(2014~2018)의 원유 생산량을 예측한다.<ul>
<li><strong><em>t=18</em></strong> 에서의 적합값이 이후 모든 시점의 예측값이다. (Why? [7.1.3 평평한 예측값])</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 추세와 계절성의 강도를 측정하기]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%B6%94%EC%84%B8%EC%99%80-%EA%B3%84%EC%A0%88%EC%84%B1%EC%9D%98-%EA%B0%95%EB%8F%84%EB%A5%BC-%EC%B8%A1%EC%A0%95%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%B6%94%EC%84%B8%EC%99%80-%EA%B3%84%EC%A0%88%EC%84%B1%EC%9D%98-%EA%B0%95%EB%8F%84%EB%A5%BC-%EC%B8%A1%EC%A0%95%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 15 Dec 2023 15:42:53 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 6장 7절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="67-추세와-계절성의-강도를-측정하기">6.7 <strong>추세와 계절성의 강도를 측정하기</strong></h2>
<ul>
<li><p>시계열 분해 표현</p>
<p>  $$
  y_t=S_t+T_t+R_t
  $$</p>
<ul>
<li>T_t : 평활(smoothing)된 추세 성분</li>
<li>S_t : 계절성 성분</li>
<li>R_t : 나머지 성분</li>
</ul>
</li>
<li><p>데이터에 시계열 개수가 많은 경우에 추세의 강도나 계절성의 강도를 통해 가장 강도가 강한 데이터를 찾는다.</p>
</li>
</ul>
<h3 id="671-추세의-강도">6.7.1 추세의 강도</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/fff44ec2-7e62-41ca-ad48-f41bff2ac4a3/image.png" alt=""></p>
<ul>
<li>추세가 강하게 나타난다?<ul>
<li>계절성을 제외한 데이터(추세+나머지)가 나머지 성분보다 더 큰 변동성을 가진다.</li>
<li><strong><em>Var(R_t) / Var(T_t+R_t)</em></strong> 가 상대적으로 작은 값이다. <strong>(T_t가 큰 값일 테니)</strong></li>
<li><strong><em>F_T</em></strong> <strong>≈</strong> 1</li>
</ul>
</li>
<li>추세가 거의 없거나 아예 없다?<ul>
<li><strong><em>Var(R_t) / Var(T_t+R_t)</em></strong> 이 거의 1이 나와야 한다. <strong>(T_t 가 0에 가까울테니)</strong></li>
<li><strong><em>F_T</em></strong> <strong>≈</strong> 0</li>
</ul>
</li>
<li>나머지 성분의 분산이    계절성을 제외한 데이터(추세+나머지)의 분산보다 크다?<ul>
<li>최소 값인 0이 된다.</li>
</ul>
</li>
</ul>
<h3 id="672-계절성의-강도">6.7.2 계절성의 강도</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/50d242e2-a2d1-4a0c-a3be-83ac0caa5a3e/image.png" alt=""></p>
<ul>
<li>계절성이 강하다?<ul>
<li>추세-주기를 제외한 데이터(계절성+나머지)가 나머지 성분보다 더 큰 변동성을 가진다.</li>
<li><strong><em>Var(R_t) / Var(S_t+R_t)</em></strong> 가 상대적으로 작은 값이다. <strong>(S_t가 큰 값일 테니)</strong></li>
<li><strong><em>F_S</em></strong> <strong>≈</strong> 1</li>
</ul>
</li>
<li>계절성이 거의 없거나 아예 없다?<ul>
<li><strong><em>Var(R_t) / Var(S_t+R_t)</em></strong> 이 거의 1이 나와야 한다. <strong>(S_t 가 0에 가까울테니)</strong></li>
<li><strong><em>F_S</em></strong> <strong>≈</strong> 0</li>
</ul>
</li>
<li>나머지 성분의 분산이    추세을 제외한 데이터(계절성+나머지)의 분산보다 크다?<ul>
<li>최소 값인 0이 된다.</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 고전적인 분해법]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EA%B3%A0%EC%A0%84%EC%A0%81%EC%9D%B8-%EB%B6%84%ED%95%B4%EB%B2%95</link>
            <guid>https://velog.io/@c_10/Time-Series-%EA%B3%A0%EC%A0%84%EC%A0%81%EC%9D%B8-%EB%B6%84%ED%95%B4%EB%B2%95</guid>
            <pubDate>Fri, 15 Dec 2023 15:40:05 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 6장 3절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="63-고전적인-분해법">6.3 고전적인 분해법</h2>
<ul>
<li>덧셈 분해와 곱셈 분해에 대한 더욱 자세한 설명</li>
<li>1920년대에 창안되었고, 다른 시계열 분해 방법의 기초가 된다.</li>
<li>가정 : 계절적인 성분이 매년 일정하다.<ul>
<li>주기 m 값을 계절성 지수(seasonal indices) 라고도 한다.</li>
</ul>
</li>
</ul>
<h3 id="631-덧셈-분해">6.3.1 덧셈 분해</h3>
<p><strong>1단계</strong></p>
<ul>
<li>데이터에서 추세-주기 성분 <strong><em>T_hat_t</em></strong> 을 계산한다.</li>
<li>m이 짝수?<ul>
<li>2×m MA를 사용하여 추세-주기 성분 <strong><em>T_hat_t</em></strong> 을 계산한다.</li>
</ul>
</li>
<li>m이 홀수?<ul>
<li>m MA를 사용하여 추세-주기 성분 <strong><em>T_hat_t</em></strong> 을 계산한다.</li>
</ul>
</li>
</ul>
<p><strong>2단계</strong></p>
<ul>
<li>데이터에서 추세-주기 성분을 제거한다. (계절성 + 나머지 만을 남긴다.)<ul>
<li><strong><em>y_t - T_hat_t</em></strong></li>
</ul>
</li>
</ul>
<p><strong>3단계</strong></p>
<ul>
<li>각 계절마다 <code>계절성분</code> <strong><em>S_hat_t</em></strong> 을 측정한다.</li>
<li>How? 추세를 제거한 값 → 해당 계절에 대한 평균<ul>
<li>월별 데이터에서 3월의 계절 성분을 측정하기 위해, 
데이터에서 추세를 제거한 뒤 모든 3월에 대한 평균을 계산한다.</li>
<li>계산한 <code>계절성분</code> 값이 0 근처의 값으로 조정된다.</li>
</ul>
</li>
</ul>
<p><strong>4단계</strong></p>
<ul>
<li>데이터 y_t에서 추세-주기 성분과 계절 성분을 빼서 나머지 성분을 계산한다.<ul>
<li><strong><em>R_hat_t = y_t − T_hat_t − S_hat_t</em></strong></li>
</ul>
</li>
</ul>
<h3 id="632-곱셈-분해">6.3.2 곱셈 분해</h3>
<ul>
<li>덧셈 분해법에서 뺄셈을 나눗셈으로</li>
</ul>
<p><strong>1단계</strong></p>
<ul>
<li>데이터에서 추세-주기 성분 <strong><em>T_hat_t</em></strong> 을 계산한다.</li>
<li>m이 짝수?<ul>
<li>2×m MA를 사용하여 추세-주기 성분 <strong><em>T_hat_t</em></strong> 을 계산한다.</li>
</ul>
</li>
<li>m이 홀수?<ul>
<li>m MA를 사용하여 추세-주기 성분 <strong><em>T_hat_t</em></strong> 을 계산한다.</li>
</ul>
</li>
</ul>
<p><strong>2단계</strong></p>
<ul>
<li>데이터에서 추세-주기 성분을 제거한다. (계절성 + 나머지 만을 남긴다.)<ul>
<li><strong><em>y_t / T_hat_t</em></strong></li>
</ul>
</li>
</ul>
<p><strong>3단계</strong></p>
<ul>
<li>각 계절마다 <code>계절성분</code> <strong><em>S_hat_t</em></strong> 을 측정한다.</li>
<li>How? 추세를 제거한 값 → 해당 계절에 대한 평균<ul>
<li>월별 데이터에서 3월의 계절 성분을 측정하기 위해, 
데이터에서 추세를 제거한 뒤 모든 3월에 대한 평균을 계산한다.</li>
<li>계산한 <code>계절성분</code> 값이 m 근처의 값으로 조정된다.</li>
</ul>
</li>
</ul>
<p><strong>4단계</strong></p>
<ul>
<li>데이터 y_t에서 추세-주기 성분과 계절 성분을 나누어서 나머지 성분을 계산한다.<ul>
<li><strong><em>R_hat_t = y_t / (T_hat_t</em> · <em>S_hat_t)</em></strong>
<img src="https://velog.velcdn.com/images/c_10/post/834a4c3c-8f11-4380-986f-f590ad6d2729/image.png" alt=""></li>
</ul>
</li>
<li>1보다 작은 나머지 값을 보면,
추세-주기 성분의 일부가 나머지 성분으로 유출되어,
나머지 성분에 안 좋은 영향을 준다.</li>
</ul>
<h3 id="633-고전적인-분해에-대한-첨언">6.3.3 <strong>고전적인 분해에 대한 첨언</strong></h3>
<ul>
<li>여전히 널리 사용되고 있지만, 아래 문제들로 인해 주의를 해야하며, 더 나은 기법들을 사용한다.</li>
</ul>
<ol>
<li><strong>처음 몇 개와 마지막 몇 개의 관측값에 대한 추세 추정값을 얻을 수 없다.</strong> (이동평균을 사용해서)<ul>
<li>같은 기간에 대해 나머지 성분을 측정하는 것도 불가능</li>
</ul>
</li>
<li><strong>추세-주기 측정</strong>은 데이터에 나타나는 급격한 증가나 감소를 <strong>과도하게 매끄럽게</strong> 한다.</li>
<li>시간적으로 변하는 계절적인 변화를 다룰 수 없다.<ul>
<li>계절성분이 매년 반복된다는 것이 <strong>가정</strong>이기 때문에</li>
</ul>
</li>
<li>특이한 값을 다루기에 적절하지 않다.</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 이동평균]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%9D%B4%EB%8F%99%ED%8F%89%EA%B7%A0</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%9D%B4%EB%8F%99%ED%8F%89%EA%B7%A0</guid>
            <pubDate>Fri, 15 Dec 2023 15:38:20 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 6장 2절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="62-이동평균ma--moving-average">6.2 이동평균(MA : Moving Average)</h2>
<ul>
<li>1920~1950년 까지 주로 사용된 고전적인 시계열 분해 방법<ul>
<li>그 첫 번째 단계는 추세-주기(trend-cycle)를 측정하기 위한 이동평균 방법을 사용한다.</li>
</ul>
</li>
</ul>
<h3 id="621-이동-평균-평활">6.2.1 이동 평균 평활</h3>
<ul>
<li>차수 m의 이동 평균을 아래와 같이 표현할 수 있다. 
(차수가 3인 경우 현재 시점부터 과거 3개 이전의 시점까지의 데이터 영향도를 보겠다는 뜻)
<img src="https://velog.velcdn.com/images/c_10/post/de83f315-73af-471e-a136-43bf9aa66f2a/image.png" alt=""><ul>
<li><strong><em>m = 2k + 1</em></strong></li>
<li>식을 보면 t 시점으로부터 [-k, +k] 기간의 관측값에 대한 평균을 나타낸다.</li>
<li><strong><em>k</em></strong> 기간 안의 시계열 값을 평균으로 산출함으로써 시간 t의 추세-주기(trend-cycle)를 측정한다.<ul>
<li>평균을 산출함으로써 무작위성을 줄이고, 매끄러운 추세-주기(trend-cycle) 성분만 남긴다.</li>
<li>차수 m의 이동 평균 이라는 의미에서 m-MA 라고 부른다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>예시 : 호주 남부의 매년 주거용 전기 판매량</strong>
<img src="https://velog.velcdn.com/images/c_10/post/7775b770-df21-4bbb-acee-6fbdba47f818/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/c_10/post/860c81bb-36b1-4254-8fb0-a474c0a07e4a/image.png" alt=""></p>
<ul>
<li>Table 6.1의 판매량(GWh)는 5년 간의 관측값의 평균이다. → 차수가 5이기 때문에<ul>
<li>판매량(GWh) : 기준 년도 + “향후 4년”</li>
</ul>
</li>
<li>Table 6.1의 “5-MA” 는 추세-주기(trend-cycle)의 측정값 → 측정값을 나타내는 차수 5의 이동평균<ul>
<li>5-MA : 연도 기준으로 기준 년도 + “앞으로 2년 뒤로 2년”</li>
<li>첫부분 2개의 5-MA와 끝부분 2개의 5-MA 값이 존재 X 
→ 끝부분 근처의 추정값을 허용하는 더 정교한 추세-주기 추정 기법을 사용한다.
<img src="https://velog.velcdn.com/images/c_10/post/263fe759-4475-43aa-97fe-9f5d738eb65b/image.png" alt=""></li>
<li>파악할 점<ol>
<li>원본 데이터보다 얼마나 더 매끄러운지</li>
<li>부가적인 변동을 제외한 시계열의 주된 움직임</li>
</ol>
</li>
<li>차수 → 추세-주기(trend cycle) 추정치의 매끄러운 정도를 결정한다.<ul>
<li>클수록 더 매끄럽다.</li>
<li>주로 3, 5, 7 같은 홀수이다. (대칭)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="622-이동평균의-이동평균">6.2.2 <strong>이동평균의 이동평균</strong></h3>
<ul>
<li>이동평균을 또 이동평균 한다.</li>
<li>짝수 차수 이동 평균을 대칭적으로 만들기 위함이다.
<img src="https://velog.velcdn.com/images/c_10/post/f989b80e-1328-4f94-9fcb-0fa7e5cd50de/image.png" alt=""></li>
<li>2×4 MA : 4-MA 한 뒤, 2-MA 진행</li>
<li>차수 4의 중심화된 이동평균 : 4-MA와 같은 짝수 차수 이동 평균 이후에 2-MA가 나올 때
  <img src="https://velog.velcdn.com/images/c_10/post/071070f4-933f-4470-a9c8-8f174b34a49e/image.png" alt=""><ul>
<li>짝수에 대한 이동 평균 시, 나올 수 있는 2가지 경우에 대한 평균을 진행한다.</li>
<li>관측치에 대한 가중 평균 형태이다.</li>
<li>대칭적이다.</li>
</ul>
</li>
<li>다른 조합으로도 가능하지만, 대칭을 위해 짝수는 짝수끼리, 홀수는 홀수끼리</li>
<li>왜? 중심화된 이동평균을 사용하는가?</li>
</ul>
<h3 id="623-계절성-데이터에서-추세-주기를-측정하기">6.2.3 <strong>계절성 데이터에서 추세-주기를 측정하기</strong></h3>
<ul>
<li><p>계절성 데이터에서 추세-주기(trend-cycle)을 측정하기 위해서</p>
</li>
<li><p>차수 4의 중심화된 이동평균(2×4 MA)
  <img src="https://velog.velcdn.com/images/c_10/post/2e79248c-014e-478a-942f-cac6115218e1/image.png" alt=""></p>
<ul>
<li>첫 번째와 마지막이 같은 가중치(1/8)을 가진다 
→ 분기별 데이터로 봤을 때, 같은 분기에 같은 가중치가 주어진다 
→ 평균으로 인해 계절성 변동이 사라진다. 
→ 결과값 T_hat_t에 계절성 X 
(2×8 MA 이나 2×12, 2×12 MA 를 사용해도 비슷한 결과이다.)</li>
</ul>
</li>
<li><p>일반화</p>
<p>  2×m MA 일 때,</p>
<ol>
<li>첫 번째와 마지막을 제외하고 모든 관측값에 1/m의 가중치를 가진다.</li>
<li>첫 번째와 마지막은 1/(2m)의 가중치를 가진다.</li>
</ol>
</li>
<li><p>짝수의 계절성 주기를 가지는 시계열 데이터? (분기, 월 등)</p>
<ul>
<li>2×m MA 를 사용하여, 추세-주기를 측정 (m이 짝수)</li>
</ul>
</li>
<li><p>홀수의 계절성 주기를 가지는 시계열 데이터?</p>
<ul>
<li>m MA 를 사용하여, 추세-주기를 측정 (m이 홀수)
<img src="https://velog.velcdn.com/images/c_10/post/e261ffe5-0740-462e-97dd-b477d69229a8/image.png" alt=""></li>
</ul>
</li>
<li><p>2×12 MA 를 적용한 결과, (월별 데이터이므로 m=12, → 짝수 → 2 x m MA 형태)</p>
</li>
<li><p>매끄러운 선에서 계절성이 제거됨.</p>
<ul>
<li>만약 12, 24, 36 등 과 같은 값이 아닌 다른 값으로 했다면 계절성 변화를 나타내는 매끄러운 선일 것이다.</li>
</ul>
</li>
</ul>
<h3 id="624-가중-이동평균">6.2.4 가중 이동평균</h3>
<ul>
<li>이동평균의 이동평균 ⇒ 가중 이동평균(가중치를 준 이동평균) 형태이다.</li>
<li>2×4 MA ⇒ 가중 5-MA</li>
<li>가중 m-MA (↔ 단순 m-MA)
  <img src="https://velog.velcdn.com/images/c_10/post/211a92c5-0b5b-4514-bc2e-d6ec7b00ea19/image.png" alt=""><ul>
<li><strong><em>k = (m-1) / 2</em></strong></li>
<li>가중치 : <strong><em>[a_-k, … , a_k]</em></strong><ul>
<li>모두 더하면 1</li>
<li><strong><em>a_j = a_-j</em></strong> (대칭적)</li>
</ul>
</li>
</ul>
</li>
<li>천천히 증가하다가 감소하는 가중치를 이용하여 
매끄러운 추세-주기(trend-cycle)를 얻을 수 있다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 시계열 분해 방법]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%B6%84%ED%95%B4-%EB%B0%A9%EB%B2%95</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%8B%9C%EA%B3%84%EC%97%B4-%EB%B6%84%ED%95%B4-%EB%B0%A9%EB%B2%95</guid>
            <pubDate>Fri, 15 Dec 2023 15:32:37 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 6장 1절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="61-시계열-성분">6.1 시계열 성분</h2>
<h3 id="611-덧셈-분해additive-decomposition">6.1.1 덧셈 분해(additive decomposition)</h3>
<ul>
<li><p>시계열 수준에 따라 계절성이나 추세-주기(trend-cycle)가 변하지 않을 때, 덧셈 분해가 적절하다.</p>
<p>  $$
  y_t=S_t+T_t+R_t
  $$</p>
<ul>
<li><strong><em>y_t</em></strong> : 데이터</li>
<li><strong><em>S_t</em></strong> : 계절성 (Seasonal)</li>
<li><strong><em>T_t</em></strong> : 추세-주기 성분(Trend)</li>
<li><strong><em>R_t</em></strong> : 나머지 성분(Reminder)</li>
</ul>
</li>
</ul>
<h3 id="612-곱셈-분해multiplicative-decomposition">6.1.2 곱셈 분해(multiplicative decomposition)</h3>
<ul>
<li><p>시계열 수준에 따라 계절성이나 추세-주기(trend-cycle)가 변할 때, 덧셈 분해가 적절하다. (주로 경제분야)</p>
<p>  $$
  y_t=S_t<em>T_t</em>R_t
  $$</p>
</li>
<li><p>log 변환을 통해 시간에 따라 값이 안정적이게 만들고, 덧셈 분해를 사용할 수 있다.</p>
<p>  $$
  logy_t=logS_t+logT_t+logR_t
  $$</p>
</li>
</ul>
<h3 id="613-예제--전자-장비에-대한-신규-주문-지수-데이터">6.1.3 예제 : 전자 장비에 대한 신규 주문 지수 데이터</h3>
<p><img src="https://velog.velcdn.com/images/c_10/post/2fa9c83a-e56f-4e45-8674-8357f4a58ecb/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/c_10/post/f3ccdf46-29bc-468e-a0ad-1e0d82b41cb6/image.png" alt=""></p>
<ul>
<li>Figure 6.2의 trend, seasonal, remainder을 더하면, data가 나온다.</li>
<li>seasonal은 시간에 따라 느리게 변한다.</li>
<li>두 개 연도 마다 비슷한 trend를 가진다.</li>
<li>서로 멀리 떨어진 연도는 다른 seasonal 패턴을 가진다.</li>
<li>그래프 오른쪽의 회색 막대 : 성분의 상대적인 눈금</li>
</ul>
<p><img src="https://velog.velcdn.com/images/c_10/post/ba146e56-7167-4607-bd92-b7a76b42ab09/image.png" alt=""></p>
<ul>
<li>계절성을 고려하고 싶지 않을 때, 계절성을 제거하여 데이터를 확인한다.<ul>
<li>예 : 월별 실업률 데이터를 다룰 때, 계절성 보단 중요한 경제 상황에 따른 변동을 보고 싶으므로 데이터를 계절성으로 조정한다.</li>
</ul>
</li>
<li>이러한 시계열 데이터는 “매끄럽지 않고” “상승세 or 하락세”로 표현될 수 있다.</li>
<li>시계열 데이터에서 전환점을 살펴보기 위함, 어떤 방향으로의 변화를 해석하기 위함이라면,
계절성으로 조정 X (나머지까지 포함됨) →  추세-주기(trend-cycle) 성분을 사용한다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 상관관계와 인과관계]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%83%81%EA%B4%80%EA%B4%80%EA%B3%84%EC%99%80-%EC%9D%B8%EA%B3%BC%EA%B4%80%EA%B3%84</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%83%81%EA%B4%80%EA%B4%80%EA%B3%84%EC%99%80-%EC%9D%B8%EA%B3%BC%EA%B4%80%EA%B3%84</guid>
            <pubDate>Fri, 15 Dec 2023 15:16:40 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 5장 9절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="59-상관관계-인과관계-그리고-예">5.9 상관관계, 인과관계, 그리고 예</h2>
<h3 id="591-상관관계-≠-인과관계">5.9.1 상관관계 ≠ 인과관계</h3>
<ul>
<li>변수 x는 변수 y를 예측할 때 활용된다 ≠ x가 y의 원인이 된다.</li>
<li>x가 y의 원인이 될 순 있지만, y가 x의 원인이 될 수도 있고, 아예 그렇지 않을 수 있다.</li>
<li><strong>혼선자</strong><ul>
<li>모델 예측에 포함되지 않는 변수 중 다른 반응변수(=종속변수)나 예측변수에 영향을 주는 변수</li>
</ul>
</li>
<li>두 변수 사이에 상관관계가 없을 때
혹은 모델과 반대로 인과관계가 성립할 때
혹은 혼선자가 있을 때
⇒ 그래도 예측할 땐 상관관계가 유용하다.<ul>
<li>별개로 인과관계를 알고 정의할 수 있다면 더 좋은 모델을 만들 수 있다.</li>
</ul>
</li>
</ul>
<h3 id="592-상관관계를-가지는-예측변수로-예측하기">5.9.2 상관관계를 가지는 예측변수로 예측하기</h3>
<ul>
<li>다중공선성(Multicollinearity)<ul>
<li>다중 회귀에서 2개 이상의 예측변수가 비슷한 정보를 가질 때 나타나는 성질</li>
<li>예측변수간 상관관계가 아주 높을 때 발생한다.</li>
<li>한 개의 변수로 다른 한 개의 변수 값을 알 수 있으므로 둘 다 사용하는 것은 비효율적이다.</li>
<li>예측변수 x로 만들어진 선형 결합 모델이
같은 예측변수 x로 만들어진 다른 선형 결합 모델과 상관관계가 높을 때도 다중공선성을 가진다고 한다.</li>
</ul>
</li>
<li>가변수 함정에서의 다중공선성
  (왜 분기별 가변수에 범위수에 따라 4개가 아닌 3개로 하는지?)<ul>
<li>4개로 한다면 d_1 + d_2 + d_3 + d_4 = 1 로, 완벽한 상관관계를 가지게 된다. → 다중공선성 존재</li>
</ul>
</li>
<li>다중공선성이 존재한다면? 예측변수를 사용한다면 회귀 계수를 추정하기 힘들다.
  (물론 R, SPSS, SAS와 같은 통계 소프트웨어에서는 이를 해결하는 패키지가 존재한다.)<ol>
<li>계수에 대한 불확실성 증가 </li>
<li>t-검정 신뢰 불가</li>
<li>예측값과 연결된 예측변수 서술 불가</li>
</ol>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 비선형 회귀 모델]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EB%B9%84%EC%84%A0%ED%98%95-%ED%9A%8C%EA%B7%80-%EB%AA%A8%EB%8D%B8</link>
            <guid>https://velog.io/@c_10/Time-Series-%EB%B9%84%EC%84%A0%ED%98%95-%ED%9A%8C%EA%B7%80-%EB%AA%A8%EB%8D%B8</guid>
            <pubDate>Fri, 15 Dec 2023 15:11:06 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 5장 8절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="58-비선형-회귀">5.8 비선형 회귀</h2>
<ul>
<li><p>선형 관계로 가정할 수 없는 복잡한 경우에 사용한다.</p>
</li>
<li><p>회귀 모델을 추정하기 전, 목표 예상변수 y와 예측변수 x를 변환시킨다. (주로 log 변환을 사용한다.)</p>
</li>
<li><p>x에 log가 붙으면 선형-로그 형태</p>
</li>
<li><p>y에 log가 붙으면 로그-선형 형태</p>
</li>
<li><p>x, y에 둘 다 log가 붙으면 로그-로그 형태이다.</p>
</li>
<li><p>이 때, 모델의 매개변수는 여전히 선형적이다.
$$
log y = β_0 +β_1log x + ε
$$</p>
</li>
<li><p>log x 앞에 붙은 기울기 β_1은 탄력성이라고 하며, x가 1% 증가할 때, y의 평균 백분율 변화율이다.</p>
</li>
<li><p>변수를 log 변환하기 위해서는 모든 관측값이 0보다 커야한다. 아래와 같이 오차값을 활용해 0이 아닌 값이 되도록 한다.
$$
y=f(x)+ε
$$</p>
<ul>
<li>여기서 f(x)는 비선형 함수이다. 
선형회귀에서는 f(x) = β_0 + β_1x이지만, 
비선형회귀에서는 log 변환과 같은 x에 대한 변환이 포함된 함수이다.</li>
</ul>
</li>
<li><p><strong>조각별 선형(piecewise linear)</strong></p>
<ul>
<li>f(x)의 기울기가 변할 수 있는 점(매듭)을 반영하여 표현하는 방법</li>
<li>x_1, t = x로 두고, 변수 x_2, t를 활용한다.
  <img src="https://velog.velcdn.com/images/c_10/post/6d41746c-c2e5-4ccf-9251-2e12f1d2134e/image.png" alt=""></li>
<li>(x-c)_+ 는 양수일 때 (x-c), 음수일 때 0을 나타낸다.
  ⇒ c 점에서 기울기가 구부러진다.</li>
<li>이러한 조각별 선형은 회귀 스플라인의 한 형태이다.</li>
</ul>
</li>
<li><p><strong>회귀 스플라인(regression splines)</strong></p>
<ul>
<li><p>비선형 회귀를 표현하는 방법
  <img src="https://velog.velcdn.com/images/c_10/post/9fac124a-8b8c-442a-b90c-bca1e3962591/image.png" alt=""></p>
<ul>
<li><p>매듭(기울기가 변하는 점) : c_1, … , c_k-1 (k-1개) 를 가지는 조각별 선형 형태이다.
<img src="https://velog.velcdn.com/images/c_10/post/d0c5d0d6-a657-46de-aba5-288419137719/image.png" alt=""></p>
</li>
<li><p>각 x_k (k=1, 2, …)에 2차원 3차원 식을 대입함으로서 3차 회귀 스플라인을 작성한다.</p>
</li>
<li><p>3차 회귀 스플라인이 데이터에 더 적합한 모습을 보인다.</p>
<p>  하지만, x가 과거 데이터가 아닐 때, 예측값 y를 신뢰할 수 없다.</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="581-비선형-추세로-예측하기">5.8.1 비선형 추세로 예측하기</h3>
<ul>
<li>선형 추세로 예측 방법 : x=t로 두고 시계열에 맞추기</li>
<li>가장 간단한 비선형 추세로 예측 방법 : 2차 이상의 추세를 시계열에 맞추기
⇒ 권장 X
  ㄴ Why? 알려진 데이터의 추세에서 알려지지 않은 값을 추론할 경우 예측값이 부정확해서
  <img src="https://velog.velcdn.com/images/c_10/post/8ebee765-5fd8-4d92-a810-63a17edcd931/image.png" alt="">   </li>
<li>더 나은 방식<ul>
<li>선형조각으로 구성된 비선형 추세
  : 조각별 선형 방식에서 시간에 따라 매듭을 맞추는 것
  <img src="https://velog.velcdn.com/images/c_10/post/e56ac637-4a81-4eec-a9cc-b89166fce58f/image.png" alt=""><ul>
<li>시간 τ 에서 추세가 휘는 것을
시점 t일 때, τ를 매듭으로 생각하면 위와 같이 표현할 수 있다.</li>
<li>x_1,t와 x_2,t의 관련 계수가 β_1와 β_2 일 때,
β_1는 τ 시점 전의 추세 기울기, β_1 + β_2 는 τ 시점 후의 추세 기울기</li>
<li>(t-τ)_+ 에 변수를 추가한다면 매듭을 추가하여 더 구부러지게 할 수 있다.</li>
</ul>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 회귀 모델 행렬 정식화]]></title>
            <link>https://velog.io/@c_10/Time-Series-%ED%9A%8C%EA%B7%80-%EB%AA%A8%EB%8D%B8-%ED%96%89%EB%A0%AC-%EC%A0%95%EC%8B%9D%ED%99%94</link>
            <guid>https://velog.io/@c_10/Time-Series-%ED%9A%8C%EA%B7%80-%EB%AA%A8%EB%8D%B8-%ED%96%89%EB%A0%AC-%EC%A0%95%EC%8B%9D%ED%99%94</guid>
            <pubDate>Fri, 15 Dec 2023 14:57:44 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 5장 7절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="57-행렬-정식화">5.7 행렬 정식화</h2>
<p>인라인 수식: $f(x) = \sqrt{1+x}, \quad x \ge -1$</p>
<ul>
<li><p>다중 회귀 모델</p>
<p>  $$
  y_t = β<em>0 + β_1x</em>{1,t} + β<em>2x</em>{2,t} + ... + β<em>kx</em>{k,t} + ε_t
  $$</p>
<ul>
<li>오차 ε_t의 평균은 0이고, 분산은 σ^2이다.</li>
</ul>
</li>
<li><p><strong>행렬 형태</strong>
  $$
  \bold y=(y_1, ... , y_T)&#39;,
  \bold ε=(ε_1, ... , ε_T)&#39;,
  \bold β=(β_0, ... , β_k)&#39;
  $$
  <img src="https://velog.velcdn.com/images/c_10/post/391cab13-4a1d-4f68-95b3-545cae91a83c/image.png" alt=""></p>
<ul>
<li>이러한 행렬들을 통해 다중 회귀 모델 식을 작성하면,
$$
\bold y= \bold X \bold β + \bold ε
$$<ul>
<li>오차의 집합 <strong>ε</strong>의 평균은 0이고, 분산은 <strong>σ^2</strong> * <strong>I</strong> 이다.</li>
<li>행렬 X 의 행은 T개이며, 관측값 수를 나타낸다.</li>
<li>행렬 X 의 열은 k+1개이며, 첫 번째 열이 1로 이루어져 있어 절편을 나타낸다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="571-최소-제곱-추정">5.7.1 최소 제곱 추정</h3>
<ul>
<li>아래와 같이 오차의 내적 값을 표현하는 식을 최소화 하여 “최소 제곱 추정”을 진행한다.
<img src="https://velog.velcdn.com/images/c_10/post/72716f84-f324-41e5-8e87-01d6510e9f92/image.png" alt=""></li>
<li>이 값을 최소화 하기 위해 β는 아래와 같은 값이 되어야 한다. (”정규식” 이라고도 한다.)
<img src="https://velog.velcdn.com/images/c_10/post/0e10601d-742f-4a8e-b85b-cba41d577f85/image.png" alt=""></li>
<li>위 식에는 역행렬 <strong>X’X</strong> 가 필요한데, 만약 <strong>X</strong> 전체가 column rank가 아니라면, X’X는 singular 하여 추정할 수 없게 된다.</li>
<li>잔차 분산
<img src="https://velog.velcdn.com/images/c_10/post/84cd7c07-13c0-4b0e-a198-47ee5420d2b2/image.png" alt=""></li>
</ul>
<h3 id="572-적합값과-교차검증">5.7.2 적합값과 교차검증</h3>
<ul>
<li>[5.7.1 최소 제곱 추정]의 수식을 기반으로 산출한 정규식은 아래와 같다.
  <img src="https://velog.velcdn.com/images/c_10/post/8ecc2050-0fed-494e-82bc-689f8b421a24/image.png" alt=""><ul>
<li>여기서 H = X(X’X)^-1X’ 이고, H는 y_hat을 계산할 때 y에 곱해지는 계수 형태이므로, “hat-matrix”라고도 한다.</li>
</ul>
</li>
<li>H의 대각 성분 값을 h1, … , h_T로 쓰면, 아래 식을 통해 교차검증이 가능하다.
  <img src="https://velog.velcdn.com/images/c_10/post/f0d7f337-8040-45ad-8115-8c5bc62154b4/image.png" alt=""><ul>
<li>여기서 e_t 는 모델의 예측값에 관측값을 맞추기 위한 잔차이다.</li>
<li>따라서, CV 통계를 계산할 때 T개의 나뉜 모델을 실제로 맞출 필요가 없습니다.</li>
</ul>
</li>
</ul>
<h3 id="573-예측값과-예측구간">5.7.3 예측값과 예측구간</h3>
<ul>
<li>예측값 y_hat을 산출하기 위해 필요한 X의 특정 행 벡터를 x^*라 할 때, 아래와 같은 수식을 구할 수 있다.
  <img src="https://velog.velcdn.com/images/c_10/post/cf638d80-abe3-44cd-b639-4fdee1cfec0e/image.png" alt=""> <ul>
<li>이 때의 분산은 아래와 같다.
<img src="https://velog.velcdn.com/images/c_10/post/7f797f06-2c36-4735-8911-bb684c622806/image.png" alt=""></li>
<li>이 때의 95% 예측구간은 아래와 같다.
<img src="https://velog.velcdn.com/images/c_10/post/e57bc24f-d7f6-43f2-85e4-7b7f3454d163/image.png" alt="">      </li>
<li>이 식은 오차항 ε 때문에 생기는 불확실성과
계수의 값을 추정함으로써 발생하는 불확실성을 고려한다.
하지만 x^*에 있는 모든 오차를 무시하기 때문에 예측변수의 미래값이 확실하지 않다면, 예측구간이 매우 좁게 계산된다.</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 회귀모델을 통한 예측]]></title>
            <link>https://velog.io/@c_10/Time-Series-%ED%9A%8C%EA%B7%80%EB%AA%A8%EB%8D%B8%EC%9D%84-%ED%86%B5%ED%95%9C-%EC%98%88%EC%B8%A1</link>
            <guid>https://velog.io/@c_10/Time-Series-%ED%9A%8C%EA%B7%80%EB%AA%A8%EB%8D%B8%EC%9D%84-%ED%86%B5%ED%95%9C-%EC%98%88%EC%B8%A1</guid>
            <pubDate>Fri, 15 Dec 2023 14:39:15 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 5장 6절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="56-회귀로-예측하기">5.6 회귀로 예측하기</h2>
<ul>
<li>y의 예측값 (미래 데이터에 대한 예측값이 필요하다.)
$$
\hat y_t = \hat β<em>0+\hat β_1x</em>{1,t}+\hat β<em>2x</em>{2,t}+\hat β<em>3x</em>{3,t}+...+\hat β<em>kx</em>{k,t}
$$</li>
<li>위 식을 통해 y_hat을 산출하는데 이 때, 오차를 무시하고, 추정된 계수를 사용한다.<ul>
<li>하지만 이 때 구하는 값은 과거 데이터에 대한 적합값이다.</li>
</ul>
</li>
</ul>
<h3 id="561-사전-예측-vs-사후-예측">5.6.1 사전 예측 VS 사후 예측</h3>
<ul>
<li><p><strong>사전 예측</strong></p>
<ul>
<li><p>예측변수 x의 과거 데이터를 기반으로 예측한다.</p>
</li>
<li><p>표본이 끝난 다음 분기의 사전 예측값은 이전까지의 데이터만 사용해야 한다.</p>
</li>
<li><p>따라서 사전 예상값을 내려면 모델에 예측변수(predictor variable)의 미래 값(예상값)이 필요합니다.</p>
<ul>
<li>이를 위해 다양한 기법이 존재한다. (정부 기관에서 내놓은 예측값을 사용하는 것도 하나의 방법이 된다.<pre><code>ㄟ(▔,▔)ㄏ 따라서 사전 예상값을 내려면 모델에 예측변수(predictor variable)의 미래 값(예상값)이 필요합니다. ?
</code></pre></li>
</ul>
<p>사전 예측을 하는 “모델”은
과거 데이터를 기반으로 미래 데이터를 예측해야 하기 때문에,
미래 데이터를 활용한 학습이 필요하다. 
(그래야 나중에 test에서도 미래 데이터를 예측할 것이니까)</p>
<p>그래서 미래 값이 필요하다고 하는 것이다.
```</p>
</li>
</ul>
</li>
<li><p><strong>사후 예측</strong></p>
<ul>
<li><p>예측변수 x의 미래 데이터를 기반으로 예측한다. (지나고 난 뒤 지난 일을 예측해본다.)</p>
</li>
<li><p>관측한 실제 예측 변수 값을 사용하여 사후 예측값을 계산한다.
이러한 예측값은 실제 예측값이 아니지만 예측 모델이 작동하는 것을 살펴볼 때 유용하다.</p>
</li>
<li><p>사후 예측값은 예측변수 x에 대한 가정이 가능하지만,
사후 예측값으로 목표 예상변수 y에 대한 가정을 해선 안된다.</p>
<pre><code>ㄟ(▔,▔)ㄏ
관측한 실제 예측 변수 값을 사용하여 사후 예측값을 계산한다.
이러한 예측값은 실제 예측값이 아니지만 예측 모델이 작동하는 것을 살펴볼 때 유용하다. ?

사후 예측은
이미 지난 시점을 모델의 예측 시점으로 잡고
모델을 학습시켜 결과를 확인한다.

이미 지난 시점이므로 해당 시점의 데이터가 존재하기 때문에,
모델의 학습 성능을 파악할 수 있다.</code></pre></li>
</ul>
</li>
<li><p>사전 예측과 사후 예측값을 비교 평가하면 예측 불확실성의 원인을 파악할 수 있다.</p>
<ul>
<li>예측 모델의 성능 문제 (→ 사전 예측 관련) vs 예측변수에 대한 예측값 (→ 사후 예측 관련)</li>
</ul>
</li>
<li><p><strong>예제 : 호주 분기별 맥주 생산량</strong></p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/e0dcf419-4493-4fba-8f2e-245efc8e1316/image.png" alt=""></p>
<ul>
<li>일반적으로 사전 예측을 할 때, 미래 데이터를 알 수 없으므로 과거 데이터만을 사용한다.</li>
<li>하지만, 예측변수의 달력 변수(계절성 가변수 등) 이나 시간의 확정적인 기능에 근거해 미리 파악할 수 있고, 이러한 경우 사전 예측과 사후 예측이 동일하다.</li>
</ul>
</li>
</ul>
<h3 id="562-시나리오-기반-예측">5.6.2 시나리오 기반 예측</h3>
<ul>
<li><p>관심 있는 예측변수에 대해 가능한 시나리오를 가정하여 예측하는 방법</p>
</li>
<li><p>예시 : 미국 정책 담당자가 고용률 변화 없이 득과 저축에 대해 각각 1.0% 0.5%의 지속적인 성정이 일어나는 것과, 각각 1%와 0.5%의 감소가 일어나는 상황을 시나리오로 구성한다.</p>
<p>  → 해당 시나리오에서 소비 측면의 예측된 변화량을 비교한다.</p>
</li>
<li><p>시나리오를 통해 예측변수의 미래 값을 미리 알고 있다고 가정하기 때문에 이에 따르는 불확실성을 포함하지 않는다.</p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/b350310e-e80e-4b9c-a076-1373db45cc21/image.png" alt=""></p>
</li>
</ul>
<h3 id="563-예측-회귀-모델-세우기">5.6.3 예측 회귀 모델 세우기</h3>
<ul>
<li>회귀 모델의 가장 큰 장점<ul>
<li>관심있는 목표 예상변수 y와 예측변수 x의 중요한 관계를 구할 수 있다.</li>
</ul>
</li>
<li>회귀 모델의 가장 큰 어려움<ul>
<li>사전 예측을 위해서, 각 예측변수의 미래값이 필요하다.</li>
<li>사후 예측에서는 예측변수에 대한 예측값을 얻는 것이 어렵다.<ul>
<li>“예측변수 x 없이 목적 예상변수만으로 목적 예상변수를 직접 예측하는 것”</li>
<li><em>”예측변수 x에 대한 예측값을 예측하는 것”*</em> 둘 중 후자가 더 어려울 수 있다.</li>
</ul>
</li>
</ul>
</li>
<li>대안 : 예측변수 x를 기반으로 한 시차 값을 사용한다.<ul>
<li>h단계 이전의 예측에 관심이 있을 때, h=1, 2, … 에 대해 아래와 같은 식으로 표현할 수 있다.
$$
y_{t,h}=β<em>0+β_1x</em>{1,t}+...+β<em>kx</em>{k,t}+ε_{t+h}
$$</li>
<li>예측변수의 시차값을 포함하면 모델이 예측변수의 예측값을 더 쉽고 직관적으로 산출할 수 있다.<ul>
<li>예시 : 생산 증가를 목표로 하는 정책 변화의 효과는
소비 지출에 바로 영향을 미치지 않고, 시차 효과가 함께 발생할 수 있다.
  → 예측변수인 소비 지출의 시차값을 포함함으로써 소비 지출의 예측값을 더 쉽게 산출 가능하다.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="564-예측구간">5.6.4 예측구간</h3>
<ul>
<li>주로 95%, 80%의 표현이 있다.</li>
<li>간단한 회귀에 대한 예측 구간 계산<ol>
<li>한 예측값 y_hat에 대한 식
 $$
 \hat y = \hat β_0 + \hat β_1x
 $$</li>
</ol>
</li>
</ul>
<pre><code>2. 회귀 오차가 정규 분포를 따른다면, 위 예측값 y_hat 의 대략적인 95%의 예측구간은 아래와 같다.

    ![](https://velog.velcdn.com/images/c_10/post/e0cbadec-1171-43d6-8a00-0d58ae76539a/image.png)

    - T : 관측값의 전체 개수
    - s_x : 관측된 x 값의 표준편차
    - σ_hat_e : 회귀모델의 표준 오차
    - 80% 예측 구간일 때 (1.96) → (1.28)
    - 관측된 x 값과 x_avg가 차이날 때, 예측구간이 넓어지고
    관측된 x 값이 평균과 가까울 때, 예측값을 더욱 확신하게 된다.</code></pre><ul>
<li><p>예제 : 미국 소비 예제</p>
<p>  $$
  \hat y_t = 0.55 + 0.28x_t
  $$</p>
<ul>
<li><p>4개 분기의 개인 소득 x의 평균 : 0.72%</p>
</li>
<li><p>과거 평균 값만큼 증가할 것을 가정하면, 0.75%만큼 증가한다.</p>
</li>
<li><p>95% 예측 구간은 [−0.45, 1.94]</p>
<p>  80% 예측 구간은 [−0.03,1.52]</p>
</li>
<li><p>5%의 극단적인 수입 증가가 발생한다? → 예측구간이 아래 Figure 5.19와 같이 극단적으로 증가한다.
<img src="https://velog.velcdn.com/images/c_10/post/01fab439-ce51-4cf5-87a2-8d819dccda75/image.png" alt=""></p>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 예측변수 선정 기준]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%98%88%EC%B8%A1%EB%B3%80%EC%88%98-%EC%84%A0%EC%A0%95-%EA%B8%B0%EC%A4%80</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%98%88%EC%B8%A1%EB%B3%80%EC%88%98-%EC%84%A0%EC%A0%95-%EA%B8%B0%EC%A4%80</guid>
            <pubDate>Fri, 15 Dec 2023 14:24:35 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 5장 5절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="55-예측변수-선택">5.5 예측변수 선택</h2>
<ul>
<li><p>회귀 모델에서 예측 변수는 무작정 많은 것이 좋지 않고, 가장 좋은 예측 변수 몇가지만 선택하는 전력이 필요하다.</p>
</li>
<li><p>부적합한 예측변수를 찾는 방법 → <strong>유효하지 않은</strong></p>
<ul>
<li>특정한 예측변수 x를 목표 예상변수 y에 대해 그래프를 그렸을 때, 눈에 띄는 관계가 없는 경우 ( → 항상 <strong>유효한 방법은 X</strong>)</li>
<li>모든 예측변수 x에 대해 다중 선형 회귀 분석을 하여 <a href="https://www.notion.so/Forecasting-Principles-and-Practice-ef352b582d9d4073bd23443f40d82202?pvs=21">p-value</a> 가 0.05보다 큰 경우 ( → 2개 이상의 예측변수가 서로 관련 있을 때, p-value가 예상과 다르게 나올 수 있어서 <strong>유효한 방법은 X</strong>)</li>
</ul>
</li>
<li><p>모델을 예측 용도로 사용할 때, 좋은 예측변수 x만을 고르는 것은 유용한 과정이지만,
예측변수 x에 대한 어떤 목표 예상변수 y의 효과를 확인할 때는 유용하지 않다.</p>
</li>
<li><p>예측 정확도를 측정하는 5가지 지표를 아래 소개한다.</p>
<pre><code class="language-r">  CV(fit.consMR)
  #&gt;        CV       AIC      AICc       BIC     AdjR2
  #&gt;    0.1163 -409.2980 -408.8314 -389.9114    0.7486</code></pre>
<ul>
<li>CV, AIC, AICc, BIC는 낮을수록, AdjR2는 높을수록 좋은 모델이다.</li>
</ul>
</li>
</ul>
<h3 id="551-조정된-r2">5.5.1 조정된 R^2</h3>
<ul>
<li><p><strong>기존 R^2</strong></p>
<ul>
<li><p>모델이 과거 데이터를 얼마나 잘 설명하는지 측정하는 지표</p>
<ul>
<li>미래 데이터를 얼마나 잘 예측하는지는 측정할 수 없다.</li>
</ul>
</li>
<li><p>자유도(degree of freedom)를 허용하지 않는다.</p>
<ul>
<li>예측변수를 추가하면, R^2는 (무조건?) 증가하는 경향을 보인다.</li>
</ul>
</li>
<li><p>R^2 score 만으로 모델 성능을 판단하면 안 된다.</p>
<ul>
<li><p>과대 적합에 대한 판단이 되지 않기 때문에</p>
<p>⇒ 이러한 문제를 해결하기 위해 등장한 값이 <strong>조정된 R^2</strong> 이다.</p>
</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>조정된 R^2 (AdjR2)</strong></p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/3c7707f9-6bb5-4d00-b1f0-e9e53fcaeb2f/image.png" alt=""></p>
<ul>
<li><p>T : 관측값의 개수</p>
</li>
<li><p>k : 예측변수의 개수</p>
<p>⇒ 이를 통해 예측변수 개수가 증가한다고 최종 R^2 값이 증가하는 문제를 방지할 수 있다.</p>
</li>
</ul>
</li>
<li><p>너무 많은 예측변수를 선택하는 것이 문제가 될 수 있다.
그 기준을 조정된 R^2의 최대화로 삼는다면, 적절한 예측변수를 선택할 수 있다.</p>
</li>
</ul>
<h3 id="552-교차검증">5.5.2 교차검증</h3>
<ul>
<li>방법<ol>
<li>t 시점의 관측값을 데이터 모음에서 제거하고, 나머지 데이터로 모델을 학습한다.</li>
<li>t 시점을 제외한 데이터에 대한 오차를 t=1, … ,T에 대해 계산한다. (e^∗_1, … , e^*_T)</li>
<li>2번 과정을 통해 산출한 오차로 MSE를 계산하고, 이를 CV(Cross Validation)라 한다.</li>
</ol>
</li>
<li>CV가 가장 작은 모델이 좋은 모델이다.</li>
</ul>
<h3 id="553-아카이케의-정보-기준akaikes-information-criterion-aic">5.5.3 아카이케의 정보 기준(Akaike’s Information Criterion; AIC)</h3>
<ul>
<li>교차검증(CV)와 밀접한 관련이 있다.
<img src="https://velog.velcdn.com/images/c_10/post/db2cf09a-0930-4921-bcbf-f2d69ad60b0a/image.png" alt=""><ul>
<li>T : 관측값의 개수</li>
<li>k : 예측변수의 개수</li>
<li>SSE : 오차의 제곱합</li>
<li>모델에 k개의 예측변수 개수와 추가로 절편, 오차가 있기 때문에 
총 매개변수 개수은 (k+2)를 곱해준다.</li>
</ul>
</li>
<li>AIC 값이 최소인 모델이 좋은 모델이 된다.</li>
<li>T 값이 충분히 크다면, AIC를 최소화 하는 것이 CV 를 최소화 하는 것과 같다.</li>
</ul>
<h3 id="554-수정된-아카이케의-정보-기준aic_c">5.5.4 수정된 아카이케의 정보 기준(AIC_c)</h3>
<ul>
<li>T 값이 작다면 log(SSE/T) 값이 작아지기 때문에, AIC 값이 2(k+2)에 의존하게 된다. 결국 AIC 최소화를 위해 예측변수 x를 너무 많이 줄이게 된다.<ul>
<li>이러한 문제를 해결하기 위해 AIC_c 가 등장하였다.
<img src="https://velog.velcdn.com/images/c_10/post/8e7fe145-1e9d-4abf-8e87-f8b47f0b7d89/image.png" alt=""></li>
</ul>
</li>
<li>AIC와 마찬가지로 AIC_c 값이 최소인 모델이 좋은 모델이 된다.</li>
</ul>
<h3 id="555-슈바르츠의-베이지안-정보-기준sbic">5.5.5 슈바르츠의 베이지안 정보 기준(SBIC)</h3>
<ul>
<li>Schwarzd Bayesian Information Crieterion(SBIC), BIC, SC
<img src="https://velog.velcdn.com/images/c_10/post/e1e0c03a-694c-4719-84e4-397f7c24a0c5/image.png" alt=""></li>
<li>AIC보다 더 적은 수의 항을 고려한 것과 같다.<ul>
<li>BIC가 매개변수 수에 더 큰 제한을 주기 때문이다.<ul>
<li>식을 AIC와 비교해보면, AIC에서 2를 곱하던 값이, BIC에서는 log(T)를 곱한다. 그렇기 때문에 T를 최소화 하는 것도 중요한 요소이다.</li>
</ul>
</li>
</ul>
</li>
<li>AIC와 마찬가지로 SBIC 값이 최소인 모델이 좋은 모델이 된다.</li>
<li>큰 T값에 대해, BIC를 최소화하는 것은 v=T[1−1/(log(T)−1)]일 때,
v개 관측치 제거법 교차 검증하는 것과 비슷합니다.</li>
</ul>
<h3 id="556-어떤-지표를-사용해야-하는지">5.5.6 어떤 지표를 사용해야 하는지?</h3>
<ul>
<li><p>R^2가 널리 사용되고, 오래되었다.</p>
<ul>
<li>하지만, 예측변수의 개수가 많을수록 성능이 좋게 나와서 예측 작업에 가장 적합하진 않다.</li>
</ul>
</li>
<li><p>충분한 데이터가 있다면, SBIC 값이 좋은 모델을 정하는 가장 좋은 기준이 될 것이다.</p>
<ul>
<li><p>하지만, 이 또한, 가장 좋은 예측 성능을 보일 것이라는 보장이 없다.</p>
<p><img src="https://velog.velcdn.com/images/c_10/post/9fd7cd97-888a-4559-870f-5e54d2962773/image.png" alt=""></p>
</li>
</ul>
</li>
</ul>
<ul>
<li><strong>결론 : 1) 한 가지 지표만 볼 수 없다. 2) 예측 성능이 좋은 것을 찾기 위해서 AIC_c, AIC, CV 를 주로 사용한다.</strong></li>
</ul>
<h3 id="557-예시--미국-소비">5.5.7 예시 : 미국 소비</h3>
<ul>
<li><p>Table 5.1 : 4가지 예측변수에 대해, 사용(1), 제외(0) 으로 하여 16가지 경우의 수에 대해 실험을 진행한 결과이다. (AIC_c를 기준으로 오름차순 = 성능 순으로 내림차순)</p>
<p><img src="https://velog.velcdn.com/images/c_10/post/460d58d2-f7c5-4d53-8874-2aac5eb8d3b0/image.png" alt=""></p>
<ul>
<li>특징 1 : 상위 4개의 경우의 수와 나머지와의 큰 성능 차이가 존재한다. → 상위 4개의 경우 모두에 “소득”과 “저축”이 포함되어있다. → “소득”과 “저축”은 주요 예측변수 임을 알 수 있다.</li>
<li>특징 2 : 상위 2개의 경우 CV, AIC, AIC_c 가 거의 비슷하다. → 두 경우의 차이는 “생산” 예측변수에 대한 사용 차이 → “생산”은 성능에 큰 영향이 없는 변수로 무시(제외)해도 된다.<ul>
<li>실제로 “생산”과 “실업률” 간 상관관계는 매우 높으며, 둘 중 하나의 변수만 사용해도 됨을 알 수 있다.</li>
</ul>
</li>
</ul>
</li>
<li><p><strong>위와 같이, 가능한 경우의 수에 대해 모두 학습을 진행해보고,
여러 평가지표 중 하나에 근거하여 가장 좋은 모델을 고른다.
이렇게 선정된 모델을</strong> <code>&quot;가장 좋은 부분집합 회귀&quot;</code><strong>(모든 가능한 부분집합) 라 한다.</strong></p>
</li>
</ul>
<h3 id="558-단계적-회귀">5.5.8 <strong>단계적 회귀</strong></h3>
<ul>
<li>현실적으로 수많은 경우의 수를 모두 학습시킬 수 없다. (예측변수가 40개라면 2^40개, 1조가 넘는 모델이다)<ul>
<li>후진 단계적 회귀(backwards stepwise regression)<ol>
<li>모든 예측변수를 사용하는 모델을 학습 후 평가한다.</li>
<li>예측변수 하나씩 제거해보면서, 예측 정확도가 높아지면 제거 후 반복한다.</li>
</ol>
</li>
</ul>
</li>
<li>예측변수가 너무 많으면 전진 단계적 회귀를 사용한다.<ul>
<li>전진 단계적 회귀(forwards stepwise regression)<ol>
<li>절편만 포함하는 모델을 학습 후 평가한다.</li>
<li>예측변수 하나씩 추가해보면서, 예측 정확도가 높아지면 추가 후 반복한다.</li>
</ol>
</li>
</ul>
</li>
<li>혼합절차도 존재한다.<ul>
<li>예측변수의 일부를 포함하여 학습한 뒤, 제거와 추가를 모두 고려하여 반복한다.</li>
</ul>
</li>
<li>어떤 방식이 가장 좋다는 것은 없지만, 대부분 좋은 모델을 찾을 수 있다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Time Series] 예측변수 예시]]></title>
            <link>https://velog.io/@c_10/Time-Series-%EC%98%88%EC%B8%A1%EB%B3%80%EC%88%98-%EC%98%88%EC%8B%9C</link>
            <guid>https://velog.io/@c_10/Time-Series-%EC%98%88%EC%B8%A1%EB%B3%80%EC%88%98-%EC%98%88%EC%8B%9C</guid>
            <pubDate>Fri, 15 Dec 2023 14:14:02 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>온라인 Forecasting 교재 <a href="https://otexts.com/fppkr/">[Forecasting : Principles and Practice]</a> 5장 4절을 참고하여 작성하였습니다.</p>
</blockquote>
<h2 id="54-몇-가지-유용한-예측변수">5.4 몇 가지 유용한 예측변수</h2>
<ul>
<li>시계열 데이터에 대해 회귀 분석을 진행할 때, 유용하고 자주 등장하는 예측 변수 7가지</li>
</ul>
<h3 id="541-추세">5.4.1 추세</h3>
<ul>
<li>선형 추세는 단순히 예측 변수 x에 t를 추가하여 모델링할 수 있다.</li>
</ul>
<p>$$
x_{1,t} = t
$$
$$
y_t = β_0 + β_1t+ε_t
$$</p>
<ul>
<li>t = 1, … , T</li>
</ul>
<h3 id="542-가변수">5.4.2 가변수</h3>
<ul>
<li>dummy variable, 모의 변수, 지표 변수(indicator variable)</li>
<li>범주형 변수 (Yes/No 등)을 1 또는 0의 모의 변수로 변환하는 것이다.</li>
<li>이상치에 대해 가변수 처리가 가능하다<ul>
<li>예시 : 브라질 여행자 데이터 → 2016 리우 올림픽 (1), 그 외 (0)으로 하여 이상치를 데이터에 반영하여 사용한다.</li>
</ul>
</li>
<li>세 개 이상의 범주가 있을 때는, 변수를 범주의 개수만큼 가변수로 만들어서 부호화를 진행한다.</li>
</ul>
<h3 id="543-계절성-가변수">5.4.3 계절성 가변수</h3>
<ul>
<li><p><strong>예시 : 일별 데이터 예측에 요일을 고려하고 싶을 때</strong></p>
<p>  → 6개의 가변수를 만들고, 월요일 1 0 0 0 0 0, 화요일 0 1 0 0 0 0 , …</p>
<ul>
<li><strong>일반적인 규칙 : 범주보다 하나 적은 수의 가변수를 사용한다.</strong><ul>
<li>가변수 함정(dummy variable trap)<ul>
<li>7개의 범주에 7개의 가변수를 쓰면 회귀가 실패할 것이다.</li>
</ul>
</li>
<li>y 절편까지 고려한다면, (계절성 가변수)를 사용하는 것은 좋지만, 최소한의 예측 변수 추가를 진행한다.</li>
</ul>
</li>
<li>가변수와 관계된 각 계수는 <strong>생략된 범주에 관한 해당 범주의 효과</strong>를 나타냅니다.<ul>
<li>월요일과 관계된 d1,t의 계수는 y에 대해</li>
<li><em>일요일의 효과와 비교하여 월요일의 효과를 나타냅니다.*</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<pre><code>ㄟ(▔,▔)ㄏ 
가변수와 관계된 각 계수는 
생략된 범주에 관한 해당 범주의 효과를 나타냅니다 ?

아래 예시를 통해 파악한 내용으로

가변수 = 각 요일에 대해 생성된 가변수
관계된 각 계수 = 각 가변수에 곱해지는 계수 β
생략된 범주 = 해당 가변수가 아닌 다른 가변수 
            (월요일일 때 1인 가변수 1개와 0인 가변수 5개라 할 때, 5개의 가변수)
해당 범주 = 해당 가변수 
           (월요일일 때 1인 가변수 1개와 0인 가변수 5개라 할 때, 1개의 가변수)

가변수와 관계된 각 계수는 생략된 범주에 관한 해당 범주의 효과 
= “해당 가변수의 계수는 다른 가변수들에 관한 해당 가변수의 효과”</code></pre><h3 id="544-개입-변수">5.4.4 개입 변수</h3>
<ul>
<li>예측하려는 변수에 영향을 줄 수도 있는 값을 모델링에 반영하기 위해 사용하는 변수</li>
<li>예시 : 경쟁자의 활동, 광고 지출, 산업 행동 등</li>
<li>스파이크(spike) 변수<ul>
<li>효과가 한 주기만 지속될 때 사용한다.</li>
<li>효과가 지속되는 주기(개입 기간)에는 1, 그 외에는 0으로 두는 가변수 형태이다.</li>
</ul>
</li>
<li>즉각적이고 영구적인 효과가 있다.<ul>
<li>그래프 상에서는 기울기의 변화로 나타난다. 기울기의 변화로 인해 개입 시점에서 추세가 구부러지므로 추세가 비선형적으로 바뀌게 된다.</li>
</ul>
</li>
<li>단계(step) 변수<ul>
<li>개입 변수는 즉각적이고 영구적인 효과가 있기 때문에,</li>
<li>이러한 개입이 수준 변화를 일으킬 때 (=시계열의 값이 개입 시점부터 영구적으로 변할 때)
개입 전을 0, 개입 후를 1로 두는 가변수 형태로 사용한다.</li>
</ul>
</li>
</ul>
<h3 id="545-거래일-수">5.4.5 거래일 수</h3>
<ul>
<li>판매량 데이터에서 각 월의 거래일 수를 예측 변수로 포함한다.<ul>
<li>Why? 판매량 데이터에서 매월 거래일의 날짜 수가 많이 변할 수 있는데, 날짜 수가 많을수록 주로 판매량이 커지기 때문에 이를 예측 변수로 포함하여 설명력을 높인다.</li>
</ul>
</li>
<li>주마다 날짜 수가 다른 효과를 고려하기 위해 해당 월의 월요일 수, 화요일 수, … 까지 예측 변수로 추가한다.</li>
</ul>
<h3 id="546-분포된-시차-값lagged-value">5.4.6 분포된 시차 값(lagged value)</h3>
<ul>
<li><p>광고 효과 데이터에서 광고 지출을 예측 변수로 넣는 경우가 종종 있는데,
광고 효과가 실제 계획한 캠페인 기간(즉, 광고 비용을 지출하는 기간)보다 더 오래갈 수 있기 때문에</p>
</li>
<li><p>광고 비용 지출에 대한 시차값(lagged value)을 예측 변수로 추가함으로써 지출에 비해 몇 개월이나 더 지속되었는지 파악할 수 있게 한다.</p>
<p>  <img src="https://velog.velcdn.com/images/c_10/post/237fbdea-c101-48ae-a7c2-a2224fb26069/image.png" alt=""></p>
</li>
</ul>
<h3 id="547-부활절">5.4.7 부활절</h3>
<ul>
<li>부활절은 매년 날짜가 다르고, 효과가 며칠동안 지속될 수 있다. ⇒ 대부분의 휴일과 다르다.</li>
<li>부활절의 영향을 주는 기간을 1, 그 외의 기간을 0으로 하는 가변수 형태로 예측변수에 추가할 수 있다. (3월이면 3월에 1, 3월~4월이면 가변수를 월 사이에 비례하여 나눈다.)</li>
</ul>
<h3 id="548-푸리에-급수">5.4.8 푸리에 급수</h3>
<ul>
<li>사인과 코사인 항의 급수로 임의의 주기적 함수의 근사치를 계산하는 방식 
→ 계절성 패턴을 다룰 때 사용할 수 있다.</li>
<li>계절성 가변수가 아닌, <strong>긴 계절성 주기</strong>에 대해서 푸리에 항을 사용한다.<br>  <img src="https://velog.velcdn.com/images/c_10/post/e30adbfe-1f10-4579-b076-e770a0caa7bd/image.png" alt=""><ul>
<li>m : 계절성 주기 (월별 데이터 m=12, 분기별 데이터 m=4)</li>
</ul>
</li>
</ul>
<ul>
<li><p>예시 : 월별 계절성을 다룬다고 하자.</p>
<p>  가변수를 사용할 때, 12개의 범주(m=12) → 11개의 가변수</p>
<p>  푸리에 급수를 사용할 때, K = m/2 → 6개의 푸리에 항으로 표현 가능</p>
</li>
<li><p>계절성 주기가 클수록 푸리에 급수의 효과가 증가한다. (주별 데이터 m=52)</p>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>