결측값 대치

R로 시계열 데이터 다루기

Harrison Brown

Graduate Researcher in Geography

정규·비정규 시계열

정규 시계열:

  • 결측 또는 NA 없음
  • 간격이 균등함

현실의 문제:

  • 센서/장비 고장
  • 기상 조건
  • ...

집계:

  • 시간 해상도를 낮춰 재표본
  • 정보가 줄어듦
  • 예: 일일 합을 월별로

대치(Imputation):

  • 결측값을 채움
  • 값을 정하는 여러 방법
R로 시계열 데이터 다루기

대치(Imputation)

마우나로아 데이터셋 일부의 그래프. 데이터에 결측점이 있어 선 그래프에 구멍(NA 구간)이 보입니다.

이전 마우나로아 그래프의 확대 버전입니다. 선의 공백이 더 뚜렷합니다.

R로 시계열 데이터 다루기

zoo로 결측값 대치

zoo의 na-점 함수:

  • zoo::na.fill()

  • zoo::na.locf()

  • zoo::na.approx()

R로 시계열 데이터 다루기

결측값 확인

observations
2017-01-01 NA
2017-01-02  2
2017-01-03  2
2017-01-04  2
2017-01-05  4
2017-01-06  2
2017-01-07 NA
2017-01-08  1
2017-01-09  2
2017-01-10  2
...
sum(is.na(observations))
[1] 23
R로 시계열 데이터 다루기

na.fill

observations
2017-01-01 NA
2017-01-02  2
2017-01-03  2
2017-01-04  2
2017-01-05  4
...
table(observations, useNA = 'ifany')
   1    2    3    4    5    6 <NA> 
  43   29   17   13    1    2   23

가상의 시계열 그래프. y축은 하루마다 'observations' 수를 나타냅니다. 데이터셋의 NA로 인해 관측값 사이에 공백이 있습니다.

R로 시계열 데이터 다루기

na.fill

observations_fill <-
  na.fill(object = observations,
          fill = 0)

table(observations_fill)
 0  1  2  3  4  5  6 
23 43 29 17 13  1  2
autoplot(observations_fill)

앞의 'Daily observations' 그래프를 채운 버전입니다. 상수 대치(0)로 NA가 0으로 대체되었습니다.

R로 시계열 데이터 다루기

na.locf

autoplot(scores)
Warning message:
Removed 12 row(s) containing
missing values (geom_path).

가상의 '월별 시험 점수' 시계열 그래프. 선이 갑자기 끝나 데이터에 NA가 있음을 보여 줍니다. 2005~2008 점수는 전반적 상승 추세이며 2007년 이후 값이 누락되었습니다.

scores_locf <- na.locf(scores)
autoplot(scores_locf)

'월별 시험 점수' 그래프의 채운 버전. LOCF(Last Observation Carried Forward)로 2007년 이후 값이 마지막 NA 아닌 값으로 대체되었습니다.

R로 시계열 데이터 다루기

선형 보간

na.approx()

선형 보간 개념을 보여 주는 '애니메이션' 1번 슬라이드. 좌표축과 선 위 점들이 있고, 가운데 NA 구간이 큽니다.

R로 시계열 데이터 다루기

선형 보간

na.approx()

선형 보간 개념 '애니메이션' 2번. 점선 빨간 선이 양쪽 최근 NA 아님 값들을 이어 NA 구간을 메웁니다.

R로 시계열 데이터 다루기

선형 보간

na.approx()

선형 보간 개념 '애니메이션' 3번. 점선이 검은 실선으로 바뀌어 결측값이 선형 보간으로 대체되었음을 보여 줍니다.

R로 시계열 데이터 다루기

na.approx

maunaloa_approx <-
  na.approx(maunaloa_missing)

autoplot(maunaloa_approx) +
  labs(
    x = "Index",
    y = "CO2 Concentration",
    title = "Approximated Data Points"
  )

마우나로아 시계열 그래프. NA가 선형 보간으로 채워졌습니다. 어디가 결측이었는지 거의 구분되지 않아 선형 보간의 정확성을 보여 줍니다.

R로 시계열 데이터 다루기

Ayo berlatih!

R로 시계열 데이터 다루기

Preparing Video For Download...