Presentation is loading. Please wait.

Presentation is loading. Please wait.

롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표

Similar presentations


Presentation on theme: "롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표"— Presentation transcript:

1 롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
전용준 리비젼컨설팅 대표

2 교육과정 구성 1/2 1 2 분석CRM과 SAS 기초 SQL과 고객 데이터 분석 주제 세부 교육 내용
분석CRM 전반적인 구조 이해 [2H] - DB, DW, Data Mart, OLAP의 개념과 기본기능, 연결관계에 대한 이해 SAS 분석도구 소개 및 데이터 처리 기초 [3H] - SAS 소개 - 데이터 로딩 간단한 데이터 처리 (조회, Sort, 집계, 선택) 데이터 타입 변환 5H (이론 + 실습) 1 SQL과 고객 데이터 분석 SQL 개념 이해 및 활용 [3H] - SQL 기본 개념 이해 - Proc SQL 사용 연습 - Join을 활용한 집계 연습 - 간단한 프로파일 생성 그래프를 이용한 탐색적 분석 보고서 작성 유통업에서의 고객데이터 분석 유형이해 및 연습 [2H] – 유통 고객 데이터 분석 기본 패턴 이해 - 상품, 점포, 고객등급, 채널별 등 기본 패턴의 분석에 대한 SQL 활용 실습 5H (이론 + 실습) 2

3 DAY 1.1 1B :: SAS 분석도구 소개 및 데이터 처리 기초

4 SAS : Statistical Analysis System
대규모 데이터 통계 처리에 강점 데이터 집계, 가공, 연결, 예측, 시각화, 통계치 산출 등 다양한 기능제공 SAS 고유의 Script 언어를 사용 RDBMS와는 다른 고유한 데이터 저장 방식 사용 실제 데이터 분석에서 데이터 처리에는 ANSI SQL의 변형인 Proc SQL 주로 사용

5 SAS 활용한 데이터 처리 기초 데이터 로딩 간단한 데이터 처리 (조회, Sort, 집계, 선택) 데이터 타입 변환

6 SAS 활용의 첫단계 라이브러리 생성/지정 로컬의 텍스트 파일 데이터 불러오기 서버의 데이터 가져오기 데이터 내보내기
변수 정의 간단한 계산

7 데이터 테이블 생성시 Tip 변수명은 32자 이내 숫자로 시작 불가! 특수기호 사용 불가! (except “_”)
자료의 입력은 되도록 숫자변수로 주민등록번호나 전화번호 등은 문자변수로 입력 날짜변수는 mm dd yy로 나누어서 입력 한 셀에 입력했을 경우에는 SAS에서 구분 가능 문자변수는 되도록 자릿수를 맞춰서 입력

8 로컬의 텍스트 (ASCII) 파일 데이터 불러오기
메뉴에서 [ 파일 > 데이터 가져오기 > ] 실행시 위저드가 실행됨 파일형식(주로 CSV 또는 TDF )을 지정해주고, 파일 위치를 지정해서 선택 <141205_SAS교육샘플 데이터> 라는 이름의 텍스트 파일

9 스크립트로 데이터 불러오기 라이브러리명과 파일이름을 지정하고, 데이터 위치와 데이터파일 형식을 지정
주로 CSV 형식의 텍스트 파일을 불러오는 방식을 사용 (엑셀 버전이나 연동관련된 이슈가 없음) GETNAMES 명령을 지정해 데이터 파일로부터 필드명을 바로 가져다 사용 PROC IMPORT OUT= WORK.aaa02 DATAFILE= "C:\Users\revision\Desktop\rvc_kb\02_EnGageMent\01_13_롯데마트분석교육\a01_test.csv" REPLACE; GETNAMES=YES; RUN;

10 CARDS 명령문을 사용해 직접 입력 간단한 데이터의 경우 구조를 지정하고, CARDS 문을 사용하여 직접 입력 가능
DATA WORK.AAA03; INPUT SERIALNO AGE SEX $ EDUC MARRI; LABEL SEX='성별'; CARDS; F 2 2 7 55 F 2 2 M 2 2 F 2 2 F 2 5 F 2 2 M 2 2 F 2 5 F 2 2 79 80 M 2 2 ; RUN;

11 스크립트로 데이터 불러오기 탐색기상의 아이콘을 클릭하여 테이블보기로 보거나,
생성된 데이터(테이블)의 내용을 확인 – 화면에 프린트/출력 PROC PRINT DATA=AAA03; RUN;

12 로컬PC로 내보내기 - CSV 파일 메뉴에서 [ 파일 > 데이터 내보내기 > ] 실행시 위저드가 실행됨

13 데이터 특성에 대한 기초적 확인 PROC FREQ 를 사용하여 필드별 값별 빈도수를 확인
PROC FREQ DATA=AAA03; TABLES age sex; RUN;

14 데이터 특성에 대한 기초적 확인 PROC FREQ 를 사용하여 필드별 값별 빈도수를 확인
PROC FREQ DATA=AAA03; TABLES age sex; RUN;

15 데이터 특성에 대한 기초적 확인 PROC FREQ 를 사용하여 실습용 실제 POS 데이터 필드별 빈도수를 확인
PROC FREQ DATA=AAA; TABLES str_cd pos_sys_dy ; RUN; Str_cd (점포코드), Pos_Sys_dy (포스기준 일자) 두 필드에 대한 값 분포를 확인 ~ (총5일간)로부터 추출된 데이터임을 확인 필드의 특성(값 분포)을 확인

16 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> library : 영문 8자 이내 dataset : 영문 32자 이내 대소문자 구분 없음, 특수문자 사용 불가(예외:_) 맨 첫 글자에 숫자 사용 불가 Library name 지정 LIBNAME 라이브러리 이름 '위치'; LIBNAME LM_POS01 'C:\SASTEST_201412';

17 샘플 데이터 셋의 구조 1000건의 거래 내역을 포함한 POS 이력 STR_CD 점포코드 SALE_DY 판매일자
POS_NO 포스번호 TRD_NO 거래번호 CUST_NO 고객번호 CANCEL_FG 취소여부 CUST_PNT 고객포인트 SALE_SALE_AMT 판매금액 SALE_PROFIT_AMT 이익금액 SALE_DC_AMT 할인금액 SALE_EMP_NO 판매직원번호

18 SQL SQL 데이터 처리의 표준언어 SQL : Standard Query Language
데이터의 조회, 정의, 제어의 세가지 기능을 포함 데이터 정의 언어 (DDL : Data Definition Language) 데이터 조작 언어 (DML : Data Manipulation Language) 데이터 제어 언어 (DCL : Data Control Language) PROC SQL; SELECT * FROM LM_POS01.AAA02 WHERE STR_CD=402 AND POS_NO=6 ; QUIT; CREATE TABLE LM_POS01.AAA021 AS SELECT STR_CD, SAL_DY FROM LM_POS01.AAA02 WHERE STR_CD=402 AND POS_NO<10 ; SQL 단순히 기존의 테이블로 부터 특정 조건에 맞는 행을 추출 일부 필드와 조건에 맞는 행만으로 새로운 테이블 생성

19 테이블의 생성 CREATE TABLE 문은 라이브러리와 테이블명을 지정해주면 해당 테이블을 생성하는 명령 PROC SQL;
CREATE TABLE LM_POS01.STRPOS AS SELECT STR_CD, POS_NO FROM LM_POS01.AAA02; QUIT;

20 SAS 언어와 SQL 혼합 지원 표준 SQL(ANSI SQL)에 SAS 고유의 언어를 혼용 가능
SAS keyword expressions (예: DROP, KEEP, RENAME, WHERE)를 SQL에서 사용 가능함 PROC SQL; CREATE TABLE LM_POS01.AAA022 AS SELECT * FROM AAA02(DROP=STR_CD ); QUIT; AAA02 테이블에서 STR_CD 필드는 제외하고 나머지필드들만 가져옴

21 Duplicates 중복 제거 DISTINCT 문은 같은 필드에 반복해서 나오는 항목을 제거하고 종류만 골라내는 기능
PROC SQL; CREATE TABLE LM_POS01.STR_CD_TB AS SELECT DISTINCT STR_CD FROM LM_POS01.AAA02; QUIT; 점포코드만 리스트를 추출하여 테이블로 생성

22 Sorting 정렬 ORDER BY 문을 사용하여 데이터 정렬 Default는 오름차순, DESC를 주면 역순 (내림차순)
PROC SQL; CREATE TABLE LM_POS01.STR_CD_TB AS SELECT DISTINCT STR_CD, POS_NO FROM LM_POS01.AAA02 ORDER BY STR_CD, POS_NO DESC; QUIT; STR_CD는 오름차순, POS_NO는 내림차 순으로 정렬한 테이블 생성

23 선택 및 연산 Sub-setting and Calculating
+, - , *, / 등의 사칙 연산을 사용 가능 () 를 사용해서 반복적인 표현 사용 가능 WHERE 절에 IN() 함수를 사용하여 복수의 값 선택 가능 PROC SQL; CREATE TABLE LM_POS01.STR_CD_TB01 AS SELECT STR_CD, SALE_DY, (SALE_SALE_AMT-100)/1000 AS TEMP_SALEAMT FROM LM_POS01.AAA02 WHERE STR_CD IN ( ) ORDER BY STR_CD, SALE_DY; QUIT; 통상적인 사칙연산을 SELECT 절에 적용하여 새로운 필드 생성 가능 WHERE 절을 이용하여 일부 값에 맞는 레코드들만 선별 가능

24 선택 및 연산 Sub-setting and Calculating
라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식 <library.dataset> library : 영문 8자 이내 PROC SQL; CREATE TABLE LM_POS01.STR_CD_TB01 AS SELECT STR_CD, DATE FORMAT=DATE7., SALE_DY, (SALE_SALE_AMT-100)/1000 AS TEMP_SALEAMT FROM LM_POS01.AAA02 WHERE STR_CD IN ( ) ORDER BY STR_CD, SALE_DY; QUIT; DATE FORMAT=DATE7. would be replaced with PUT(DATE,DATE7.) AS CDATE LENGTH=7

25 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> library : 영문 8자 이내 PROC SQL; CREATE TABLE MEANBP AS SELECT COUNT(*) AS N, ROUND(MEAN(BPS), 0.01) FORMAT=6.2 AS BPSMEAN, ROUND(MEAN(BPD),0.01) FORMAT=6.2 AS BPDMEAN FROM VITALS; QUIT;

26 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> library : 영문 8자 이내 PROC SQL; CREATE TABLE HIGHBPP1 AS SELECT PATIENT, COUNT(PATIENT) AS N, DATE FORMAT=DATE7., BPD, MAX(BPD) AS BPDHIGH, ROUND(BPD/(CALCULATED BPDHIGH)*100, 0.01) FORMAT=6.2 AS BPDPCT FROM VITALS GROUP BY PATIENT; QUIT;

27 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> library : 영문 8자 이내 PROC SQL; CREATE TABLE HIGHBPP2 AS SELECT PATIENT, COUNT(PATIENT) AS N, DATE FORMAT=DATE7., MAX(BPD) AS BPDHIGH FROM VITALS WHERE PATIENT IN ( ) GROUP BY PATIENT HAVING BPD = CALCULATED BPDHIGH ORDER BY CALCULATED BPDHIGH; QUIT;

28 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> PROC SQL; CREATE TABLE TESTMED AS SELECT PATIENT, CASE ((PATIENT/2 = INT(PATIENT/2)) + (PATIENT = .)) WHEN 1 THEN 'Med A' WHEN 0 THEN 'Med B' ELSE 'Error' END AS DOSEGRP LENGTH=5 FROM VITALS ORDER BY PATIENT; QUIT;

29 Joining Tables JOIN 은 두개 이상의 테이블이 가진 데이터를 연결시켜 하나의 테이블을 생성하는 명령
INNER, OUTER(LEFT), FULL 세가지 존재 PROC SQL; CREATE TABLE LM_POS01.STR_CD_TB03 AS SELECT A.*, B.* FROM LM_POS01.STR_CD_TB01 A INNER JOIN LM_POS01.STR_CD_TB02 B ON (A.STR_CD=B.STR_CD) WHERE A.STR_CD IN ( ); QUIT; INNER JOIN

30 Joining Tables JOIN 은 두개 이상의 테이블이 가진 데이터를 연결시켜 하나의 테이블을 생성하는 명령
INNER, OUTER(LEFT), FULL 세가지 존재 PROC SQL; CREATE TABLE LM_POS01.STR_CD_TB03 AS SELECT A.*, B.* FROM LM_POS01.STR_CD_TB01 A INNER JOIN LM_POS01.STR_CD_TB02 B ON (A.STR_CD=B.STR_CD) WHERE A.STR_CD IN ( ); QUIT; INNER JOIN

31 LEFT JOIN LEFT JOIN은 한 쪽을 기준으로 다른 테이블의 레코드 중 일치하는 부분만 결합 PROC SQL;
CREATE TABLE LM_POS01.STR_CD_TB03 AS SELECT A.*, B.* FROM LM_POS01.STR_CD_TB01 A LEFT JOIN LM_POS01.STR_CD_TB02 B ON (A.STR_CD=B.STR_CD) WHERE A.STR_CD IN ( ); QUIT; LEFT JOIN

32 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> PROC SQL; CREATE TABLE LEFT AS SELECT A.PATIENT, A.DATE FORMAT=DATE7. AS DATE, A.PULSE, B.MED, B.DOSES, B.AMT FORMAT=4.1 FROM VITALS A LEFT JOIN DOSING B ON (A.PATIENT = B.PATIENT) AND (A.DATE = B.DATE) ORDER BY PATIENT, DATE; QUIT;

33 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> library : 영문 8자 이내 PROC SQL; CREATE TABLE RIGHT AS SELECT A.PATIENT, A.DATE FORMAT=DATE7. AS DATE, A.PULSE, B.MED, B.DOSES, B.AMT FORMAT=4.1 FROM VITALS A RIGHT JOIN DOSING B ON (A.PATIENT = B.PATIENT) AND (A.DATE = B.DATE) ORDER BY PATIENT, DATE; QUIT;

34 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
<library.dataset> library : 영문 8자 이내 PROC SQL; CREATE TABLE FULL AS SELECT A.PATIENT, A.DATE FORMAT=DATE7. AS DATE, A.PULSE, B.MED, B.DOSES, B.AMT FORMAT=4.1 FROM VITALS A FULL JOIN DOSING B ON (A.PATIENT = B.PATIENT) AND (A.DATE = B.DATE) ORDER BY PATIENT, DATE; QUIT;

35 PROC SQL and SAS Macro language
라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식 <library.dataset> library : 영문 8자 이내 PROC SQL NOPRINT; SELECT DISTINCT PATIENT INTO :PAT1- :PAT999 FROM VITALS ORDER BY PATIENT; QUIT; SELECT DISTINCT PATIENT INTO :PATLIST SEPARATED BY ‘,’

36 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
PROC SQL NOPRINT; INSERT INTO VITALS VALUES(102 ‘20AUG2001’d 90); SET PATIENT=102, DATE=’27AUG2001’d, PULSE=77, TEMP=98.8, BPS=129, BPD=88; QUIT; DELETE FROM VITALS WHERE PATIENT = 101;

37 라이브러리의 지정 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소 Dataset 이름 사용 형식
PROC SQL NOPRINT; UPDATE VITALS SET PULSE=77, BPD=74 WHERE PATIENT=103 AND DATE=’31JUL2001’d; QUIT;

38 Data Table Management 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소
PROC SQL NOPRINT; ALTER TABLE VITALS MODIFY DATE FORMAT=MMDDYY8. DROP TEMP; QUIT; DROP TABLE BP;

39 Data Table Management 라이브러리란?  SAS dataset이 저장되는 (논리적인) 장소
PROC SQL; CREATE TABLE VARINFO AS SELECT * FROM DICTIONARY.COLUMNS WHERE UPCASE(LIBNAME) = ‘WORK’ AND UPCASE(MEMNAME) = ‘VITALS’; QUIT;

40 PROC SQL advantages over DATA step
테이블간의 JOIN 연결이 간편함 (간단한 스크립트로 처리) SQL안에 SQL을 넣는 Nest 방식 활용 가능 외부 데이터베이스와의 연결이 용이 DATA STEP은 한 테이블에 행이 많은 경우에 적합

41 DAY 2 2B :: 유통업에서의 고객데이터 분석 유형

42 유통업 고객 데이터 분석 기본 패턴 1차 :: 고객별 구매액, 구매건수 집계
2차 :: 고객별 구매패턴 전반을 영수증 전체 활용해서 분석 3차 :: 고객등급, 채널, 점포, 상품, 행사 등 각각을 중심을 기준으로 분석 고객등급 고객 상품 가격 채널 구매 구매품목 점포 행사

43 유통업 고객 데이터 분석의 예 1차 :: 고객별 구매액, 구매건수 집계 월별 고객별 구매액 연간 전체 고객 평균 구매일수
2차 :: 고객별 구매패턴 전반을 영수증 전체 활용해서 분석 최근 1년간 고객별 점포별 구매일수 최근 3개월간 행사상품 구매 구매건수 및 행사상품 구매금액 비중 최근 3개월 십분위별(Decile) 상품군별 객단가와 구매일수 3차 :: 고객등급, 채널, 점포, 상품, 행사 등 각각을 중심을 기준으로 분석 고객등급별 구매일수 평균 점포별 우수고객 라면류 구매금액 비중 캠페인 반응 고객 행사기간 중 인당구매금액 평균 DM수신거부 고객 최종구매후 경과기간 평균

44 상품, 점포, 고객등급, 채널별 등 기본 분석 패턴 상품별 분석 대분류 상품군별 구매금액 합계 중분류 상품군별 구매고객수
점포별 분석 최근 3개월 월별 수도권 점포 매출비중 점포별 고객 구매주기 고객등급 분석 전년대비 우수고객 등급 이탈 비율 고객등급별 주구매 상품군 채널 분석 복수채널 이용고객 비율 온라인 회원 중 오프라인 점포 이용 고객 비율

45 Thank You! … contact: 전 용 준 대표/컨설턴트 | 리비젼컨설팅
전 용 준 대표/컨설턴트 | 리비젼컨설팅 Keyword: 예측모델링 | 데이터 마이닝 | 빅 데이터


Download ppt "롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표"

Similar presentations


Ads by Google