kaggle의 전력소비량 데이터를 이용하여 여러 예측 ML model을 학습시킨 후 전력소비량을 예측해보려고 한다.
[데이터셋 출처]
https://www.kaggle.com/datasets/srinuti/residential-power-usage-3years-data-timeseries
![]() | ![]() |
---|
칼럼들의 정상성을 확인해보았을 때, 습도 칼럼을 제외하고는 모두 정상성을 갖고 있었다.
전력소비량에 대해 각 칼럼의 Granger Causality Test를 진행해보았다.
이때 Granger Causality는 x와 y 두 시계열 데이터가 주어졌을 때, y를 예측하는데 x의 과거 데이터가 유용하게 사용된다면 둘 사이에 인과관계가 있다고 보는 방법이다.
Temp_avg: 전력소비량과 인과관계가 있다고 볼 수 있다.
Dew_avg: 전력소비량과 인과관계가 있다고 볼 수 있다.
Press_avg: 전력소비량과 인과관계가 있다고 볼 수 있다.
Wind_avg: 전력소비량과 인과관계가 없다고 볼 수 있다.
Hum_avg: 전력소비량과 인과관계가 없다고 볼 수 있다.
Precipit: 전력소비량과 인과관계가 없다고 볼 수 있다.
전력소비량의 계절성을 확인해보았을 때 약 30일의 주기를 갖고 있었다.
[AR]![]() | [VAR/Temp]![]() |
---|
[AR]![]() | [VAR/Temp_avg, Dew_avg, Press_avg]![]() |
---|
[Temp_avg, Dew_avg, Press_avg] 칼럼을 모두 넣어 SARIMAX 모델을 학습시킨 결과 그래프이다. 일반 SARIMA 보다 예측 정확도가 높아보였다.
실제로 test set의 rmse 값도 모델들 중 가장 낮게 나왔다.
그러나 이상하게 train set의 rmse 값이 크게 나왔다.
train_set의 그래프를 확인해보았더니 1월 한달간의 예측 데이터가 이상하게 나타났다.
-> 따라서 시작 한달 정도의 데이터를 제외하고 rmse값을 확인해보니 위의 모델들과 크게 차이나지 않는 수치가 나왔다.
아마 자동으로 찾아넣은 최적의 파라미터에 문제가 있었던 것 같다.