BookmarkSubscribeRSS Feed

[ SAS 활용 노하우 ] 데이터 분석 1-1

Started ‎04-27-2021 by
Modified ‎04-27-2021 by
Views 4,225

 

타이타닉사건은 1912년 4월 10일 영국에서 출항해 프랑스에 기항한 후 미국 뉴욕을 향해 출항했고, 1912년 4월 14일 밤 11시 40분에 침몰한 사건입니다.

 

어떤 사람들이 생존할 가능성이 더 높았는지에 대해 모델을 구해보고자 합니다.

 

승객의 정보(나이, 성별, 객실 등급 등)를 사용하여 사망/생존을 예측하게 됩니다.

 

데이터는 모델을 학습시키기 위한 train.csv 데이터 1개와 모델로 실제 생존율을 맞춰보는 test.csv 데이터 1개로 나뉘어 있습니다. (데이터는 첨부파일에 올려놨습니다.)

 

 

1. 타이타닉 데이터 구조

 

Passenger ID : 각 승객의 고유 번호

Survived : 생존 여부 ( 0: 사망, 1: 생존)

Pclass : 티겟의 승선권 클래스 ( 1 = 1등석, 2 = 2등석 , 3 = 3등석 )

Name : 이름

Sex : 성별

Age : 나이

SibSp : 동반한 sibling(형제자매)와 Spouse(배우자)의 수

Parch : 동반한 Parent(부모) Child(자식)의 수

Ticket : 티켓의 고유넘부

Fare : 티켓의 요금

Cabin : 객실 번호

Embarked : 승선한 항(제주항, 부산항, 인천항과 같은 항)

 

이러한 데이터로 SAS의 Logistic 모델과 머신러닝으로 분석을 진행하고자 합니다.

 

 

2. 데이터 읽어오기

 

Proc Import를 사용하여 csv 파일을 불러옵니다.

 

%web_drop_table(WORK.IMPORT1);


FILENAME REFFILE '/folders/myfolders/sasuser.v94/train.csv';

PROC IMPORT DATAFILE=REFFILE
	DBMS=CSV
	OUT=WORK.IMPORT1;
RUN;

PROC CONTENTS DATA=WORK.IMPORT1; RUN;


%web_open_table(WORK.IMPORT1);;
RUN;

 

 

3. 데이터 기본 정보

 

- 1) Proc Content

 

WORK.IMPORT1 로 데이터를 불러옵니다.

Proc Content를 활용하여 데이터 셋의 갯수, 변수 갯수, 변수 속성 등 데이터의 속성에 대해 확인 할 수 있습니다.

 

/*데이터 기본 정보 - Proc Content */
Proc Contents data= WORK.IMPORT1;
run;

 

스크린샷_2021-04-28_오전_1.14.24.png

 

데이터는 891개, 열은 12개의 칼럼으로 구성되어 있습니다.

 

 

- 2) 빈도 확인 - Proc Freq

 

타겟 변수인 survived변수에서 0이면 사명 1이면 생존이다.

총 342명이 생존하고 약 38%인 것을 알 수 있습니다.

 

/* 빈도 확인 */
Proc Freq data= work.import1;
table Survived;
run;

 스크린샷_2021-04-28_오전_1.18.01.png

 

 

 

 

- 3) 2차 빈도표 확인 - Proc Freq

 

Proc Freq data= work.import1;
table Survived*sex;
run;

2차 빈도표 작성 하여 두 변수간 빈도나 비율을 확인합니다.

타겟변수인 Survived와 성별간 빈도와 비율을 확인합니다.

 

 스크린샷_2021-04-28_오전_1.21.16.png

 

 결과를 보면 남성보다 여성에 대한 생존률이 2배정도 높다라는 것을 알 수 있습니다.

 

 

4. 데이터 시각화

 

-1 ) Data 시각화 - 단일 히스토스램 

 

proc sgplot data = work.import1;
vbar Survived / datalabel missing;
label Survived = "Survived";
run;

 

 

 vbar는 가로축의 변수를 설정하는 옵션이고 타겟의 빈도를 확인하기 위해 Survived를 입력합니다.

옆에 datalabel을 입력하면 빈도값이 그래프 위에 뜨게 됩니다. missing을 입력하게 되면 결측값에 대한 빈도도 확인할 수 있습니다. label 구문은 축의 제목을 설정하는 옵션입니다. 

 

 

스크린샷_2021-04-28_오전_1.43.31.png

 

 

 

-2 ) 데이터 시각화 - 누적 히스토그램

 

누적그래프를 그리려고 하면 단일 히스토그램 문에 pctlevel = group과 group문을 추가하면됩니다.

 

 

title "Survived VS Gender";
proc sgplot data = work.import1 pctlevel=group;
vbar sex / group= Survived stat=percent missing;
label Survived = "Gender of Survived";
run;

 

 

 스크린샷_2021-04-28_오전_1.49.16.png

 

 

0 (파란색)이 사망이고 1(빨간색)이 생존일 때, 여성의 생존률이 높은 것을 확인 할 수 있습니다.

 

- 3) 데이터 시각화 - Box plot

 

SAS에서는  박스플롯을 그리기 전에 데이터를 정렬해야 합니다.

데이터 정렬은 Proc sort를 활용해서 정렬할 수 있고, Proc Box Plot을 활용하면 Boxplot 그래프를 그릴 수 있습니다.

 

proc sort data = work.import1 out=sorted;

by survived descending Age;

run;



title 'Boxplot for Age VS Survived';

proc boxplot data=sorted;

plot Age*Survived;

run;

 

스크린샷_2021-04-28_오전_1.55.15.png

Version history
Last update:
‎04-27-2021 12:59 PM
Updated by:
Contributors

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

Article Labels
Article Tags