8.11 연습문제

  1. 그림 8.31은 무작위 숫자 36개, 360개, 1000개에 대한 ACF를 나타냅니다.

    1. 이 그림에서 나타나는 차이를 설명해봅시다. 모든 그림이 데이터가 백색잡음이라고 말합니까?
    왼쪽: 36개 숫자의 백색잡음 시계열에 대한 ACF. 가운데: 360개 숫자의 백색잡음 시계열에 대한 ACF. 오른쪽: 1000개 숫자의 백색잡음 시계열에 대한 ACF.

    Figure 8.31: 왼쪽: 36개 숫자의 백색잡음 시계열에 대한 ACF. 가운데: 360개 숫자의 백색잡음 시계열에 대한 ACF. 오른쪽: 1000개 숫자의 백색잡음 시계열에 대한 ACF.

    1. 왜 임계값마다 평균값인 0으로부터 떨어진 거리가 다릅니까? 각각이 백색잡음을 나타낸다면, 각 그림에서 자기상관값이 왜 다릅니까?
  2. IBM 주식의 일별 종가(데이터 모음 ibmclose)는 정상성을 나타내지 않는 시계열의 고전적인 예입니다. R로 IBM 주식의 일별 종가, ACF, PACF를 그려봅시다. 시계열이 정상성을 나타내지 않는 것과 차분을 구해야만 하는 것을 각 그래프가 나타내는 내용을 통해 설명해봅시다.

  3. 다음의 시계열에 대해, 적절한 박스-칵스(Box-Cox) 변환과 정상성을 나타내는 데이터를 얻기 위해서는 차분을 몇 번 구해야하는지 찾아봅시다.

    1. usnetelec
    2. usgdp
    3. mcopper
    4. enplanements
    5. visitors
  4. enplanements 데이터에서, 후방이동(backshift) 연산자 기호를 사용하여 위에서 여러분이 찾은 차분의 차수를 수식으로 적어봅시다.

  5. 소매 데이터(2.10 절의 연습 문제 1)에서, 정상성을 나타내는 데이터를 얻기 위해 (필요하다면 변환 후에) 차분의 적절한 차수를 찾아봅시다.

  6. R을 이용하여 단순한 ARIMA 모델에서 몇몇 데이터를 모사하고 그려봅시다.

    1. 다음의 R 코드를 이용하여, \(\phi_{1} = 0.6\)이고 \(\sigma^2=1\)인 AR(1) 모델로 데이터를 생성해봅시다. 생성 과정은 \(y_1=0\)에서 시작합니다.

          y <- ts(numeric(100))
          e <- rnorm(100)
          for(i in 2:100)
            y[i] <- 0.6*y[i-1] + e[i]
    2. 시계열에 대한 시간 그래프를 그려봅시다. \(\phi_1\)이 변하면 그래프가 어떻게 변합니까?

    3. \(\theta_{1} = 0.6\)\(\sigma^2=1\)인 MA(1) 모델에서 데이터를 생성하는 코드를 작성해봅시다.

    4. 생성한 시계열에 대한 시간 그래프를 그려봅시다. \(\theta_1\)이 변하면 그래프가 어떻게 바뀝니까?

    5. \(\phi_{1} = 0.6\), \(\theta_{1} = 0.6\), \(\sigma^2=1\)인 ARMA(1,1) 모델로 데이터를 생성해봅시다.

    6. \(\phi_{1} =-0.8\), \(\phi_{2} = 0.3\), \(\sigma^2=1\)인 AR(2) 모델로 데이터를 생성해봅시다. (이러한 매개변수가 정상성을 나타내지 않는 시계열을 만들 것이라는 사실에 주목합시다.)

    7. 이전 두 시계열을 그려서 비교해봅시다.

  7. wmurders를 살펴봅시다. 이 데이터에는 미국에서 매년 살해당하는 (10만명당) 여성의 수 정보가 있습니다.

    1. R로 시계열의 적절한 그래프를 그려서, 이러한 데이터에 적합한 ARIMA(\(p,d,q\)) 모델을 찾아봅시다.
    2. 모델에 상수를 포함해야합니까? 설명해봅시다.
    3. 후방이동 연산자를 이용하여 이 모델을 수식으로 적어봅시다.
    4. R로 모델을 맞추고 잔차를 설명해봅시다. 모델이 만족스럽습니까?
    5. 3 시점 앞을 예측해봅시다. 계산 과정을 잘 알고 있는지 확인하기 위해 수식을 풀어서 예측값을 내고 확인해봅시다.
    6. 앞에서 보인 3 시점 앞에 대해 예측값과 예측 구간과 함께 시계열을 그래프로 그려봅시다.
    7. auto.arima()가 여러분이 고른 모델과 같은 결과를 냅니까? 그렇지 않으면 어떤 모델이 더 낫습니까?
  8. austa를 살펴봅시다. 이 데이터에는 1980년부터 2015년까지 다른 나라에서 호주를 방문하는 여행자 수(단위: 백만)가 있습니다.

    1. auto.arima()를 사용하여 적절한 ARIMA 모델을 찾아봅시다. 어떤 모델이 선택되었습니까. 잔차가 백색잡음처럼 보이는지 확인해봅시다. 다음 10개의 기간에 대한 예측값을 그래프로 나타내봅시다.
    2. 표류가 없는 ARIMA(0,1,1) 모델에서 얻은 예측값을 그래프로 나타내보고 (a)와 비교해봅시다. MA 항을 제거하고 그래프로 다시 나타내봅시다.
    3. 표류가 있는 ARIMA(2,1,3) 모델에서 얻은 예측값을 그래프로 나타내봅시다. 상수를 제거하고 어떻게 되는지 살펴봅시다.
    4. 상수가 있는 ARIMA(0,0,1) 모델에서 얻은 예측값을 그래프로 나타내봅시다. MA 항을 제거하고 그래프로 다시 나타내봅시다.
    5. 상수가 없는 ARIMA(0,2,1) 모델에서 얻은 예측값을 그래프로 나타내봅시다.
  9. usgdp 시계열에 대해:

    1. 필요하다면, 데이터에 대해 적절한 박스-칵스(Box-Cox) 변환을 찾아봅시다;
    2. auto.arima()를 이용하여 변환된 데이터를 적절한 ARIMA 모델로 맞춰봅시다;
    3. 선택할 차수를 가지고 실험하여 다른 가능한 모델도 시도해봅시다;
    4. 가장 좋은 모델이라고 생각하는 것을 고르고 잔차 관련 검정을 확인해봅시다;
    5. 여러분이 맞춘 모델의 예측값을 내봅시다. 예측값이 그럴듯하게 보입니까?
    6. 예측값을 ets()을 (변환 없이) 사용하여 얻은 결과와 비교해봅시다.
  10. austourists를 살펴봅시다. 이 데이터에는 1999년부터 2015년까지 호주를 방문하는 해외 방문객의 분기별 숙박일 정보가 있습니다(단위: 백만).

    1. 시간 그래프를 설명해봅시다.
    2. ACF 그래프에서 무엇을 알 수 있습니까?
    3. PACF 그래프에서 무엇을 알 수 있습니까?
    4. 계절성 차분을 구한 데이터 \((1 - B^{4})Y_{t}\)의 그래프를 그려봅시다. 이러한 그래프가 어떤 모델을 암시합니까?
    5. auto.arima()가 여러분이 고른 모델과 같은 모델을 냅니까? 그렇지 않다면 어떤 모델이 더 낫다고 생각합니까?
    6. 후방이동 연산자로 여러분의 모델을 수식으로 적어봅시다. 그리고 후방이동 연산자를 사용하지 않고도 적어봅시다.
  11. usmelec를 살펴봅시다. 이 데이터에는 미국 전기 회사의 (1973년 1월부터 2013년 6월까지 기간 동안 월별) 전체 순 전기 발전량 정보가 있습니다 (단위: 10억 킬로와트시). 일반적으로 1년에 두 최고점(한여름과 한겨울)이 나타납니다.

    1. 어떤 종류의 추세가 포함되어있는지 확인하기 위해 이 시계열의 12개월 이동 평균을 살펴봅시다.
    2. 데이터에 변환이 필요합니까? 그렇다면, 적절한 변환을 찾아봅시다.
    3. 데이터에 정상성이 나타납니까? 그렇지 않다면, 데이터에 정상성이 나타나도록 차분이 몇 번 필요한지 알아봅시다.
    4. 시계열을 설명하는데 도움이 될 수 있는 몇 가지 ARIMA 모델을 찾아봅시다. 여러분의 모델 중에서 어떤 것이 AICc 값을 기준으로 볼 때 가장 좋습니까?
    5. 여러분이 찾은 가장 좋은 모델의 매개변수를 추정해보고, 잔차에 대해 검정을 해봅시다. 잔차가 백색잡음처럼 보입니까? 그렇지 않다면, 더 잘 맞는 또 다른 ARIMA 모델을 찾아봅시다.
    6. 미국 전기 회사들의 다음 15년 전기 생산량을 예측해봅시다. EIA에서 가장 최신 그림을 가져와서 여러분의 예측값의 정확도를 확인할 수 있습니다.
    7. 결국에는 예측 구간이 너무 넓어서 예측값이 별로 유용하지 않을 것입니다. 사용할 수 있을만큼 충분히 정확하려면 몇 년 예측값이 필요하다고 생각합니까?
  12. mcopper 데이터에서:

    1. 필요하다면, 데이터에 대한 적절한 박스-칵스(Box-Cox) 변환을 찾아봅시다;
    2. auto.arima()를 이용하여 변환된 데이터를 적절한 ARIMA 모델로 맞춰봅시다;
    3. 선택할 차수를 가지고 실험하여 다른 가능한 모델도 시도해봅시다;
    4. 가장 좋은 모델이라고 생각하는 것을 고르고 잔차 관련 검정을 확인해봅시다;
    5. 여러분이 맞춘 모델의 예측값을 내봅시다. 예측값이 그럴듯하게 보입니까?
    6. 예측값을 ets()을 (변환 없이) 사용하여 얻은 결과와 비교해봅시다.
  13. 다음의 시계열 중에서 하나를 골라봅시다: hsales, auscafe, qauselec, qcement, qgas.

    1. 데이터를 변환해야합니까? 그렇다면, 적절한 변환을 찾아봅시다.
    2. 데이터에 정상성이 나타납니까? 그렇지 않다면, 데이터에 정상성이 나타나도록 잔차 계산이 몇 번 필요한지 알아봅시다.
    3. 시계열을 서술하는데 유용할 수 있는 몇 가지 ARIMA 모델을 찾아봅시다. 여러분의 모델 중에서 어떤 것이 AICc 값을 기준으로 볼 때 가장 좋습니까?
    4. 여러분이 찾은 가장 좋은 모델의 매개변수를 추정해보고, 잔차에 대해 검정을 해봅시다. 잔차가 백색잡음처럼 보입니까? 그렇지 않다면, 더 잘 맞는 또 다른 ARIMA 모델을 찾아봅시다.
    5. 여러분이 선호하는 모델을 가지고 다음 24개월 데이터를 예측해봅시다.
    6. 예측한 결과를 ets()를 이용하여 얻은 것과 비교해봅시다.
  14. 여러분이 이전 연습 문제에서 사용한 시계열을 가지고, STL에서 얻은 계절성으로 조정된 데이터에 적용된 비-계절성 모델을 사용해봅시다. (method="arima" 입력값을 주고 사용하는) stlf() 함수는 계산을 쉽게 만들어줄 것입니다. 여기에서 얻은 예측값을 이전 연습 문제에서 얻은 결과와 비교해봅시다. 어떤 접근 방법이 가장 좋다고 생각합니까?

  15. (위의 연습 문제 5번에서 사용한) 소매 시계열에서

    1. 적절한 계절성 ARIMA 모델을 찾아봅시다;
    2. 여기서 얻은 예측값을 이전에 얻었던 결과와 비교해봅시다;
    3. ABS 웹사이트 (Cat 8501.0, Table 11)에서 최신 소매 데이터를 가져와서 여러분의 예측값과 실제 값을 비교해봅시다. 다양한 모델에서 얻은 예측값이 얼마나 좋았습니까?
  16. sheep 데이터를 살펴봅시다. 이 데이터에는 잉글랜드와 웨일즈 지방의 1867년부터 1939년까지 양 개체수 변화 정보가 있습니다.

    1. 시계열을 시간 그래프로 나타내봅시다.

    2. 다음의 모델을 맞추기로 결정했다고 가정합시다: \[ y_t = y_{t-1} + \phi_1(y_{t-1}-y_{t-2}) + \phi_2(y_{t-2}-y_{t-3}) + \phi_3(y_{t-3}-y_{t-4}) + \varepsilon_t, \] 여기에서 \(\varepsilon_t\)는 백색잡음 시계열입니다. 이것은 어떤 종류의 ARIMA 모델입니까(즉, \(p\), \(d\), \(q\)가 어떤 값을 갖습니까)?

    3. 차분을 구한 데이터의 ACF와 PACF를 살펴보고, 왜 이 모델이 적절한지 설명해봅시다.

    4. 시계열의 마지막 5개 값은 다음과 같이 아래에 주어집니다:

      연도 1935 1936 1937 1938 1939
      양(단위: 백만 마리) 1648 1665 1627 1791 1797

      추정한 매개변수는 \(\phi_1 = 0.42\), \(\phi_2 = -0.20\), 그리고 \(\phi_3 = -0.30\) 입니다. forecast() 함수를 사용하지 않고 다음 3년(1940–1942) 예측값을 계산해봅시다.

    5. 이제 R로 모델을 맞춰보고 forecast()를 사용하여 예측값을 얻어봅시다. 여러분이 얻은 것과 어떻게 다릅니까? 왜 그렇습니까?

  17. 1920년부터 1968년까지 미국 연간 연탄 생산량 데이터를 살펴봅시다 (데이터 bicoal).

    1. 데이터를 시간 그래프로 나타내봅시다.

    2. 다음의 모델로 시계열을 맞추기로 결정했다고 가정해봅시다 \[y_t = c + \phi_1 y_{t-1} + \phi_2 y_{t-2} + \phi_3 y_{t-3} + \phi_4 y_{t-4} + \varepsilon_t\] 여기에서 \(y_t\)는 연도 \(t\)에서 연탄 생산량이고 \(\varepsilon_t\)는 백색잡음 시계열입니다. 이것은 어떤 종류의 ARIMA 모델입니까(즉, \(p\), \(d\), \(q\)가 어떤 값을 갖습니까)?

    3. ACF와 PACF를 이용하여 왜 이 모델이 선택되었을지 설명해봅시다.

    4. 시계열의 마지막 5개 값은 다음과 같이 아래에 주어집니다.

      연도 1964 1965 1966 1967 1968
      백만 톤 467 512 534 552 545

      추정한 매개변수는 \(c = 162.00\), \(\phi_1 = 0.83\), \(\phi_2 = -0.34\), \(\phi_3 = 0.55\), 그리고 \(\phi_4 = -0.38\) 입니다. forecast() 함수를 사용하지 않고 다음 3년(1969–1971) 예측값을 계산해봅시다.

    5. 이제 R로 모델을 맞춰보고 forecast()를 사용하여 예측값을 얻어봅시다. 여러분이 얻은 것과 어떻게 다릅니까? 왜 그렇습니까?

  1. 이 연습문제를 풀기 위해서는 R에서 Quandl 패키지를 설치해야 합니다.

    ```r
    install.packages("Quandl")
    ```
    1. Quandl에서 시계열을 골라봅시다. 고른 것의 URL을 복사하고 다음의 코드를 이용하여 데이터를 불러옵시다.

      y <- Quandl("?????", api_key="?????", type="ts")

      (각 ?????을 적절한 값으로 바꿉시다.)

    2. 데이터의 그래프를 그리고, 적절한 ARIMA 모델을 찾아봅시다.

    3. 여러분의 ARIMA 모델의 잔차 검정을 해봅시다. 잔차가 백색잡음입니까?

    4. 여러분이 고른 ARIMA 모델로 다음 4년을 예측해봅시다.

    5. 이제 적절한 ETS 모델을 찾아봅시다.

    6. 여러분의 ETS 모델의 잔차 검정을 해봅시다. 잔차가 백색잡음입니까?

    7. 여러분이 선택한 ETS 모델로 다음 4년을 예측해봅시다.

    8. 여러분은 두 모델 중에서 어떤 것이 더 좋습니까?