본문 바로가기
개인 프로젝트/데이터 분석 프로젝트

[통계] SAS Certified Advanced Programmer

by 응_비 2025. 1. 31.

회사에서 SAS를,
성대 대학원에서 SAS 툴을 제공하고 있다.
(SAS는 비싸다..)

쿼리 공부를 좋아하는 편인데,
Oracle Toad를 사용하다
SAS 쪽으로 공부방향을 틀어보았다.

SAS와 SQL을 활용한 데이터 분석 예제들을 몇 가지 제공해드리겠습니다.

1. 기본적인 데이터 조회 예제

SAS:
```sas
/* SAS 데이터셋 조회 */
data sales;
    input Product $ Region $ Sales;
    datalines;
Apple Northeast 1000
Orange West 1500
Banana South 1200
;
run;

/* 기본 프로시저를 사용한 데이터 출력 */
proc print data=sales;
run;

/* SQL 프로시저 사용 */
proc sql;
    select * from sales;
quit;
```

SQL:
```sql
CREATE TABLE sales (
    Product VARCHAR(50),
    Region VARCHAR(50),
    Sales NUMERIC
);

INSERT INTO sales VALUES
('Apple', 'Northeast', 1000),
('Orange', 'West', 1500),
('Banana', 'South', 1200);

SELECT * FROM sales;
```

2. 데이터 필터링 및 집계

SAS:
```sas
/* 고급 필터링 및 집계 */
data work.high_sales;
    set sales;
    where Sales > 1200;
run;

proc sql;
    select Region,
           sum(Sales) as Total_Sales,
           avg(Sales) as Avg_Sales
    from sales
    group by Region
    having sum(Sales) > 1000;
quit;
```

SQL:
```sql
-- 필터링된 데이터 조회
SELECT * FROM sales WHERE Sales > 1200;

-- 지역별 판매 집계
SELECT
    Region,
    SUM(Sales) as Total_Sales,
    AVG(Sales) as Avg_Sales
FROM sales
GROUP BY Region
HAVING SUM(Sales) > 1000;
```

3. 다중 데이터셋 결합

SAS:
```sas
/* 데이터셋 병합 */
data employees;
    input EmpID Name $ Department $;
    datalines;
1 John Sales
2 Jane Marketing
3 Bob IT
;
run;

data salaries;
    input EmpID Salary;
    datalines;
1 50000
2 60000
3 70000
;
run;

/* 데이터셋 병합 */
proc sql;
    select e.EmpID, e.Name,
                e.Department, s.Salary
    from employees e
    inner join salaries s
    on e.EmpID = s.EmpID;
quit;
```

SQL:
```sql
CREATE TABLE employees (
    EmpID INT,
    Name VARCHAR(50),
    Department VARCHAR(50)
);

CREATE TABLE salaries (
    EmpID INT,
    Salary NUMERIC
);

INSERT INTO employees VALUES
(1, 'John', 'Sales'),
(2, 'Jane', 'Marketing'),
(3, 'Bob', 'IT');

INSERT INTO salaries VALUES
(1, 50000),
(2, 60000),
(3, 70000);

-- 테이블 조인
SELECT
    e.EmpID,
    e.Name,
    e.Department,
    s.Salary
FROM employees e
INNER JOIN salaries s ON e.EmpID = s.EmpID;
```

4. 통계 분석 예제 (SAS)
```sas
/* 통계 분석 */
data health;
    input Age Weight Height;
    datalines;
25 70 175
30 80 180
35 75 172
40 85 178
;
run;

/* 기술 통계 */
proc means data=health;
    var Age Weight Height;
run;

/* 회귀 분석 */
proc reg data=health;
    model Weight = Height;
run;
```

오라클과 차이가 분명 존재한다.
그리고 SQL말고도 통계 관련 분석도 가능하다.
데이터사이언스융합전공에 도움이 크게 될 것 같다.
SAS는 의학 통계 쪽에 자주 사용된다고 한다.

댓글