본문 바로가기
Python notes/Python Errors

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 해결!

by 성실한 나무 2022. 6. 13.

시계열 데이터 분석 중 ValueWarning을 발견했다. 그 내용은 아래와 같다.

 

 ValueWarning: a date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting

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 메시지를 피할 수 있다.

ValueWarning: a date index has been provided, but it has no associated frequency information and so will be ignored when e.g. forecasting

이번 Warning 메시지의 경우 시계열 모델을 적합하고나서 적합한 결과 summary를 보는데는 일단 문제가 없지만, 이 모델을 사용해서 forecasting할 때 문제가 생길 수 있기 때문에 frequency information을 제공하라는 의도에서 나타나는 메시지이다.

 

시계열 데이터 분석 시 다시 한번 기억해야겠다. date index! 그리고 data frequency !

댓글