[데이터 분석] 1. 코로나 데이터 분석 #2. 전세계 코로나 확진자 수 추이

향후 전세계 코로나 19 발생 예측

import pandas as pd
import plotly.express as px
import numpy as np
import plotly.graph_objects as go

covid_df = pd.read_csv('https://covid.ourworldindata.org/data/jhu/full_data.csv')
df_all = covid_df.query('total_deaths > 10000')

px.scatter(df_all, x='date', y='new_deaths', size='total_cases', color='location')

  • import plotly.express as px : 능동 대화형 그래프 모듈
    • px.scatter() : 점 표시
      • size : 데이터프레임 해당 열의 값 크기에 따라 크기 변화
      • color : 데이터 프레임 해당 열의 값의 유형별로 색을 다르게 표시
df_date = covid_df.query('total_deaths > 10000').query("date=='2022-01-01'").query('location!="World"&location!="High income"')
fig = px.pie(df_date, values='new_cases', names='location')
fig.update_traces(textposition='inside', textinfo='percent + label')

  • fig = px.pie(df_date, values='new_cases', names='location') : values 값의 숫자 비율을 통해 원형 통계 차트 출력
  • fig.update_traces(textposition='inside', textinfo='percent + label')
    • textposition = 'inside' 를 통해 숫자비율을 원형 내 표시
df_World = covid_df.query('total_deaths > 10000').query('location=="World"')
x = df_World['total_cases']
y = df_World['new_cases']

a,b,c,d = np.polyfit(x,y,3)
x_val = np.linspace(np.min(x), np.max(x))
y_regression = a*x_val**3 + b*x_val**2 + c*x_val + d

fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=y, mode='markers'))
fig.add_trace(go.Scatter(x=x_val, y=y_regression, mode='lines'))

  • 데이터들의 추세의 특성과 형태를 보여주는 회귀선은 추정한 값으로 실제값에 근사하면 미래예측하는데에도 우수함
  • 미래예측을 위한 추세선을 시뮬레이션 : 회귀선으로 계산된 미래 예측값과 실제 관측값과의 비교로 회귀선을 적합하게 fitting 해나감
  • 독립변수 x의 total_cases를 통해 종속변수 y의 new_cases 향후 결과 예측하는 모델 ➡️ 증가추이 그래프

좋은 웹페이지 즐겨찾기