[시계열/시각화] Time Series Data Visualization And Analysis Techniques

magnussapiens·2022년 11월 5일
0

시계열

목록 보기
1/1

코세라 프로젝트 Time Series Data Visualization And Analysis Techniques 의 요약입니다


1. 데이터셋 전처리
2. 전체 기간 내 온도 추이 확인하기
3. 각 지역별 평균 온도 비교하기
4. 특정 지역의 월별 평균 온도 확인하기


  1. 데이터셋 전처리
  • 화씨로 되어있는 온도를 섭씨로 변경합니다
  • 평균 데이터 히스토그램을 그려 outlier 로 보이는 데이터를 제거합니다
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

import plotly.express as px
import plot.graph_objects as go
data['avg_temp'] = round((data['avg_temp'] - 32 * 5/9 ),1)
data['avg_temp'].hist()
data = data[data['avg_temp] > -40]
(수강하다 든 생각)
데이터 아웃라이어를 쉽게 제거하는 예시였지만, 실제 데이터 활용할 때는 다른 방식으로 진행되어야 한다고 생각합니다. 
저 데이터가 '어떤 상황에서 발생한 데이터인지' 한번 더 확인을 한 후 삭제를 하거나 별도로 아웃라이어 데이터들만 모아 따로 학습하는 방법도 한 가지가 되겠습니다.
  1. 전체 기간 내 온도 추이 확인하기
  • 시계열 데이터를 볼 때는 (1)전체 트렌드 분석과 (2)주요 모멘트, 그리고 (3) 이상치를 확인해야 합니다
  • 전체 트렌드를 확인할 때는 시계열을 관통하는 트렌드 선을 함께 그려 확인할 수 있습니다.
data_agg = data[['year','avg_temp']].groupby(['year']).mean().reset_index()
fig = px.line(data_agg, x = 'year', y = 'avg_temp', title = 'global temp 2019 ~2029')
fig.update_xaxes(dtick = 'year')
fig.show()
    
coefs = np.polyfit(x = data['year'], y = data['avg_temp', deg = 1)
m = coefs[0]
c = coefs[1]
line = m * data['year'] + c
fig.add_trace(go.Scatter(x = data['year'], y = line, name = 'trend line'))
fig.show()

  • line chart 는 주요 모멘트를 한눈에 찾아내기 쉬운 반면, bar chart 는 상대적으로 트렌드를 바로 확인하기가 어려운데, 그때는 color 를 활용하면 됩니다.
px.bar(data, x = 'year', y = 'avg_temp', color = 'avg_temp')

  1. 각 지역별 평균 온도 비교하기
  • color 파라미터를 설정하고 선택 시 아래와 같이 확대된 상태에서도 비교가 가능합니다
fig1 = px.line(data, x = 'year', y = 'avg_temp', color = 'region')
fig1.update_xaxes(dtick = 'year')
fig1.show()

  1. 특정 지역의 월별 평균 온도 확인하기
  • 월별로 데이터를 모아두고 한눈에 보기 쉽게 비교할 수 있습니다.
  • bar chart 를 활용하여 추이 및 이상치를 함께 확인할 수 있습니다
fig2 = px.bar(data, x = 'date', y = 'avg_temp', color = 'month')
fig2.show()

  • box chart를 그리면 bar chart 에서 보았던 이상치를 더 빠르게 확인할 수 있습니다.
fig3 = px.box(data, x = 'month', y = 'avg_temp', color = 'month')
fig3.show()

0개의 댓글