본문 바로가기
Database

[ Oracle] 오라클 REGR_AVGX() 함수로 데이터 회귀 분석 시작하기

by 코드개미 2025. 6. 2.

오라클 REGR_AVGX() 함수로 데이터 회귀 분석 시작하기
[Oracle] REGR_AVGX

 

REGR_AVGX() 함수는 Oracle SQL에서 선형 회귀 분석 중 독립 변수(x)의 평균값을 계산하는 데 사용되는 통계 함수입니다. 

1. REGR_AVGX 함수란?

REGR_AVGX(y, x) 함수는 x와 y가 모두 NULL이 아닌 레코드만을 대상으로 x의 평균값을 반환합니다. 일반적인 AVG() 함수와 달리 회귀 분석에 필요한 유효 데이터 기준으로 동작합니다.

2. 기본 문법

REGR_AVGX(y_expr, x_expr)

y_expr: 종속 변수, x_expr: 독립 변수. 두열 모두 수치형이어야 하며, NULL은 계산에서 제외됩니다.

3. REGR_AVGX와 AVG의 차이

항목 REGR_AVGX(y, x) AVG(x)
NULL 필터링 x와 y 모두 NULL이 아닌 행만 포함 x가 NULL이 아닌 행만 포함
회귀 연산 기준 회귀 분석을 위한 평균 단순 평균
용도 REGR 시리즈와 함께 사용 일반 통계 용도

4. 실전 예제 1: 광고비와 매출 데이터

CREATE TABLE marketing_data (
  campaign VARCHAR2(10),
  ad_cost NUMBER,    -- 독립 변수 x
  revenue NUMBER     -- 종속 변수 y
);

INSERT INTO marketing_data VALUES ('A', 100, 1200);
INSERT INTO marketing_data VALUES ('B', 200, 1900);
INSERT INTO marketing_data VALUES ('C', NULL, 2100);
INSERT INTO marketing_data VALUES ('D', 400, 3300);
INSERT INTO marketing_data VALUES ('E', 500, NULL);
COMMIT;

5. 실전 예제 2: REGR_AVGX 사용

SELECT REGR_AVGX(revenue, ad_cost) AS avg_x_for_regression
FROM marketing_data;

위 결과는 ad_cost와 revenue가 모두 NULL이 아닌 레코드 (A, B, D)에 대해 ad_cost의 평균을 계산합니다. 예: (100 + 200 + 400) / 3 = 233.33

6. 실전 예제 3: 그룹별 평균 x값 계산

CREATE TABLE dept_sales (
  dept_id NUMBER,
  budget NUMBER,    -- x
  profit NUMBER     -- y
);

-- 예시 쿼리
SELECT dept_id,
       REGR_AVGX(profit, budget) AS avg_budget_x
FROM dept_sales
GROUP BY dept_id;

부서별 예산 대비 이익 관계에서 유효 데이터 기준으로 평균 예산을 파악할 수 있습니다.

7. 실무 활용 팁

  • 회귀 분석에서 중심점 계산으로 활용
  • REGR_SLOPE, REGR_INTERCEPT와 함께 사용하면 회귀 직선 공식 도출 가능
  • 데이터셋에 NULL이 많을수록 일반 평균과 큰 차이를 보일 수 있음

8. 자주 묻는 질문 (FAQ)

Q1. REGR_AVGX가 NULL을 반환하는 이유는?

x 또는 y가 모두 NULL이거나 유효한 쌍이 없는 경우 결과는 NULL입니다.

Q2. AVG와 함께 써도 되나요?

가능하지만, 회귀 분석 문맥에서는 REGR_AVGX를 사용하는 것이 정확한 해석을 보장합니다.

9. 참고 자료