BookmarkSubscribeRSS Feed

[SAS University Edition] 제 2강 데이터 처리가 쉬워지는 SAS University Edition "SQL 잘해야만 분석하나요?"

Started ‎10-09-2020 by
Modified ‎03-03-2022 by
Views 1,407

제 2강. 데이터 처리가 쉬워지는 SAS University Edition "SQL 잘해야만 분석하나요?" 

 

 

[SAS University Edition에서 불러올  수 있는 파일의 종류]

 다양한 데이터를 불러올 수 있습니다.

1.png

[이용할 데이터]

E-commerce 상거래 데이터

고객정보: 고객번호, 성별, 나이, 지역번호

거래정보: 거래 단위로 발생하는 데이터로 거래번호, 고객번호 상품번호, 상품가격

상품정보: 상품번호, 상품대분류, 상품가격 

 

2.png
 
3.png

E-commerce 상거래 데이터를 이용하여 구매금액, 빈도가 상위 5%인 VIP 고객을 찾아보겠습니다. 

4.png

내폴더에 새로운 폴더(002_원천데이터와 003_프로세스플로우)를 생성하겠습니다.

방법: 내 폴더 -> 새로 만들기 -> 폴더 

5.png

시각적 프로그래머는 프로세스플로우 단위로 진행됩니다.

원천데이터에는 강의에서 진행하는 데이터를 업로드하겠습니다.(데이터는 첨부파일을 참고하세요)

업로드방법: [서버 파일 및 폴더 -> 4번째 icon (빨간 박스로 표시) 

 

 

<프로세스 플로우>

6.png

[프로세스 플로우 -> 작업 및 유틸리티: 유틸리티: 데이터 가져오기]

[데이터 가져오기 더블클릭]

7.png

데이터 가져오기 더블클릭시 프로세스 플로우데 데이터를 로드할 수 있습니다.

원천데이터파일에 로드한 데이터를 드래그앤드롭이나 파일선택으로 데이터를 가져올 수 있습니다.

 

8.png

제공하는 데이터의 확장자는 csv로 저장되어 SAS data-set 형태로 바꿔야 됩니다.

[업로드한 데이터 더블클릭 -> 출력 데이터: 변경 -> 라이브러리:MYTASK , 데이터셋: CUSTOMER_DEMO]로 변경합니다.

9.png

[옵션: CSV(쉼표로 구분된 파일) -> Run icon 클릭]

*Run Icon을 꼭 클릭하셔야 로드가 됩니다.

2강에서는 3개의 데이터가 필요하기 때문에 CUSTOMER_DEMO뿐 아니라, PRODUCT_DEMO, TRANSACTION 까지 같은 방법으로 데이터를 로드해주시면 됩니다.

 

10.png

Run icon(사람이 달리는 모형) 하시면, 실행결과가 출력됩니다.

*데이터셋 이름에 MYTASK.CUSTOMER_DEMO를 확인하실 수 있습니다. 

11.png

[출력데이터]에서는 raw data를 확인하실 수 있습니다.

*테이블에 MYTASK.CUSTOMER_DEMO를 확인하실 수 있습니다.

12.png

[노드(=데이터 가져오기 박스) -> 이름: ]에서 이름을 바꿀 수 있습니다.

본 강의에서는 customer_demo로 변경하였습니다. (다른 2개의 데이터도 이름을 변경했습니다.) 

13.png

3개의 노드가 생성됩니다.

모든 데이터가 로드되면 노드옆에 초록색 체크 표시가 표시됩니다.

 

*

14.png

PRODUCT_DEMO의 출력데이터를 보면, 데이터로드가 잘 되지 않은 경우가 발견됬습니다.

(데이터 로드시 출력데이터를 통해서 결과를 확인)

15.png

PRODUCT_DEMO데이터가 총 1200개이므로 행 추측을 1000으로 해줬습니다.

16.png

다시 프로세스 플로우로 돌아가서, CUSTOMER_DEMO에서 

[작업 -> 데이터 -> 테이블 특성리스트를 클릭후 플로우 창에 드래그 앤 드롭]

 

CUSTOMER_DEMO data에 데이터 특성리스트 작업을 하기 위해서 컨트롤 포트(노드 옆 양쪽 조그만한 네모박스)를 연결해주었습니다.

 

17.png

[데이터 특성 리스트 더블 클릭 -> MYTASK: CUSTOMER_DEMO]

18.png

아래의 3개의 노드에 위와 같은 방식으로 각각의 데이터를 로드시켰습니다.

 

19.png

본격적으로 데이터 분석을 하기 위해 [유틸리티 -> 질의 드래그앤 드롭]

20.png

[질의 더블클릭 -> '+:테이블' ->  CUSTINER_DEMO 와 TRANSACTION 데이터 불러오기 -> '+:조인' -> 왼쪽 테이블에는 CUSTOMER_DEMO, 오른쪽 테이블에는 TRANSACTION, 조인유형은 왼쪽 조인] 

21.png

[조인 조건:id에서 transaction_id에서 customer_id]로 변경

22.png

[칼럼-> CUSTOMER_DEMO: id, sex, age변수와 TRANSACTION: transactio_id,buy_amt변수를 선택 화면에 드래그 앤 드롭]

구하고자 하는 것은 customer_id를 기준으로 얼마나 많은 구매를 했는지, buy_amt를 사용해서 총 구매금액을 구할 수 있습니다.

 

23.png

 

[그룹(무엇을 기준으로 summary할 것인가?를 의미)-> TRANSACTION변수들을 삭제합니다.

[선택-> TRANSACTION변수 칼럼이름을 transaction_id -> buy_cnt, buy_amt -> buy_amt로 이름을 변경]

[buy_cnt를 Count Distinct, but_amt를 합계 -> RUN]

 

이렇게 취합된 정보를 가지고 VIP고객을 찾아보겠습니다. 

24.png

[작업 -> 데이터 -> 데이터 순위화 -> 플로우에 드래그 앤 드롭]

24-2.png

[옵션 -> 순위화 방법: 분위수, 비율 순위, 백분율, 순위의 정규 스코어, 순위의 savage 스코어]를   선택할 수 있습니다.

 

<데이터>

[순위화할 칼럼 : buy_date와 buy_amt 지정하여 어떤 변수를 ]

[출력 데이터셋 > 데이터셋 이름:MYTASK의 CUSTOMER_rank로 변경]

<칼럼>

[순위화 방법: 비율순위]

[값이 같을 때 사용: 높은 순위]

[순위 순서: 큰 값에서 작은 값으로 ]

 

-> RUN 

25.png

이제까지한 과정은 데이터 전처리입니다.

이제는 새로운 노드 '데이터 필터'를 사용하여 상위 5% 고객을 찾아보겠습니다.

 

[데이터 필터 더블클릭 -> 데이터]

데이터에는 위 노드에서 만든 MYTASK의 CUSTOMER_RANK로 지정합니다.

 

[필터1]

변수 1: rank_buy_cnt

비교: 보다 작음

값 유형: 값 입력

값: 0.05

논리: AND

 

변수2: rank_buy_cnt

비교: 보다 작음

값 유형: 값 입력

값: 0.05

논리: AND

 

[출력 데이터셋]

데이터셋 이름:CUSTOMER_VIP로 변경한다.

 

-> RUN

26.png

실행 후 결과 창 입니다. 

전체 행은 75개로 5000개의 데이터 중 75명이 상위 5% 고객임임을 알 수 있습니다.

27.png

이러한 데이터 플로우는 재사용이 가능합니다.

 

[디스크모양 -> 003_프로세스플로우 : 001_데이터처리(VIP고객찾기)]로 저장했습니다. 

Comments

혹시 첨부파일은 어디서 다운받나요? 답변주시면 감사하겠습니다!

데이터 해당 게시글에 첨부하였습니다. 

Version history
Last update:
‎03-03-2022 12:47 AM
Updated by:
Contributors

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

Article Tags