728x90

REGR_SLOPE() 함수는 Oracle SQL에서 선형 회귀 분석 시 종속 변수(y)와 독립 변수(x) 간의 기울기(Slope)를 계산하는 데 사용되는 통계 함수입니다. 본 글은 SQL로 회귀 분석을 수행하려는 개발자 및 데이터 분석가에게 실무적으로 도움이 되는 내용을 제공합니다.
1. REGR_SLOPE 함수란?
REGR_SLOPE(y, x) 함수는 선형 회귀 직선 y = a + bx에서 기울기 b를 계산합니다. 이 기울기는 x가 1 단위 증가할 때 y가 얼마나 변화하는지를 나타냅니다.
2. 기본 문법
REGR_SLOPE(y_expr, x_expr)
y_expr: 종속 변수 (예: 판매량)x_expr: 독립 변수 (예: 광고비)
3. 실전 예제 1: 판매량과 광고비 간 회귀 분석
CREATE TABLE sales_data (
month VARCHAR2(10),
ad_spend NUMBER, -- 광고비 (x)
sales NUMBER -- 매출 (y)
);
INSERT INTO sales_data VALUES ('Jan', 100, 800);
INSERT INTO sales_data VALUES ('Feb', 200, 1500);
INSERT INTO sales_data VALUES ('Mar', 300, 2200);
INSERT INTO sales_data VALUES ('Apr', 400, 3000);
INSERT INTO sales_data VALUES ('May', 500, 3700);
COMMIT;
4. 실전 예제 2: REGR_SLOPE 함수 실행
SELECT REGR_SLOPE(sales, ad_spend) AS slope
FROM sales_data;
이 결과는 광고비가 1 증가할 때 예상 매출이 얼마나 증가하는지를 수치로 반환합니다. 예: 결과가 7.4이면 광고비 1 단위당 매출이 평균 7.4만큼 증가한 것입니다.
5. 실전 예제 3: 부서별 회귀 분석
CREATE TABLE dept_performance (
dept_id NUMBER,
training_hours NUMBER,
productivity NUMBER
);
-- 부서별 데이터 삽입 후 실행
SELECT dept_id,
REGR_SLOPE(productivity, training_hours) AS training_effect
FROM dept_performance
GROUP BY dept_id;
부서별 교육 시간과 생산성 간의 선형 관계를 분석할 수 있습니다.
6. 해석과 활용
- 기울기
b > 0: 양의 상관관계 (x 증가 시 y도 증가) - 기울기
b < 0: 음의 상관관계 (x 증가 시 y 감소) - 기울기
b ≈ 0: 거의 관계 없음
REGR_SLOPE은 REGR_INTERCEPT(), REGR_R2() 등과 함께 사용하면 더욱 효과적인 회귀 분석이 가능합니다.
7. 주의사항
- NULL 값이 있는 행은 자동 제외되므로 데이터 전처리가 필요합니다.
- x 값이 모두 동일하면 기울기를 계산할 수 없어 NULL이 반환됩니다.
- 선형 회귀는 선형성 가정을 전제로 합니다.
8. 자주 묻는 질문 (FAQ)
Q1. REGR_SLOPE이 NULL을 반환하는 이유는?
x 또는 y 값이 모두 NULL이거나, x 값이 동일하면 회귀 분석이 불가능하므로 NULL이 반환됩니다.
Q2. 기울기 값만으로 관계를 해석해도 될까요?
기울기 값은 방향성을 알려주지만, 관계의 강도는 REGR_R2() 등과 함께 보는 것이 바람직합니다.
9. 참고 자료
- Oracle 공식 문서: https://docs.oracle.com/en/database/
- Oracle SQL REGR_SLOPE 함수: Oracle 19c Documentation
- W3Schools SQL Reference: https://www.w3schools.com/sql/
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] REGR_COUNT() 함수 사용법과 실무 예제로 배우는 회귀 분석 (0) | 2025.06.02 |
|---|---|
| [ORACLE] REGR_INTERCEPT() 실전 예제로 회귀 분석 절편 구하기 (0) | 2025.06.02 |
| [ORACLE] STDDEV_SAMP() 함수로 표본 표준편차 쉽게 이해하기 (0) | 2025.06.02 |
| [ORACLE] STDDEV_POP() 함수로 집단 표준편차 구하기 실전 예제 (0) | 2025.06.02 |
| [ORACLE] VAR_POP() 함수로 분산 기반 데이터 분석 시작하기 (0) | 2025.06.02 |