[EDA] 전력 사용량 데이터 분석

박이름·2022년 3월 13일

EDA

목록 보기
1/1
post-thumbnail

안녕하세요! 지난 주 조원들과 함께 아이펠에서 개최한 데이톤에 참가하여 전력 사용량 데이터를 분석해보았는데요!

분석 노트북 파일 깃허브 링크
https://github.com/rudbeen/Projects/blob/main/%5BEDA%5DElectric_Power_Usage.ipynb

주어진 시간이 2박 3일정도로 상당히 짧은 시간이었기 때문에 공유된 코드를 적극 활용하였지만, 그럼에도 문제에 접근하는 것과 외부 데이터를 활용해 결론을 내는 것은 저희 조만의 방식으로 진행했기 때문에 그 과정을 본 포스팅을 통해 공유해보고자 합니다!

이번 분석에서 제 역할은 다음과 같습니다.

  • EDA by features (4)
  • 외부 데이터 탐색 및 시각화 (9)
  • 코드 취합 및 정리
  • 결론 도출
  • 발표자료(ppt) 수정

⚡️ 데이콘 전력 사용량 예측 AI 경진대회 ⚡️
⏰ 데이터 : 시계열 데이터
✍🏻 평가지표 : SMAPE
🙋🏻‍♀️ 주최 : 한국에너지공단
⏳ 기간 : 2021.05.10 ~ 2021. 06.25

활용 코드 출처

[목차]

  1. Data
  2. Data Preprocessing
  3. Feature Engineering
  4. EDA by features
  5. EDA by Buildings
  6. Clustering
  7. EDA by Clutsters
  8. Result
  9. Extra Data
  10. Conclusion and Limitation

저희는 train 데이터셋에 대해 EDA를 진행했고, 데이터는 다음과 같습니다 !

1. Data

60개 건물들2020년 6월 1일 부터 2020년 8월 24일까지의 데이터
1시간 단위로 제공, 전력사용량(kWh) 포함

  1. num (건물번호)
  2. date_time (시간 ex. 2020-06-01 00)
  3. 전력사용량(kWh)
  4. 기온(°C)
  5. 풍속(m/s)
  6. 습도(%)
  7. 강수량(mm)
  8. 일조(hr)
  9. 비전기냉방설비운영
  10. 태양광보유

2. Data preprocessing

train 데이터는 결측치가 없는 등 충분히 정제되어있는 데이터였습니다. 아무래도 시계열 데이터이다보니 결측치를 보간하는 작업이 필요할 것이라고 예상했는데, 그렇지 않아서 전처리에 들이는 시간을 절약할 수 있었습니다.

  1. 분석을 용이하게 하기 위해 컬럼명을 영어로 변경해주는 작업을 진행했습니다.
  2. date_time 데이터의 type을 datetime으로 변경하고, 데이터의 날짜에 해당하는 월, 일, 요일, 주말 컬럼을 생성했습니다.

3. Feature Engineering

본 분석 데이터는 시계열 데이터임과 동시에 기후 요소와 관련된 데이터이기 때문에 기후와 관련된 새로운 변수를 생성해보고자 했습니다. 그렇게 생성한 데이터는 다음과 같습니다.

1. 불쾌지수 (THI) 😤

1.8TT − 0.55(1−RHRH)(1.8TT−26) + 32
TT : 기온(°C) , RHRH : 상대습도(%)

불쾌지수는 기온과 습도의 조합으로 사람이 느끼는 온도를 표현한 것으로 온습도지수(THI)라고도 합니다. 분석 데이터에 기온과 습도 변수가 모두 있기 때문에 계산을 통해 구할 수 있습니다.

불쾌지수는 복사나 바람의 조건은 포함되어 있지 않지만, 분석 데이터가 여름철 데이터인 만큼 전력 사용량과 관련이 있을 것이라고 판단하여 불쾌지수 변수를 추가했습니다.

2. 체감온도 🥵

13.12 + 0.6125TT − 13.947V0.16V^{0.16} + 0.486TV0.16TV^{0.16}
TT : 기온(°C), VV : 풍속(m/s)

체감온도는 기온과 풍속의 조합으로 사람이 체감적으로 느끼는 온도입니다. 분석 데이터에 기온과 풍속 변수가 모두 있기 때문에 계산을 통해 구할 수 있습니다.

불쾌지수에서 포함하지 않은 바람의 조건을 포함하고 있어 불쾌지수를 보완해주는 변수라고 판단해 추가하였습니다.

3. Cooling Degree Hour (CDH, 냉방도일) 🌡

(일평균기온-24(°C))

- 냉방도일 : 일평균 기온 24℃ 이상의 값에 대한 1년간의 적산 온도를, 도일수(degree day)를 단위로 하여 나타낸 것

- 도일(degree day): 외부 기온과 실내 기온의 차와 이에 따라 소요되는 연료 소비를 고려한 기후 수치

냉방 도일과 도일 모두 생소한 개념이실텐데요, 냉방을 위한 필요 에너지를 산정하는 데 쓰는 변수라고 이해하시면 됩니다! 저희는 시간을 기준으로 분석을 진행했기 때문에 각 시간별 온도와 기준 온도의 차를 적산하였습니다.

아무래도 여름철 데이터를 분석하는 것이기 때문에 냉방을 위한 전력 소모가 많을 것으로 예상되어 해당 변수를 추가했습니다.

4. EDA by features

건물별 EDA를 진행하기 전 분석 데이터의 변수들의 분포 양상을 먼저 확인해보았습니다.

< 4-1. 일별 평균 기온과 전력 사용량 >

분석 데이터는 시계열 데이터입니다. 이러한 시계열성(순차적인 데이터)을 시각화하기 위해 단순 날짜인 day보다 시간의 경과를 내포하고 있는 dayofweek을 사용해 데이터를 시각화하고자 했습니다.

  • 6월 : 153 ~ 182
  • 7월 : 183 ~ 213
  • 8월 : 214 ~ 237

(빨간 점선은 6, 7, 8월을 구분하기 위한 선입니다.)

기온은 7월 초순 이후로 꾸준히 상승하는 경향을 보이며,
전력 사용량은 기온과 비슷한 양상
입니다.

< 4-2. 일별 평균 습도 및 기온 추이 >

여름 적정 실내온도와 습도는? :
https://www.korea.kr/news/healthView.do?newsId=148780861

위 기사에 따르면 쾌적함을 주는 습도는 온도에 따라 달라지는데,
15°C에서는 70%정도, 18-20°C에서는 60%, 21-23°C에서는 50%, 24°C이상에서는 40%가 적당한 습도라고 합니다.

실내 기준이지만, 사람이 쾌적함을 느낀다는 점에서 실외 온도, 습도에 대해서도 동일하게 적용할 수 있는 기준이라고 생각해 평균 습도를 확인해보았습니다.

분석 데이터는 대체적으로 20-30°C 사이의 기온이므로 해당 기온에서는 40-50%의 습도(파란색 점선 사이)가 적정 습도라고 볼 수 있는데,
데이터의 습도는 그보다 한참 높은 평균 80% 정도로 형성되어 있습니다.

더불어 기온이 상승함에 따라 습도 또한 상승하는 양상을 보이므로 습도가 증가하면 전력 사용량이 증가하는 양상을 보일 것이라고 예측할 수 있습니다.

< 4-3. 일별 강수량 추이 >

7월 말부터 8월 중순(204 ~ 224) 까지는 거의 매일 비가 내린 것을 알 수 있습니다. 이 시기는 장마기간으로 보입니다.

< 4-4. 일별 일조량 추이 >

장마 시즌(204-224)에는 일조시간이 줄어들며, 6월(153-182)과 8월 말(229-237)에 높은 일조시간을 보이는 것을 알 수 있습니다.

이를 통해 강수량과 일조량은 강수량이 증가하면 일조량은 낮아지는 trade-off 관계를 가지며 이는 당연한 결과로 생각됩니다.

위의 분석을 통해 알 수 있는 것은 다음과 같습니다.

  • 시간이 지날수록 기온은 높아진다.
  • 기온과 습도가 높아짐에 따라 전력 사용량도 같이 높아지는 경향이 있다.
  • 7월 말부터 장마의 영향을 받으며 비내리는 날이 많아진다.
  • 8월 말에는 장마가 끝나며, 비가 오는 날이 거의 없다.
  • 일조 시간은 6월에 가장 높았고, 장마 시즌에 줄어들었으며, 8월에 다시 오르고 있다.

5. EDA by Buildings

< 5-1. 건물 별 평균 전력 사용량 >

평균적으로 1000-3000kWh 정도의 전력을 사용하고, 9000kWh를 쓰는 건물까지 있는 것으로 보아 전력 사용량의 총량이 매우 다양하다는 것을 확인했습니다.

< 5-2. 시간대별 평균 전력 사용량 >

시간대별 평균 전력 사용량 추이를 확인해본 결과 13-16시에 가장 많은 전력을 사용합니다.

< 5-3. 비전기 냉방 시설(Cooler) 설치 여부에 따른 기온별 전력 사용량 >

비전기 냉방 시설의 설치 여부에 따른 동일 시간대(피크 시간 - 14시) 전력 사용량을 산점도로 비교해보았습니다.

분석 데이터가 시계열 데이터이므로 8월의 피크 시간대 전력 사용량을 비교했습니다.

6, 7월의 경우 아직 비전기 냉방 시설을 설치하지 않았을 수도 있고, 일반적으로 비전기 냉방 시설을 가장 기온이 높은 8월에 제거했을 경우는 거의 없을 것이라고 생각했기 때문입니다.

각 건물들의 기온별 전력 사용량을 확인해보겠습니다.

  • Cooler 설치 건물

  • Cooler 미설치 건물

Cooler를 설치한 건물과 설치하지 않은 건물의 뚜렷한 차이는 보이지 않지만,
Cooler를 설치한 건물은 그렇지 않은 건물에 비해 전력 사용량이 높게 형성되어 있습니다.

즉, Cooler를 설치한 건물들은 전력 사용량이 많은 건물들일 가능성이 높습니다.

비전기 냉방 시설(Cooler)을 설치하면 그만큼 전력 사용량이 줄어들어 최종적으로 전력 사용량이 적은 건물일 것이라고 예상했는데,
이미 전력을 많이 사용하고 있어 비전기 냉방 시설까지 도입한 것으로 유추해볼 수 있습니다.

< 5-4. 불쾌지수에 따른 평균 전력 사용량 >

불쾌지수를 '낮음, 보통, 높음, 매우 높음'으로 구분하여 해당하는 불쾌지수에 따른 전력 사용량을 시각화해보았습니다.

특정 건물(building 1, 3, 9, 16, 32, 33)을 제외하고 불쾌지수가 올라갈 수록 전력사용량이 증가하는 모습을 보입니다.

불쾌지수는 기온과 습도의 영향을 받는 변수이기 때문에 기온과 습도에 따른 전력 사용량의 추세와 크게 다르지 않습니다.

< 5-5. 건물들의 요일별, 시간대별 전력 사용량 >

가로축은 시간, 세로축은 요일, 색의 정도는 전력 사용량인 히트맵입니다.
건물별로 상이한 패턴이 보이는데, 대표적으로 두 가지 패턴이 보입니다.

  • 평일 낮에만 전력사용량이 높은 건물
  • 평일 주말 상관없이 낮에만 전력사용량이 높은 건물

이처럼 60개의 건물 중 비슷한 양상을 보이는 건물들이 있기 때문에 위의 히트맵에서 사용한 요일별, 시간대별 전력 사용량 지표를 활용해 건물들을 군집화하였습니다.

6. Clustering

6-1. Generating Clustering Indicators

군집화를 하기 위해 위에서 정한 두 가지 지표는 다음과 같습니다.

1. 요일별 전력 사용량의 중앙값(median)
2. 시간대별 전력 사용량의 중앙값

전력 사용량은 '4-5. 건물별 평균 전력 사용량'을 통해 알 수 있듯이
1000kWh부터 9000kWh까지 전력 사용량의 범위가 넓게 분포되어있습니다.

본 분석에서는 절대적인 전력 사용량이 아닌
' 요일과 시간대에 따른 전력 사용량의 "경향성" '에 따라 군집화할 것이기 때문에,
분포의 범위 조정을 위해 각각의 median 값에 scaling을 진행했습니다.

  • scaling 후 요일 별 전력 사용량

대부분 주말(day5, 6)로 갈수록 전력 사용량이 줄어들지만, 일부 건물들은 그대로 유지되거나 오히려 증가합니다.

  • scaling 후 시간대별 전력 사용량

대부분 오전 7시 - 6시 사이에 전력 사용량이 늘고, 그 이후엔 감소하는 경향을 보입니다.

6-2. k-means clustering

군집화는 k-means clustering 방식을 활용했습니다. k-means 방식에 대해선 아래와 같이 간략하게 설명하고 넘어가겠습니다 !

K-means Clustering
: 클러스터 내 오차제곱합(SSE)의 값이 최소가 되도록 클러스터의 중심을 결정

elbow method를 사용하여 최적의 군집 수를 결정했고, 본 분석에서는 4개의 군집으로 나눴습니다.

7. EDA by Clusters

< 7-1. 군집별 요일별, 시간대별 전력 사용량 line 그래프>

왼 쪽의 그래프는 요일별, 오른 쪽의 그래프는 시간대별 그래프입니다.
위의 그래프를 통해 알 수 있는 것은 다음과 같습니다.

  • cluster 0
    요일이 지날수록 전력 사용량이 증가한다.
    9시-18시까지 사용량이 많다.
  • cluster 1
    평일엔 사용량이 많지만 주말이 되면 확연히 감소한다.
  • cluster 2
    주말에 사용량이 현저하게 증가한다.
    오전에 한 번, 저녁 5시 이후에 한 번 사용량이 급증한다.
  • cluster 3
    주말에 사용량이 감소한다.
    오후에 사용량이 증가하는 듯 보이지만 뚜렷한 경향성이 나타나지 않는다.

< 7-2. 군집별 요일별, 시간대별 전력 사용량 히트맵 >

< 6-1. 군집별 요일별, 시간대별 전력 사용량 line 그래프> 와 종합해보면,

  • cluster 0
    매일 8-20시에 전력 사용량이 크다.
    늘 전력을 소비하는 식당, 카페, 상점, 대형 복합 쇼핑몰이라고 추정할 수 있다.
  • cluster 1
    평일 8-20시에 전력 사용량이 많고, 주말에 전력 사용량이 작다.
    일반 기업체로 추정할 수 있다.
  • cluster 2
    매일 저녁 16-22시에 전력 사용량이 크다.
    평일보단 주말에 소모량이 약간 더 많다.
    저녁과 밤 위주로 운영되는 주점, 유흥시설이라고 추정할 수 있다.
  • cluster 3
    뚜렷하게 드러나는 특징은 없지만 상대적으로 오후나 저녁 시간대에 많은 전력을 사용한다.

그래프와 히트맵으로 시각화한 것으로 보았을 때,
군집 내 유사도는 높으며 군집 간 유사도는 낮기 때문에 군집화가 잘 되었다고 할 수 있습니다.

< 7-3. 군집별 평균 전력 사용량 >

cluster 3에서의 평균 전력 사용량이 가장 많다는 것을 알 수 있습니다.

< 7-4. 군집별 기후요소와 전력 사용량의 상관관계 >

군집별 전력사용량과 기후 요소 상관관계를 표로 나타내면 위와 같습니다.
습도와 강수량과 각 군집의 상관계수를 보면 -0.04 에서 -0.15로, 상관이 없다고 할 수 있습니다.

이를 히트맵으로 나타내면 아래와 같습니다.

  • Cluster 0
    기온과 높은 양의 상관관계가 있으며, 다른 군집들에 비해 기후와 상관이 있는 군집임을 유추할 수 있다.
  • Cluster 1
    전체적으로 기후 요소들과 상관이 없지만 기온과 약한 양의 상관관계가 있다.
  • Cluster 2
    군집 중 기온과 가장 높은 양의 상관관계를 가지는 군집이다.
    기온과 습도와 비교적 높은 양의 상관관계를 가진다.
    건물마다 풍속과의 상관관계가 상이하다.
  • Cluster 3
    뚜렷한 군집 특성이 드러나지 않는다.

< 7-5. 군집별 전력 사용량과 개별 기후 요소들의 상관관계 >

각 군집들과 상관관계가 없다고 할 수 있는 습도, 강수량에 대해서는 시각화하지 않았습니다.

  • 기온

Cluster 3을 제외한 Cluster 0, 1, 2에서 기온이 증가함에 따라 전력 사용량도 함께 증가하고 있습니다.

  • 풍속

Cluster 0 에서 풍속이 빠를수록 전력 사용량이 증가하는 경향이 있습니다.
Cluster 1, 2에서 풍속이 빠를수록 전력 사용량이 감소하는 경향이 있습니다.

  • 일조

cluster0의 경우 경미한 양의 상관관계를 보인다고 할 수 있다.

< 7-6. 군집별 비전기냉방시설(Cooler), 태양광(Solar) 유무와 전력 사용량의 관계 >

위 그래프는 Cooler의 설치 여부와 전력 사용량을 나타내는 그래프이고,
아래 그래프는 Solar의 설치 여부와 전력 사용량을 나타내는 그래프입니다.

Cluster 0, Cluster 1에 cooler가 비교적 많이 설치되어 있고,
Cluster 2에는 cooler가 설치되어 있지 않습니다.
이는 주간-야간에 골고루 전력 소모량이 많은 건물들엔 설치율이 높고, 야간에 전력 소모량이 많은 건물엔 설치율이 낮음을 알 수 있습니다.

Solar는 모든 군집에 설치가 되어있습니다. 설치 비율을 따져본다면, 주로 밤에 전력을 소모하는 Cluster 2의 경우 설치율이 상대적으로 낮습니다.

요약해보자면,
Cluster 0과 1은 cooler와 solar의 설치 비율이 높고, 그만큼 전력 사용량도 높습니다.
Cluster 2와 3의 경우 cooler와 solar가 설치되지 않은 건물들에서 전력 사용량이 높습니다.

< 7-7. CDH, THI, sensible과 전력 사용량의 상관관계 >

새롭게 만든 변수인 CDH(냉방도일), THI(불쾌지수), 체감온도와 전력 사용량과의 상관관계를 확인해보았습니다.

cluster 1, 3에서 CDH, THI, sensible과 전력 사용량의 상관계수는 0.2 이하의 값으로 상관이 없다고 볼 수 있습니다.

그에 반면 cluster 2는 세 변수 모두 상관계수가 0.4 이상으로 다른 군집들에 비해 높은 양의 상관관계를 보입니다.

8. Results

위의 분석 결과를 종합해보겠습니다 !

- Cluster 0

🧐 추정 : 식당, 카페, 상점
Why?
1) 매일 8-20시에 높은 전력 사용량
2) 평일뿐만 아니라 주말에도 꾸준히 사용량이 증가
3) 주말에 여가생활을 즐기는 인구의 수가 많을 것으로 예상되기 때문에,
주말 주중 시간대에 사용 전력량이 증가
✔️ 그 외 특징들
1) 비교적 기후(기온, 풍속, 일조)와 상관 관계가 높지만 CDH, THI, sensible과는 약한 양의 상관관계
2) 건물마다 습도 및 풍속의 영향이 상이
3) 풍속이 빠를수록 전력 사용량이 증가
4) cooler와 solar의 설치 비율이 높고, 설치된 건물에서 전력 사용량이 높음

일반적으로 너무 덥거나 습한 날엔 친구들과의 약속 혹은 여가생활을 하는 것이 꺼려집니다.

- Cluster 1

🧐 추정 : 일반 기업체
Why?
1) 평일엔 전력 사용량이 많지만, 주말엔 확연히 감소
2) 시간별 전력 사용량 양상이 비슷한 Cluster 0과 차이점은 '주말의 전력 사용량', 평일 주중엔 사용량이 많지만 주말엔 확연히 감소
✔️ 그 외 특징들
1) 전체적으로 기후 요소들과 상관이 없음.
2) 기온이 증가함에 따라 전력 사용량도 늘고, 풍속이 빠를수록 사용량은 감소
3) CDH, THI, sensible과는 약한 상관관계를 가짐.
4) Cooler, Solar의 설치량이 많고, 설치된 건물들에서 전력 사용량이 높음.

기온, 불쾌지수, 체감온도가 어떻든, 태풍이 불어도 우리는 출근을 합니다.

Cluster 2

🧐 추정 : 주점 및 유흥시설
❓ Why?
1) 저녁 5시 이후 사용량이 증가, 주말엔 현저히 높은 전력 사용량.
2) 오후, 밤 시간대에 전력 사용량이 많은 것으로 보아 오후에 문을 여는 주점 및 유흥시설의 건물이라 예측
✔️ 그 외 특징들
1) 기온과 가장 높은 양의 상관관계를 가지며, 습도에도 영향을 많이 받음
2) 건물마다 풍속의 영향이 상이
3) 다른 군집들에 비해 CDH, THI, sensible과 높은 양의 상관관계(0.4 이상)를 가짐
4) 군집별 평균 전력 소모량에서 그 값이 가장 낮음
5) cooler가 설치된 건물은 존재하지 않고, solar가 설치된 건물들에서 전력 사용량이 높음.

Cluster 3

🧐 추정 : ???
❓ Why?
1) 주말에 사용량이 감소하고, 오후에 사용량이 증가하지만 뚜렷한 경향성을 나타내지 않음.
2) 군집에 속해있는 건물이 4개뿐.
✔️ 그 외 특징들
1) THI, sensible과 전력 사용량은 낮은 상관 관계를 가지며,
특히 CDH와 전력 사용량은 상관관계가 거의 없음.
2) cooler, solar의 설치 비율은 절반이고, 모두 설치되지 않은 건물들에서 전력 사용량이 높다.

9. Extra Data

'8. Results' 의 추정이 타당한 지 외부 데이터를 활용하여 검증해보았습니다. 데이터는 통계청의 산업별(표준산업코드 중분류) 월별 1~24시 전력소비계수(2008-2020) 데이터에서 2020년 6,7,8월의 데이터만 추출하였습니다.

총 75개의 산업군으로 분류되어있고, 7-1에서 그렸던 군집별 시간대별 전력 사용량 line그래프의 양상과 비슷한 산업군을 찾아보았습니다.

  • Cluster 0

: 식당, 카페, 상점 등

소매업(자동차 제외), 자동차 및 부품 판매업, 음식점 및 주점업, 기타 개인 서비스업은 Cluster 0의 그래프와 비슷한 양상을 보입니다.

  • Cluster 1

: 일반 기업체

전문 서비스업, 금융업, 기타 전문/과학 및 기술 서비스업은 Cluster 1의 그래프와 비슷한 양상을 보입니다.

  • Cluster 2

: 주점 및 유흥시설

스포츠 및 오락관련 서비스업, 음식점 및 주점업으로 Cluster 2의 그래프와 비슷한 양상을 보입니다.

  • Cluster 3

: ???

비교적 새벽에도 높은 전력 사용량을 보이는 숙박업이 그나마 가장 비슷한 산업군이었습니다.

10. Conclusion and Limitation

드디어 ! 마지막 결론입니다 !

기온, 습도, 풍속과 같은 기후 요소들과 태양광 설치 여부 등
어떤 변수들이 전력 사용량에 영향을 미치는 지 알아보기 위해 EDA를 진행했습니다.
그 후 시간, 요일별 평균 전력 사용량을 지표로하여 군집화를 진행했고,
군집별 특성을 확인하기 위한 EDA를 진행했습니다.

각 군집의 특성을 나타내는 산업군이 있을 것으로 판단하여 통계청의 '산업별 시간대별 전력 사용계수' 데이터를 활용하여 각 군집에 어떤 산업이 해당되는 지 추정했습니다.

각 군집에 어떤 산업이 해당되는 지 추정하는 데에 있어 시간별 전력 사용량 변수만 고려했다는 점이 저희 분석의 한계로 남아있고, 이는 추가적인 데이터를 활용해 보완할 수 있을 것으로 생각합니다.

Cluster 3의 경우, 건물의 종류가 4가지밖에 없어 해당 군집을 대표할만한 특성이 두드러지지 않은 점이 아쉬운 부분입니다.

더 나아가 본 분석에서 진행한 EDA를 통해 test 데이터셋의 전력 사용량을 잘 예측할 수 있는 모델을 만들 수 있을 것으로 기대됩니다.


아이펠 과정을 이수하면서 처음으로 진행했던 팀 과제였습니다. 조원 모두 타이트한 마감 기한과 컨디션 난조로 인해 어렵게 과제를 수행했지만, 그래도 좋은 시너지로 좋은 결과를 얻을 수 있었던 것 같습니다 !

profile
딸기 못잃어

0개의 댓글