본문 바로가기

Data_Analysis_TIL

"데이터분석가_넌 누구냐"시리즈_Chapter2

기업에 남는 우리의 데이터! 

우리가 아침 출근길에 커피를 사 마시는 상상을 한번 같이 해보자. 

 

그리고 우리가 커피를 살때 기업에 어떤 데이터를 남기는지 확인해보자

스타벅스에서 아침에 커피를 카드로 결제하면 아래와 같은 데이터가 남는다. 

 

과거 기업에 남는 데이터

시간 장소 커피 종류 가격 카드사
AM 07:45 강남점 아이스 아메리카노 4100원 국민카드

요즘은 카드 결제또한 스마트폰으로 대체하는 시기다. 

스마트 폰은 우리의 데이터를 무수히 남긴다. 

 

현재 기업에 남는 데이터

AM 7:00 페이스북으로 광고시청  AM 7:10 스타벅스 앱 사용 AM 7:40 매장 입장  AM 7:45 결제  AM 7:45 ~ 50 머그컵 구경  AM 7:50 매장 퇴장
페이스북 앱 로그 데이터
앱 로그 데이터란? 사람이 앱에서 한 모든 행동을 저장해주는 데이터. 
스타벅스 앱 로그 데이터. 스타벅스 앱을 켜서 우리가 보는 메뉴들이 스타벅스의 앱 로그 데이터로 남는다 무선 신호 데이터  결제 데이터 (위에서 언급한 데이블이라고 생각하면 쉽다.) 무선 신호 데이터  무선 신호 데이터

이렇게 남은 데이터로 기업은 어떻게 고객에게 마케팅을 할까? 

한 여성이 규칙적으로 같은 시간에 위와 같은 데이터를 남긴다고 가정 해보자. 

유추 할 수 있는 부분은 위 여성은 머그컵 MD에 관심이 있다고 가정 할 수 있다. 

그럼 아침에만 사용할 수 있는 머그컵 할인 FC를 우리가 앱으로 날릴 수 있다. 

 

데이터가 많으면 항상 기업은 좋은가? 

아직 실무를 경험하지는 못했지만 수많은 선배 데이터 분서가로부터 듣는 얘기는 실무 데이터는 정말 "더럽다"라고 한다. 

그만큼 데이터를 잘 축적하고 효과적으로 Query를 날려서 뽑아 분석하는 시스템을 구축한다는게 쉽지는 않아 보인다. 

실질적으로 우리 컴퓨터의 폴더 관리도 쉽지 않은데 대용량의 데이터를 잘 축적한다는게 언뜻 상상만해도 쉬운 일은 아닌것같다. 

또한 단순 텍스트 데이터 뿐만 아니라 요즘은 음성 데이터, 이미지 데이터와 같이 데이터의 형태가 너무 다양해져서 데이터의 활용도 또한 변화를 해야하기 때문에 예전보다 필요한 기술 스텍이 더 복잡해져 기업이 적응하는데 더 힘든 부분이 있는것같다. 

 

데이터 분석가의 정의: 현상을 조깨서 보는 사람! 

 

은행의 주요상품은 대출이기 때문에 대출 상품의 매출이 줄어선 안된다. 

한 은행의 대출금이 3달 연속 줄고있다고 가정하고 현상을 쪼개어 분석해보자. 

 

첫 번째 질문.

"신규대출과 기존대출에서 대출금 감소 추세가 다르지 않을까?"

사람들이 새롭게 빌려간 돈이 줄어든걸까 아니면 기존에 빌려간 돈이 줄어든걸까? 

가정을 해서 기존 대출이 줄었들었다는 단서을 찾았다면 

 

두 번째 질문. 

"사람들이 한꺼번에 대출금을 갚을 때가 되진 않았을텐데, 만기상환의 감소 추세를 나눠서 봐볼까?"

분석 결과 중도상환이 많아졌다고 가정하자. 

 

세 번째 질문.  

"중도상환이 늘었는데, 사람들이 대출한지 몇개월째에 돈을 갚는 걸까? 대출개월수에 따른 중도상환 추세가 다르지 않을까? "

위와 같은 질문을 하고 분석한 결과 1개월에서 2개월 안에 돈을 갚는 사람들이 많아졌다는 것을 확인했다고 가정하자. 

그 이유를 보면 은행에서 대출을 해주면 2달동안 무이자해주는 행사를 했더니 급전이 필요한 사람들이 돈을 빌려가고 이자 내야 할때 돈을 다 갚는 현상이 발생했다. 

그럼 우리는 현 회사 상황에서 매출규모가 중요한지 수익성이 중요한지를 판단해서 프로모션을 유지할지 말지를 결정하면 된다. 이러한 의사 결정 과정을 data driven decision이라고 불린다.  

이렇게 현상을 잘게 쪼개며 질문을 던지고(가설을 만들고) 액션플랜을 짜고 지표를 개선하는 사람이 데이터 분석가라고 볼 수 있다. 

 

쪼개서 보는것이 왜 중요한가? 

심슨의 역설: 전체적인 추세와 그룹으로 나눠서 봤을 때의 추세가 달라지는 경우

당신은 아래 그래프를 보면 B병원을 가고 싶을 것이다. 

A병원 B병원
환자 완치 완치율 환자 완치 완치율
350% 273% 78% 350% 289% 83%

하지만 아래와 같이 쪼개서 현상을 분석한다면 생각이 바뀔거라고 믿는다. 

  A병원 B병원
환자 완치 완치율 환자 완치 완치율
갑상선암 87 81 93% 270 234 87%
폐암 263 192 73% 80 55 69%

FACT1. 갑상선암과 폐암을 쪼개서 보면 두 병원 모두 갑상선암의 완치율이 폐암보다 높다. 
FACT2. A병원은 폐암 환자가 더 많고, B병원은 갑상선암 환자가 더 많다.

분석: 갑상선암이 더 고치기 쉬운데, A병원은 고치기 어려운 폐암 환자가 더 많고 B병원은 고치기 쉬운 갑상선암 환자가 더 많기 때문에 전체적으로 보면 B병원이 더 진료를 잘하는것처럼 오해할 수 있다. 

 

tip!

퍼널 분석이란? 

단계별로 전환율을 나누어 데이터를 보는 것. 

 

데이터 분석 프로세스

Step1: 질문 던지기, 가설 수립 --> Step2: 데이터 전처리 --> Step3: 데이터 탐색하기 --> Step4:Deep-Dive분석으로 결론 이끌어내기 --> Step5: 분석 결과 커뮤니케이션

 

tip!

"Step2: 데이터 전처리" 단계에서 꼭 체크해야 하는 부분

1. 결측치

1-1. Int값일 경우 결측치가 있을때는 주로 평균으로 채워줌. 

1-2. String값일 경우 최빈값을 넣어준다. 최빈값이란 데이터에 가장 많이 등장하는 값, 보편적인 값을 말한다. 

2. 중복 데이터

3. 부정확한 데이터 타입

3-1. 데이터 타입이란 프로그래밍 관점에서 데이터를 식별하는 분류로서 문자, 숫자, 날짜 등의 속성

4. 이상치

4-1. 어떠한 이유로 일반적인 데이터 범위에서 크게 벗어나 있는 값. 

tip!

"Step3: 데이터 탐색하기"

"데이터를 보니 이런 특징이 있구나! "

- 매장별 방문객

- 매장별 체류시간

- 요일별 방문객 

tip!

"Step4: 데이터 탐색하기"

가설에 맞게 상황을 더 쪼개서 보거나 모델링을 진행하는 단계 

"네트워크 분석으로 고객 동선을 분석해보자!"

(네트워크 분석: 여러 주체 간의 상호작용을 분석한느 방법론으로, 사람들의 동선 분석, 소셜네트워크 분석 등에 사용됨)

tip!

"Step5: 분석 결과 커뮤니케이션 하기"

이 단계에서 중요한 부분은 우리의 분석 결과를 누가 청취할것인가가 중요하다. 

- 대상이 임원이라면 짧고 임팩트 있는 보고서를 작성하고 

- 우리 층의 있는 실무진이라하면 대쉬보드를 작성해야 한다. 

 

데이터야 어디에있니?! 데이터베이스와 SQL

엑셀로 데이터를 저장 할 수 없는 이유. 

1. 데이터의 양 

     엑셀은 최대 1백만개 정도밖에 저장할 수 없음. 

2. 공유, 수정

     어떤 부서든지 데이터를 뽑아 쓸 수 있어야 하는데 엑셀은 공유 기능이 없음. 

그래서 엑셀 대신에 데이터베이스를 이용한다. 

데이터베이스는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합 ,관리하는 데이터의 집합이다. 

작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다. 

하지만 현업에서는 데이터 엔지니어들이 접근 권한을 가지고 누구에게나 권한을 주지는 않는다. 

 

DB를 만들고 운영하는 소프트웨어를 DBMS라고 부른다.

 

DB는 크게 두가지로 나뉜다. 

1. 관계형 데이터베이스 RDB. 

RDB는 엑셀시트를 모아둔 형태라고 생각하면 된다.  이러한 시트를 엑셀에서는 테이블이라고 불른다. 
SQL은 RDB와 소통할 수 있는 언어라고 보면 되고 이러한 언어의 소프트웨어 프로그램을 DBMS라고 부른다. DBMS에서 SQL은 테이블간 관계를 가지고 설계된 RDB와 소통하는 언어이기때문에 RDBMS라고 부른다. 

DB에 SQL을 통해 요청하는 메세지를 "Query"라고 부른다. 

(결제,유저,주문,상품과 같은 데이터는 RDB 사용)

2. 관계형 데이터베이스가 아닌 Non-RDB

Non-RDB는 왜 생겼을까? 

오늘날 같이 실시간 쌓이는 빅데이터를 관계형 데이터 설계에 알맞게 차곡 차곡 쌓을 수 가 없다.

페이스북같은 경우는 하루에 쌓이는 데이터가 4페타바이트라고 한다. 

그래서 RDB보다 좀 더 빠르고 유연하게 데이터를 저장할 수 있는 새로운 형태의 DB가 필요했고 MongoDB와 같은 Non-RDB가 탄생했다. 

(앱/웹로그, 무선신호, 채팅은 Non-RDB를 사용 )

tip!: SQL은 언어, NoSQL은 DB의 한 종류다. 

 

관계형 데이터베이스 특징

1. Primary Key

- 여러 개의 컬럼 중 하나의 컬럼만이 이 Primary Key를 가져갈 수 있다. 

- Primary Key는 주민등록증과 같다고 생각하면 편하다.

- 줄여서 PK 또는 Key Value라고 한다.

- Primary Key열에는 누락이 없다.

- Primary Key가 있으므로 테이블끼리 join을 할 수 있다. 

- Primary Key를 통해서 테이블을 연결할 수가 있고 이것을 한 눈에 볼 수 있게 도와주는 그래프를 ERD(Entity Relationship Diagram)이라고 부른다. 

2. 데이터 타입

- 프로그래밍 관점에서 데이터를 식별하는 분류로서 문자, 숫자, 날짜 등의 속성. 

- 데이터 타입에 따라서 우리가 쓸 수 있는 SQL 구문이 달라진다. 

- "스키마"를 확인하면 각 컬럼의 타입을 확인할 수있다.

- 데이터 타입은 어떤 DBMS를 쓰냐에 따라 다르지만 크게 보면 문자, 숫자, 날짜와 시간으로 나뉜다.

     문자: char, string (tip! 테이블을 보다 보면 varchar2와 같은 경우를 볼 수 있다. 여기서 var의 의미는 고정되지 않고 변할 수 있는 문자                라는 의미고 숫자 2가 붙은 것은 데이터에 저장할 수 있는 용량을 의미한다.

     숫자: numeric (int:정수, float:소수점 그러나 float는 불안전하다.)

     날짜와 시간: date, time, datetime, timestamp*. 날짜만 있으면 date, 시간만 있으면 time, 날짜와 시간이 같이 있으면 datetime.

 

데이터라는 원석을 다듬기 위한 연장들 

 

데이터 분석 프로세스 step 2,3는 SQL

첫 번째로 DB에서 데이터를 추출하기 위해선 SQL를 이용해야 한다.

기능: 데이터 추출/ 전처리/ 비즈니스 분석

 

데이터 분석 프로세스 step 4는 파이썬/R

두 번째로 추출, 전처리가된 데이터를 R 또는 파이썬으로 시각화또는 새로운 비즈니스 모델링을 구현한다. (모델링이란 수많은 데이터 사이의 관계들을 수학적으로 찾아내는 것.) 예를들면, 데이터와 데이터 사이를 수학적으로 계산하고 가까운 데이터끼리는 묶어주는 행위.

 

Business Intelligence Tools

tableau, looker, data studio, redash, tibc와 같이 데이터 분석이나 대쉬보드 제작을 쉽게 만들어주는 툴.

 

그 외 툴 

SASS:는 B.I툴처럼 클릭만으로 데이터 분석이 가능하지만 R/Python처럼 약간의 코딩이 들어간다. 통계분석에서 많이 이용했지만 가격이 비싸고 R/Python으로 충분히 대체할 수 있기 때문에 Oracle에서 오프소스 mysql, postgre sql로 넘어가는것과 같이 요즘은 많이 쓰지 않고 있다. 다만 금융권은 시스템을 교체하는게 어렵기 때문에 아직 쓰는 몇몇 기업은 있다고 들었다.

SPSS: IBM에서 만든 툴이고 통계분석을 하기 위해 만들어졌다. SASS보다 조금 더 쉬운 툴이고 리서치 회사나 논문쓸때 활용한다.

ArcGIS: 카카오택시와 같이 데이터를 지도 위에 깔아두고 봐야할때 GIS라고 불리는 지리 정보 데이터를 분석하는데 특화된 툴을 이용한다.

TensorFlow, Pytorch: 딥러닝을 하기 위한 데이터 분석 언어이다.

 

 

"데이터분석가_넌 누구냐"시리즈_Chapter1

usefulpolicynotetaking.tistory.com/37

 

"데이터분석가_넌 누구냐"시리즈_Chapter1

저의 글을 읽어보셨다면 전 캐나다에서 유학을 하다 대치동에서 고만 고만한 영어학원을 운영하는 원장이었습니다. 작년 코로나로 많은 힘든 시기로 인해 많은 career고민을 하던 끝에 데이터 분

usefulpolicynotetaking.tistory.com

기술블로그

kimsk920825.github.io/

 

0x530x650x610x6E

Committing with respect to Matrix, Calculus, Derivative, crawling and such related to data_analysis

kimsk920825.github.io