본문 바로가기
5. 활동/KT AIVLE AI 3기

[KT AIVLE 3기] 사전 강의 3주차

by 로기(dev-loggi) 2023. 1. 27.

 

목차

     

    5-1. [데이터 분석 이해와 실무] 가설의 의의와 검정

    1) 가설 검정의 의미

    • 모집단에 어떤 가설을 설정한 뒤, 해당 가설에 대해 통계적 추론으로 가설의 채택 여부를 확률적으로 판정하는 방법
    • 기존 이론을 의미하는 귀무가설(H0)과 연구자의 주장인 대립가설(H1)이 존재

     

    2) 가설 검정 방법

    • 종속변수와 독립변수의 유형에 입각하여 검정 방법을 설정(예: 단일 집단 평균 검정, 독립 표본 t 검정 등)

     

    3) 가설 검정의 오류

    • 제1종 오류: 귀무가설이 이지만 기각을 할 경우 생기는 오류, "유의수준"이라고 불림
    • 제2종 오류: 귀무가설이 거짓이지만 기각하지 못할 경우 생기는 오류

     

    5-2. [데이터 분석 이해와 실무] 상관분석

    1) 상관관계

    • 상관관계는 변수 간의 상호 관련성을 의미하며, 관계성의 정도는 통계적 또는 시각적인 방법으로 파악 가능
    • 산점도를 이용하면 변수 간 관계를 시각적으로 파악 가능
    • 상관계수는 객관적으로 변수 간 관계성을 측정

     

    2) 산점도(Scatter Plot)

    • 두 연속형 데이터 관계 파악에 용이
    • 극단치 혹은 이상치 파악 가능

     

    3) 상관계수

    두 변수 간의 함께 변화하는 경향을 객관적으로 측정할 수 있는 척도

    • 피어슨 상관계수: 선형관계의 강도를 측정
    • 스피어맨 상관계수: 비선형 순위 상관관계를 측정

     

    4) 상관분석

    측정된 두 변수 간의 선형관계가 있는지 탐색 및 확인하는 분석 방법

     

    피어슨 상관 분석

    귀무가설: H0: r = 0 (선형관계 없음)

    대립가설: H1: r ≠ 0 (선형관계 없음)

     

    상관관계 vs 인과관계

    (상관관계가 있다고 인과관계가 있는 것은 아님. but, 인과관계가 있으면 상관관계는 있음)

     

    5) 상관분석 Process

    1. Data 특성 파악 & 가설 설정
    2. 산점도를 이용한 시각화 및 가정 검토
    3. 목적에 맞는 분석 수행
    4. 결과 해석 및 최종 결론 도출

     

    5-3. [데이터 분석의 이해와 실무] 회귀분석

    1) 단순회귀분석

    • 한 개의 종속변수(Y)와 한 개의 독립변수(X) 사이의 관계를 분석하는 통계 기법
    • Y와 X간의 관계를 일차식(선형)에 대입하여, X의 변화에 따라 Y가 얼마나 변하는지를 예측할 때 사용
    • 선형성, 독립성, 등분산성, 정규성에 대한 가정 충족 시 인과성 도출 가능

     

    • 최소제곱법(OLS): 잔차의 제곱의 합을 최소화
    • 결정계수(R^2): 총 변동을 설명하는 데 있어서 회귀선에 의하여 설명되는 변동 기여 비율(R^2 = SSR / SST, SST = SSR + SSE)
    • t 검정: 단순 회귀계수를 검정할 때 개별회귀계수의 통계적 유의성은 t검정으로 확인

     

    2) 다중회귀분석

    • 단순회귀분석의 확장으로 독립변수가 두 개 이상인 회귀모형에 대한 분석
    • 다중공선성 문제 -> 변수 선택 중요
    • 이차회귀모델, 다항회귀모델

     

    5-4. [데이터 분석 이해와 실무] 시계열분석

    1) 시계열 데이터

    • 순차적인 시간의 흐름에 따라 기록된 데이터를 의미
    • 추세(Trend), 계절성(Seasonality), 싸이클(Cycle), 잔차(Residuals)
    • Y = T + S + C + R 또는 Y = T × S × C × R

     

    현재 시점의 시계열 데이터를 분석하는 데 이전 시전의 값이 현재에도 영향을 끼칠 것이라는 가정하에 회귀분석을 진행

    시계열 분석 vs 단순 회귀

     

    2) 시계열 분석 통계 모델

    • 자기회귀 모델(AR)

    AR 모델은 시계열의 미래 값이 과거 값에 기반한다는 모델

    즉, 이전 값의 영향을 받는 것이 특징

     

    • 이동평균 모델(MA)

    전체적인 편향성을 다루는 모델로, 설명변수가 최근 오차항으로만 구성되어 있는 것이 특징

    이전 시점의 값에 기반하는 것이 아닌, 이전 시점의 예측 오차에 가중치를 두어 미래의 값을 예측

     

    • ARIMA 모델 (AR + I + MA)

    ARMA를 동시에 고려하고, 누적(I)으로 추세까지 고려한 모델로, "자기회귀 누적 이동평균 모델"이라고도 불림

    ARIMA(p, d, q) = AR(p) + I(d) + MA(q)

     

     

    ※ 정상성: 정상성을 나타내는 시계열은 관측치가 시간과 무관하여야 함. 즉, 시간에 상관없이 일정한 평균과 분산을 갖고 있어야 함

     

    3) 시계열 분석 순서

     

    시계열 분석 플로우 차트

     

    6-1-1. [데이터 시각화 이해와 실무] 정적 시각화 개요

    1) 데이터 시각화

    • 그림은 백 마디의 가치가 있다
    • 직관적으로 정보를 확인하는 효과적인 방법
    • 적절한 그래프 유형 선택옵션 활용이 중요

    ※ 통계학자 Anscombe이 시각화의 중요성을 주장 - 기술 통계량에만 의존하면 안되는 이유

     

    2) 그래프 구성 요소

    그래프를 구성하는 요소와 방식을 안다면 다양한 활용 가능

    • figure: 도화지(그림 전체)
    • axes: 도화지 내 plot이 그려지는 공간
    • axis: plot의 축 -> y축, x축

     

    3) 파이썬 시각화 라이브러리(Matplotlib, Seaborn)

    대표적으로 Matplotlib과 Seaborn을 많이 사용함

     

    Matplotlib

    • 파이썬의 기본적인 시각화 라이브러리
    • 기본적이고 단순한 디스플레이
    • 한 줄의 코드로는 복잡한 그래프 구현이 어려움
    • 여러 개의 시각화 가능
    • 유연한 인터페이스 제공(즉, 원하는 기능 구현 용이)

    Seaborn

    • 통계 시각화에 특화
    • 다채로운 시각화 가능
    • 쉽고 간단하게 복잡한 기능 구현
    • 다중 시각화 어려움(메모리 부족 이슈)
    • 유연성이 상대적으로 떨어짐

     

    6-1-2. [데이터 시각화 이해와 실무] 정적 시각화 실습 (Matplotlib 활용)

    1) Matplotlib 소개 및 특징

    • 파이썬의 가장 인기 있는 데이터 시각화 라이브러리로, 2D 형태의 그래프이미지를 그릴 때 많이 사용
    • pyplot 모듈을 많이 사용, 주로 plt 라는 별칭을 이용하여 호출
    • 유연한 인터페이스
    import matplotlib.pyplot as plt
    
    // 새로운 그래프를 담을 도화지(figure) 생성
    plt.figure()
    
    // 데이터 시각화 기능 담당
    // 그래프 유형(plot, hist, pie 등)과 변수를 주어 설정 가능
    plt.plot(기간, 변수1)
    plt.plot(기간, 변수2)
    // ...
    
    // 그래프 출력
    plt.show()
    
    plt.figure()
    plt.plot([0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5]) // 왼쪽(데이터 x), 오른쪽(데이터 y)
    
    plt.title('라인 그래프')
    plt.ylabel('와이 축')
    plt.xlabel('엑스 축')
    
    plt.show()

     

    2) 여러 개의 그래프 그리기(subplot, subplots)

    • 여러 개의 그래프를 하나의 figure(도화지)에 담는다면 한 번에 더 많은 정보를 효과적으로 전달할 수 있음
    • Matplotlib의 pyplot 모듈에서는 subplot과 subplots 커맨드를 활용하여 여러 그래프를 구현 가능

     

    pyplot의 subplot

    plt.subplot(row, column, index)

     

    pyplot의 subplots

    subplots를 사용할 때 axes 객체의 twinx 메소드를 이용하면 x축을 공유하는 두 개의 그래프를 동시에 그릴 수 있음

    하나의 ax에 두 종류의 그래프

    같은 x축을 공우, 다른 y축을 사용

     

    6-1-3. [데이터 시각화 이해와 실무] 정적 시각화 실습 (Seaborn 활용)

    1) Seaborn 소개 및 특징

    • Matplotlib을 기반으로 하며, 다채로운 디자인 테마통계용 차트 등이 추가된 강력한 시각화 라이브러리
    • 간결한 한 줄 코드로 쉽고 간단하게 복잡한 기능 구현이 가능
    • 통계 시각화에 특화
    • 데이터에 적합한 다채로운 시각화 기능을 제공

     

    2) Seaborn의 시각화 기능

    • 산점도: scatterplot(x, y, hue, data)
    • 산점도 + 추세선: regplot()
    • 범주별 산점도 + 추세선: lmplot()
    • 점도표: rugplot()
    • 단변량 & 다변량 시각화: pairplot()
    • heatmap()

     

    6-2-1. [데이터 시각화 이해와 실무] 동적 시각화 개요

    1) 동적 시각화

    • 동적 시각화는 유저와 시각화 결과의 상호작용으로 다양한 정보를 즉각적으로 전달하는 것이 특징
    • x축, y축 등에 의존하는 제한된 정보 전달이 아닌 그 외의 정보까지 하나의 그래프에 담을 수 있음
    • 대시보드는 동적 시각화의 대표적인 예제

    2) Plotly 라이브러리

    파이썬의 대표적인 동적 시각화 라이브러리

    Plotly의 express(px)와 graph_objects(go) 패키지를 많이 사용

    • express: 고수준 API, 쉽고 빠르게 구현, 유연성이 떨어짐
    • graph_objects: 저수준 API, 섬세하고 유연하게 시각화 가능, 구현이 어려움

     

    6-2-2. [데이터 시각화 이해와 실무] 동적 시각화 실습(Plotly 활용)

    1) Plotly의 Graph Objects 패키지

    • graph_objects는 Plotly의 인기 있는 데이터 시각화 모듈로, 3D 형태의 그래프를 포함한 다양한 그래프를 그릴 수 있음
    import plotly.graph_objects as go
    
    // Step 1: Figure(도화지) 객체 생성
    fig = go.Figure()
    
    // Step 2: 원하는 유형의 그래프 추가(go의 그래프 유형 설정)
    fig.add_traces(그래프)
    
    // Step 3: 레이아웃 설정(title, yaxis_title 등)
    fig.update_layout(옵션)

     

    6-3. [데이터 시각화 이해와 실무] UI 시각화 실습 (Streamlit 활용)

    1) Streamlit 개요

    • Data Science를 위한 맞춤형 웹 애플리케이션을 만들 수 있는 파이썬의 라이브러리
    • 간결하고 명확한 API를 제공하며, 다른 프레임워크와 비교하여 상대적으로 진입장벽이 낮음

     

    2) Streamlit 구성 요소

    • 텍스트 요소: 타이틀, 헤더, 마크다운, 코드 블럭 등
    • 인풋 위젯: 버튼, 체크박스, 라디오, 셀렉트박스, 슬라이더 등
    • 그 외 이미지 & 상태바: 사이드 바, 성공 메시지, 이미지 등

     

    Streamlit 샘플 이미지 (출처: https://streamlit.io)

     

    댓글