본문 바로가기
Oracle

[Oracle] 오라클 REGR_SXX() 함수로 데이터 분산 분석 자동화하기

by 코드개미 2025. 6. 2.

오라클 REGR_SXX() 함수로 데이터 분산 분석 자동화하기
[Oracle] REGR_SXX

 

REGR_SXX() 함수는 Oracle SQL에서 회귀 분석을 위한 통계 함수로, 독립 변수(x)의 편차 제곱합(Sum of Squares of Deviations)을 계산합니다. 이는 단순 분산 개념을 넘어, 회귀 분석 시 분모 역할을 하며, 기울기(Slope)를 구할 때 필수로 사용됩니다.

1. REGR_SXX 함수란?

REGR_SXX는 x 값의 제곱 편차합을 구합니다. 이는 ∑(x - 평균_x)^2으로, 회귀선의 기울기를 구하는 데 필요한 통계량입니다. REGR_SLOPE는 REGR_SXY / REGR_SXX로 계산됩니다.

2. 기본 문법

REGR_SXX(y_expr, x_expr)

y_expr: 종속 변수, x_expr: 독립 변수. 두 인자 모두 수치형이어야 하며, 둘 다 NULL이 아닌 행만 포함됩니다.

3. REGR_SXX의 수학적 의미

REGR_SXX는 다음과 같은 수식으로 정의됩니다:

REGR_SXX(y, x) = ∑(x_i - 평균_x)^2

이는 회귀식에서 분산을 나타내며, 회귀 기울기 계산의 분모가 됩니다.

4. 실전 예제 1: 학생 성적 분석

CREATE TABLE student_scores (
  student_id NUMBER,
  study_hours NUMBER,  -- 독립 변수 x
  score NUMBER          -- 종속 변수 y
);

INSERT INTO student_scores VALUES (1, 1, 55);
INSERT INTO student_scores VALUES (2, 2, 65);
INSERT INTO student_scores VALUES (3, 3, 70);
INSERT INTO student_scores VALUES (4, 4, 80);
INSERT INTO student_scores VALUES (5, 5, 90);
COMMIT;

위 데이터를 바탕으로 학습 시간에 따른 성적의 회귀분석을 수행할 수 있습니다.

5. 실전 예제 2: REGR_SXX 결과 확인

SELECT REGR_SXX(score, study_hours) AS sum_sq_deviation_x
FROM student_scores;

결과는 study_hours의 편차 제곱합으로, 예: 평균이 3이면
(1−3) ² + (2−3) ² + (3−3) ² + (4−3) ² + (5−3) ² = 10

6. 실전 예제 3: 그룹별 분석

CREATE TABLE dept_performance (
  dept_id NUMBER,
  hours NUMBER,
  output NUMBER
);

-- 그룹별 REGR_SXX 분석
SELECT dept_id,
       REGR_SXX(output, hours) AS dept_sxx
FROM dept_performance
GROUP BY dept_id;

부서별 시간 대비 산출량의 분산을 구해 효율성 차이를 분석할 수 있습니다.

7. REGR_SXX와 VAR_POP의 차이

항목 REGR_SXX VAR_POP
계산 대상 x와 y가 모두 NULL이 아닌 경우 x가 NULL이 아닌 경우
용도 회귀 분석용 단순 분산 계산
출력값 편차 제곱합 분산

8. 자주 묻는 질문 (FAQ)

Q1. 결과가 NULL이 나오는 이유는?

두열 중 하나라도 NULL이면 해당 행은 계산 제외되며, 유효한 쌍이 없으면 NULL 반환

Q2. REGR_SLOPE와 함께 어떻게 쓰이나요?

REGR_SLOPE(y, x)는 내부적으로 REGR_SXY(y, x) / REGR_SXX(y, x)로 계산됩니다.

9. 참고 자료