Python Errors) ValueWarning: a date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting 해결!
시계열 데이터 분석 중 ValueWarning을 발견했다. 그 내용은 아래와 같다.
ValueWarning: a date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting
데이트 인덱스가 제공되었지만, 빈도 정보가 없어서 forecasting할 때 무시될 것이라는 내용이었다. 시계열 데이터 분석을 하려면 데이터 값에서 날짜 정보 열은 인덱스로 지정을 해주어야 하고, 그 날짜에 대해 frequency, 즉 시계열 데이터 term에 대한 정보가 있어야 한다. 일반적으로 일, 혹은 월, 년 단위로 이미 전처리가 되어 있는 데이터라면 상관이 없는데, 데이터 중간 중간 특정 날짜들이 빠져있어서 이 데이터가 일 단위로 된건지 월 단위로 된건지 알 수가 없을때 위와 같은 Warning이 뜨는 것으로 보인다.
실제로 위 시계열 모델 fitting 시 적용한 데이터의 경우, 주식 데이터였기 때문에 날짜별로 되어 있긴 하지만 중간 중간 공휴일 데이터 값이 누락되어 있었다.
이를 해결하기 위해 필요한 것이 .to_period('D')이다. 이 데이터의 frequency 정보를 지정해주는 것이다. 구체적으로는 아래와 같이 적용할 수 있다. 맨 아래 보면 데이터프레임에 set_index('date')를 통해 날짜 데이터가 들어있는 'date'열을 인덱스로 지정을 해준 후, 시계열 데이터의 frequency를 'D' 즉 일별 데이터라는 정보를 입력해주었다. 이렇게 하면 위의 Warning 메시지를 피할 수 있다.
이번 Warning 메시지의 경우 시계열 모델을 적합하고나서 적합한 결과 summary를 보는데는 일단 문제가 없지만, 이 모델을 사용해서 forecasting할 때 문제가 생길 수 있기 때문에 frequency information을 제공하라는 의도에서 나타나는 메시지이다.
시계열 데이터 분석 시 다시 한번 기억해야겠다. date index! 그리고 data frequency !