본문 바로가기

SAS9

[SAS] RETAIN 이번 포스팅에서는 RETAIN 기능을 활용하여 데이터를 다룬 사례를 정리합니다. [문제] 데이터에는 ID별로 SIGN 등급(A > B > C > D 순서대로 점수가 높음 > 낮음)이 데일리로 적재되어 있습니다. 이 데이터에서 기준일자를 기준으로 특정한 기간 내에 고객 별로 가장 나쁜 점수, D를 연속적으로 받은 최대 일수를 구하는 문제입니다. 아래 이미지와 같이 기준일자 15일 내 D가 연속적으로 등장하는 최대 일수는 2일이고, 기준일자 30일 내 최대 일수는 8일입니다. [해결 방법] 다음과 같이 문제를 해결했습니다. 1. 데이터를 날짜순으로 정렬 2. SIGNAL 컬럼을 한 행씩 내려오면서 D가 연속되는 횟수를 MAX_15D 열에 누적 3. MAX_15D, MAX_30D 열의 최댓값 계산 1. 날짜 .. 2021. 4. 19.
[SAS] 반복문 활용 업무 중 2억 행이 넘는 자료를 처리할 때가 있습니다. 파일이 상당히 크다 보니 가장 오래된 날짜, 가장 최근 날짜를 확인하는 간단한 작업도 한 번에 처리할 수 없다고 뜨기도 합니다. 그래서 파일을 행별로 분할하여 동일한 작업을 처리하도록 했습니다. 이 과정에서 제가 사용했던 방법을 소개하고자 합니다. 더 좋은 방법이 있다면 댓글로 추천 부탁드립니다. 아래 예제 코드는 데이터에서 날짜의 최대/최솟값 탐색을 목적으로 작성했습니다. 1. 데이터 셋 한번에 사용 1) 데이터 셋을 한번에 불러들여 2) 테이블의 인덱스로 최소/최대 날짜 확인하는 방법입니다. 스크롤을 내려가며 결과를 직접 확인해야 한다는 점에서 세련되지 못하다고 생각할 수 있지만, 처리되는 속도가 빠르고 코드가 가장 짧고 단순합니다. 단지 데이터.. 2021. 2. 27.
[SAS] PROC TABULATE 1. TABULATE 프로시저의 기본 형식 TABULATE 프로시저는 테이블을 작성할 때 사용하며, FREQ 프로시저보다 다양한 형식의 통계 테이블을 작성할 수 있습니다. [기본 형식] PROC TABULATE 형식; TABLE 행변수명, 열변수명; CLASS 변수명; VAR 변수명; [FORMAT 변수명 형식이름]; RUN; **TABULATE 프로시저 명령들 1) Class 2) Var 3) Table 4) Format Table 명령에서 작성하고자 하는 표의 행, 열 변수를 지정하며 기본적인 규칙은 아래와 같습니다. - Table 명령에서 적어도 1개 이상의 변수를 지정 - Table 명령에 사용되는 차원변수는 Class / Var에서 지정. (범주형인 경우 Class명령에서, 통계값이 산출되는 분.. 2021. 1. 28.
[SAS] 범주형 자료분석 성별, 직업, 선호도 같이 수치적으로 연속성을 가지고 있지 않은 범주형 자료의 경우 연속형 자료와 다른 분석 방법이 필요합니다. 이번 포스팅에서는 범주형 자료를 아래와 같은 방법으로 자료를 분석하고자 합니다. 1. 도수분포표 및 분할표 2. 적합도 검정 3. 독립성 검정 4. 동질성 검정 1. 도수분포표 및 분할표 범주형 자료의 분포를 살펴보기 위해 SAS의 FREQ 프로시저를 이용합니다. 1) 1개 특성의 분포 1) FREQ */ /* 1개 특성의 분포표 */ PROC FREQ DATA=SASHELP.HEART; TABLES Smoking_Status; RUN; [결과] - 전체 관찰 대상 중 흡연 정도에 따라 분포 빈도와 비율을 살펴봅니다. - 우선은 Non-smoker비율이 약 48%로 비흡연자의 .. 2021. 1. 7.
[SAS] 기술통계량 산출 및 정규성 검정 아래와 같은 SAS 프로시저로 일변량 자료를 요약할 수 있습니다. 3개 프로시저 모두 대푯값과 산포도를 포함한 기술 통계량 값을 제공합니다. 특히, UNIVARIATE 프로시저는 정규성 검정을 위한 정규 확률도, 상자 그림, 히스토그램을 제공합니다. 1. UNIVARIATE 2. MEANS 3. SUMMARY ** 캐글의 BankChurners데이터를 사용했습니다. 1. UNIVARIATE 1) 정규성 검정 - 주어진 통계자료가 정규 분포를 따르는 모집단으로 추출된 표본인지 검정. - 대부분의 통계 이론은 모집단이 정규분포라는 가정하에 이뤄지므로 추출된 표본이 정규 모집단으로부터의 표본인지를 검정하는 정규성검정은 통계분석에 선행하여 이뤄질 필요가 있음. - 귀무가설(H0) : 모집단의 분포가 정규분포. .. 2021. 1. 4.
[SAS] 자료 행 분할 데이터 행이 너무 많아서 25% 정도 잘라서 사용하려고 합니다. SAS에서 데이터 행 분할하는 쉬운 방법을 몰라 제가 시도한 몇 가지 방법을 소개하려고 합니다. 아래 소개한 방법 외에 좀 더 간단한 방법이 있다면 공유 부탁드립니다~! :) - 데이터: 캐글의 Credit Card Approval Prediction - 기준 열 : app데이터의 ID열 1. SQL로 자르기 # 방법1 ) SQL PROC SQL; CREATE TABLE dataset.app_1 AS SELECT * FROM dataset.app WHERE ID 2020. 12. 1.
[SAS] Macro 매크로(Macro)는 한마디로 자동화 프로그램을 의미합니다. 복잡한 코드 단어를 간단한 방법으로 수정할 수 있으며 반복되는 작업도 간단하게 만들 수 있습니다. 매크로는 문자 변수나 숫자 변수로 생성이 됩니다. 변수 속성을 바꾸고 싶으시다면, 매크로 변수 생성 이후, 값을 변환하는 과정을 거쳐야 합니다. [출처] https://wikidocs.net/31827 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 이번 포스팅은 위키독스 "SAS로 하는 기초 데이터 전처리, 핸들링(Data handling) [매크로 기본 문법] ① 매크로를 생성할 때는 % LET 명령어를 통해 만듭니다. 반드시 ‘%’를 붙여야 SAS는 이를 매크로 칼럼 생성으로 인식합니다. ‘%’는 표로 이뤄진 결과값을.. 2020. 11. 23.