본문 바로가기
Database/Oracle

[ORACLE] REGR_SLOPE() 함수로 선형 회귀 기울기 계산하는 방법

by Papa Martino V 2025. 6. 2.
728x90

오라클 REGR_SLOPE() 함수로 선형 회귀 기울기 계산하는 방법
[Oracle] REGR_SLOPE

 

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. 참고 자료

728x90