1. Learn
  2. /
  3. Courses
  4. /
  5. R로 배우는 시계열 예측

Connected

Exercise

비계절성 방법의 예측 정확도 평가

데이터 과학에서 학습 세트(training set)는 가능한 관계를 발견하는 데 사용하는 데이터 세트이고, 테스트 세트(test set)는 이러한 잠재적 관계의 강도를 검증하는 데 사용하는 데이터 세트예요. 데이터 세트를 이 둘로 나눌 때는 보통 학습에 더 많은 데이터를, 테스트에는 더 적은 데이터를 할당해요.

학습 세트와 테스트 세트를 만드는 데 사용할 수 있는 함수 중 하나가 subset()이에요. 이 함수는 선택적 인수 start와 end를 색인 값으로 지정하면 해당 구간의 시계열 부분집합을 반환해요.

> # x는 숫자형 벡터 또는 시계열입니다
> # 101번째부터 500번째 관측치까지 부분집합 추출
> train <- subset(x, start = 101, end = 500, ...)

> # 처음 500개의 관측치 부분집합 추출
> train <- subset(x, end = 500, ...)

영상에서 보셨듯이, 또 다른 함수 accuracy()는 예측값과 이에 대응하는 실제 관측치를 주면 다양한 예측 정확도 통계를 계산해요. 예측한 값보다 더 많은 관측치를 제공해도, 관련 있는 관측치를 알아서 찾아 사용해요.

> # f는 "forecast" 클래스의 객체입니다
> # x는 숫자형 벡터 또는 시계열입니다
> accuracy(f, x, ...)

제공되는 정확도 지표에는 RMSE(root mean squared error, 평균제곱근오차)가 포함돼요. 이는 평균제곱오차(MSE)의 제곱근이에요. RMSE를 최소화(즉, 정확도를 높이는 것)하는 것은 MSE를 최소화하는 것과 같아요.

미리 로드된 시계열 gold에는 1108일 동안의 일별 금 가격이 들어 있어요. 여기서는 처음 1000일을 학습 세트로 사용하고, 남은 108일에 대해 예측을 계산해요. 이 예측은 단순 예측 함수인 naive()(이 장 앞부분에서 사용했죠)와 모든 관측치의 평균과 같은 값을 예측하는 meanf()를 사용해 구한 뒤, 해당 일자의 실제 값과 비교할 거예요. 두 함수 모두에서 예측할 값의 개수를 지정하는 키워드 h를 설정해야 해요.

Instructions

100 XP
  • subset()을 사용해 gold의 처음 1000개 관측치로 구성된 학습 세트를 만들고, 이를 train이라고 하세요.
  • 남은 데이터로 구성된 테스트 세트에 대해 naive()로 예측을 계산하고 naive_fc에 저장하세요. h를 알맞게 설정하세요.
  • 이제 같은 테스트 세트에 대해 meanf()로 예측을 계산하고 mean_fc에 저장하세요. h를 알맞게 설정하세요.
  • accuracy() 함수를 사용해 두 방법의 예측 정확도 통계를 비교하세요.
  • 위 결과를 바탕으로, 더 높은 정확도를 보이는 예측을 bestforecasts에 저장하세요.