[데이터 분석 부트캠프] 데이터 분석을 위한기초 수학/통계(4), 시각화

2023. 6. 29. 18:34IT 라이프/패캠 데이터분석 부트캠프 9기

반응형

1. 어제까지 배운 내용 복습 내용 중

⌘ 표시 형식

  • 셀서식 > 사용자 지정 구문
    • 양수일 때; 음수일 때;0일 때(주가등락,성장율,달성률 등에 사용가능) : [빨강]"▲"#,##0;[파랑]"▼"#,##0;"-”

 

2. 통계적 데이터 분석

⌘ 시계열 데이터

            • 대부분은 비정상 시계열 데이터가 많음
              • 분석 결과를 이해하기 어려움. 그래서 뭔가를 더 걷어내고 완만하게 만들어서 정상 시계열 분석방법으로 분석하게 됨
                • 예) 주식의 캔들챠트 = 비정상 시계열 데이터를 평균이동(정상 시계열 분석방법 중 하나)
            • 정상 시계열 분석방법
              • 지수평활법
                • 현재까지의 실제 값과 과거의 예측 값을 합산하여 미래의 예측 값을 구하는 방법
                • 단순 지수 평활법의 사용 예시: 월별 매출액(과거 시계열 데이터)으로 미래의 월별 매출액 예측
                • 미래의 예측 값 = 과거의 실제값 * ⍺ + 과거의 예측값 * (1-⍺)
                • 과거에는 ⍺값을 찾는 것도 문제였지만 현재는 컴퓨터나 함수가 전부 찾아주므로 우리는 함수를 사용하기만 하면 됨 : FORECAST.ETS()
              • FORECAST.ETS() 함수
                • 지수평활법을 활용한 예측치 산출해주는 함수로, ETS는 ExponenTial Smoothing(지수 평평화)의 약어
                • FORECAST.ETS() 함수의 인자값 중 계절성, 누락데이터처리, 중복시계열처리
                  • 계절성
                    • FORECAST.ETS.SEASONALITY(과거값 범위, 과거일시 범위)로 계절성 값을 확인 가능하지만 6이 나온 경우 12 써도 상관없고, 보통은 12개월을 많이 쓴다고 함
                    • 계절성의 단위는 ’월’인 듯
                    • 계절성이 없는 경우는 어떡하나 구글링해보니 0값을 주면 된다고 함
                  • 누락데이터처리
                    • 1 또는 빈값 : 누락된 데이터를 주변 데이터의 평균으로 계산
                    • 0 : 누락된 데이터를 0으로 계산
                  • 중복시계열처리
                    • 1 또는 빈값 : average로 반영 (보통 많이 사용)
                      • 예시. 9월 매출액이  두 줄 있으면 중복으로 간주하여 위의 중복처리가 적용됨

                      • 예상값에 대한 검증은 해당 월에 실제 매출이 나오면 그 때 가능
                      • 위와 같이 예상 매출액이 나왔다고 바로 그에 맞춰 계획하면 망함
                        • 예측값이 나왔으면 그걸 믿고 가는 게 아니라 실무자가 issue management에 작성한 예상 이벤트(예. 5월에 대형 판매가 예정되어 있고 5억 매출 예상됨, 9월에 주요 고객 이탈로 -3억 예상됨)의 금액을 해당 월의 예측값에 합산하고, 이 값을 최종 예측값으로 보고 비로소 활용 가능
                        • 예측값은 과거 데이터만 사용한 것이므로 실무자가 이미 계획을 잡고 있는 미래 데이터를 반영해 줄 때 더 맞는 계획이 가능해지는 것
                      • 더보기
                        💡팁

                        ✼ x축 ‘연도’의 경우 표에서 1월 옆에만 표기하고 2~12월은 비워놓았기 때문에 차트에서는 월에 연도가 하나씩만 그룹핑된 형태로 깔끔하게 보여짐 

                        ✼ ‘매출’열과 ‘FORECAST.ETS’열을 각각 다른 열로 두었기 때문에 꺾은 선 그래프의 색상이 자동으로 다르게 표시됨 (물론 실제값과 예상값은 다르므로 열을 구분해서 쓰는게 상식적이기도 하고) 

                        ✼ ‘FORECAST.ETS’열에 2020/12(실제값의 마지막 행)에 실제값을 복붙해주면 그래프상으로 실제값과 예상값이 자연스럽게(=안끊기고) 연결이 됨 

                        💡차트 팁 

                        ✼ 과거 데이터는 보통 검은 색으로 표시 

                        ✼ 강조해서 보려는 부분을 정해서 눈에 들어오는 색상으로 표시 

                        ✼ 실제값이 아닌 예측값은 보통 실선 아닌 점선으로 표시 

                        ✼ 포인트에 점 추가하는 방법 : 서식 > 채우기 및 선 > 표식 > 표식 옵션 > 기본제공하는 형식들 중 하나 선택, 크기 조정

 

3. 머신러닝 맛보기

⌘ 머신러닝의 종류

  • 지도 학습이 대부분임-미리 성능평가를 하기 위해서 정답 아는 모집단에서 랜덤 샘플링한 70%로 학습시킨 후 30%를 잘 예측하는지 확인. 왜냐하면 정답을 모르고 나중이 되어서야 정답을 안다면 너무 늦으니까
    • regression : 특정 수치를 정확히 예측
      • 이건 너무 어려우니까 classification예측을 많이 하게 됨
    • classification : 분류. 구간 예측이니까 regression보다는 예측을 더 잘할 수 밖에 없음
  • 비지도 학습
    • clustering(군집화)
      • classification은 이미 분류의 정답이 있지만, 군집화는 비슷한 특성을 가지고 묶어보는거라 결과를 확인해 봐야 함
  • 강화 학습
    • 인간이 배우는 방식과 가장 비슷
    • 행동에 대한 보상, 벌점을 주어 학습하는 방식

⌘ 지도학습 KNN

  • KNN(K-최근접 이웃)
    • 이웃 개수인 K개를 정해야 함. 최적의 K값을 찾는게 이 작업의 목표

 

4. 데이터 시각화

⌘ 기본 차트 작성 (막대/꺾은선/원형)

  • 차트는 숫자 데이터로만 그릴 수 있음
  • 어떤 숫자로 그래프를 그릴지 결정 (예. 지역별 월별 코로나확진자 수)
  • 그 숫자를 어떤 형태의 챠트가 효과적으로 보여줄 수 있는지 확인
  • 그 차트를 더 효과적으로 보이게 색상 등을 조절
  • 실습1-막대
    • 숫자와 이름을 같이 잡고 삽입>차트 선택
    • 디자인 : 기능과 결합되어야 하므로 사람들이 더 많은 정보를 더 빠르게 전달받을 수 있게 된다는 것을 의미
      • 차트의 데이터를 모두 단색으로 변경(회색 강력 추천)
      • 차트에서 가장 중요한(강조해야 하는) 데이터를 선택
      • 차트의 메인 컬러를 1개 선정(기본 컬러 너무 쨍한거 말고)
      • 중요 데이터에만 메인 컬러를 적용
      • 데이터 레이블 추가
      • 차트의 윤곽선 제거

⌘ 심화 차트

    • 실습1-콤보
      • 실습 데이터와 차트로 보고자 하는 바
        • 한국(지역 합산)의 월별 코로나 확진자 증감율을 차트로 확인할 때, 증감 수는 막대형으로, 증감율은 꺾은선형으로 표시하는 실습
      • (맥 기준)
        차트로 그리고자 하는 데이터(헤더, 인덱스 포함)를 잡은 상태로 막대형을 그림
        → 막대 잡고 '차트 디자인'의 '차트 종류 변경'
        → '혼합형'의 막대+꺾은선 선택
        → 찌부러지게 생긴 '증감율' 선을 잡고 '서식'의 '서식창'을 열어서 '계열 옵션'의 '데이터 계열 지정'을 '보조 축'으로 변경

    • 실습2-거품형
      • 분산형과 거품형은 다른 차트와 달리 빈 차트를 만든 후 데이터를 입력하여 완성함
        • 테이블에서 분산형은 x, y 순서로, 거품형은 x, y, 거품크기값이 순서로 들어있어야 한 번에 제대로 된 차트가 만들어지기 때문  
      • 실습 데이터와 차트로 보고자 하는 바
        • 고객별 체류시간, 구매량, 구매금액을 차트로 확인
        • 체류시간이 x축, 구매량이 y축, 구매금액이 버블 사이즈가 되며 하나의 버블은 곧 고객 1명을 의미함
      • (맥 기준) 
        빈 거품형 차트 만들기
        → 데이터 선택: x,y,거품크기 각각에 해당하는 열 데이터 범위 지정
        → 축 범위 변경 : x,y축을 각각 클릭하여 서식에서 최소값이 음수인데 0으로 변경, x축은 최대값이 너무 커서 그래프가 쓸데없이 비니까 최대값을 표 확인하여 더 작게 조절
        → 거품 색상 변경 : 서식 > 채우기 > "요소마다 다른 색 사용" 체크
        → 시각적 효과 더하기 : 삽입 > 도형(선 > 자유형(자유곡선) 클릭 > 누끼따기 > 윤곽선 없애고 채우기 색 변경 & 투명도 주기, 효과: 부드러운 가장자리에서 크기 변경)

  • 실습3-폭포형
    • 실습 데이터와 차트로 보고자 하는 바
      • 연도별 판매량의 증감을 폭포형 차트로 확인
      • (맥 기준)
        영역 잡고 폭포형 차트 클릭
          증감의 마지막에 '합계'열을 추가해 놨는데 이것도 증감으로 잡혀있기 때문에 해당 bar만 클릭하여 우클릭 > "합계로 설정" 클릭하면 합계에 해당하는 bar로 변경됨

⌘ 조건부 서식

  • 사용 방식은 배우면 누구나 할 수 있지만 그걸 활용해서 원하는 효과를 제대로 전달하는 역량을 갖추는게 중요
    • 그러려면 차트를 시각화해서 봤을 때 메세지 전달이 그닥 안된다는 문제점을 인지했을 때 1) 내가 전달하려는 내용은 무엇인가 2) 그 내용을 더 효율적으로 전달하려면 무엇을 수정하면 될까를 생각할 수 있으면 됨
    • 아래 표는 동일하게 조건부 서식을 지정했지만 왼쪽은 색상구분이 잘 안되고 오른쪽은 더 잘 됨
      • 왼쪽은 최대/최소로 설정한 케이스인데 지역간 결과값의 스케일 차이가 크다보니 오히려 몰려있는 영역의 값간 차이가 눈에 안들어옴
      • 오른쪽은 기준을 최대/최소가 아닌 숫자&0~1000으로 변경한 것

  • 아이콘집합 활용도 많이 씀
    • 회사의 성과지표인 KPI(핵심성과지표)를 정상/양호/불량 등으로 나눌 때도 사용 가능
    • 하지만 보고용에서는 숫자 빼고 보는게 더 빨리 전달됨(모든 정보를 담으려는 시도는 좋지 않음)

 

정리

엑셀도 그렇지만 시각화도 한 번도 배워본 적이 없어서 알고 싶었던 부분 중 하나인데 친절하게 핵심들을 체계적으로 모아 떠먹여주셔서 좋았다. 하지만 시각화든 엑셀의 기능이든 스킬 자체에 매몰되어서는 안되고 항상 무엇을 분석하고 싶은지, 인사이트를 도출하는 것을 염두에 두고 작업을 해야 한다는 강사님 얘기에 너무나 동의되었다.

부트캠프 수업이 모두 끝나면 데이터 리터러시를 갖추고 싶다는 얘길 했었는데 여기서 배운 데이터 리터러시는 결국 데이터를 읽는 능력(기술, 배우면 누구나 할 수 있음) 뿐 아니라 쓰는 능력(해석하여 효과적으로 전달)까지를 의미한다는 걸 새롭게 인지했다.

 

온라인강의로 일부 실시간강의에서 뛰어넘은 부분들을 빠르게 학습하는게 남아있고, 맨 뒷부분의 작은 프로젝트가 특히 기대된다.

 

데이터분석은 거시적인 이야기보다는 마이크로한 걸 분석해내는 그 한끗 차가 중요하단 얘길 하셨는데 확실히 이해했는지는 모르겠으나 거대담론을 좋아하지 않는 의미로 고레에다 히로카즈 감독을 좋아하는 나로서는 듣기 매우 반가운 이야기였다. 하지만 동시에 빅데이터를 힘들게 들여다보면서 결국 마이크로한 걸 분석한 결과를 본다는 것은 어딘가 이상하단 생각도 들었다.

728x90
반응형