BookmarkSubscribeRSS Feed

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

Started ‎04-27-2021 by
Modified ‎04-27-2021 by
Views 1,705

 

타이타닉사건은 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

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags