본문 바로가기
Database/Oracle

[ORACLE] REGR_SXY() 함수로 두 변수 간 선형 회귀 분석하기

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

 

오라클 REGR_SXY() 함수로 두 변수 간 선형 회귀 분석하기
[Oracle] REGR_SXY

 

Oracle에서 제공하는 REGR_SXY 함수는 통계 분석과 회귀 계산에 있어 유용한 도구입니다. 

1. REGR_SXY 함수란?

REGR_SXY는 Oracle에서 제공하는 선형 회귀 통계 함수 중 하나로, 종속 변수(Y)와 독립 변수(X) 간의 공분산 * n 값을 계산합니다.

REGR_SXY(y, x) OVER ([PARTITION BY ...] ORDER BY ...)

즉, REGR_SXY는 단순히 통계 분석뿐 아니라 트렌드 분석, 회귀식 도출, 품질 데이터 분석 등 다양한 실무에도 사용됩니다.

2. 기본 사용 구문

SELECT REGR_SXY(sales_amount, month) 
FROM sales_data;

위 예시는 월별 매출(month, sales_amount)의 선형 관계에서 공분산*n 값을 계산합니다.

3. 실전 예제: 제품별 매출 트렌드 분석

예제 테이블: product_sales

CREATE TABLE product_sales (
  product_id NUMBER,
  month      NUMBER,
  revenue    NUMBER
);

데이터 예시

INSERT INTO product_sales VALUES (101, 1, 150);
INSERT INTO product_sales VALUES (101, 2, 180);
INSERT INTO product_sales VALUES (101, 3, 210);
INSERT INTO product_sales VALUES (102, 1, 120);
INSERT INTO product_sales VALUES (102, 2, 125);
INSERT INTO product_sales VALUES (102, 3, 130);

분석 SQL

SELECT 
  product_id,
  REGR_SXY(revenue, month) AS reg_sxy
FROM 
  product_sales
GROUP BY 
  product_id;

결과 해석

REGR_SXY 값이 클수록 월(month) 증가에 따라 수익이 빠르게 증가하고 있음을 뜻합니다.

4. PARTITION BY와 함께 사용하는 방법

SELECT 
  product_id,
  month,
  revenue,
  REGR_SXY(revenue, month) OVER (PARTITION BY product_id) AS sxy_partitioned
FROM 
  product_sales
ORDER BY product_id, month;

이 구문은 product_id별로 개별 회귀 분석을 수행합니다.

5. 유의사항

  • NULL 값이 포함되면 결과가 NULL이 되므로 사전 필터링이 필요
  • REGR_SXY는 오직 숫자형 컬럼만 지원
  • 0 또는 상수값만 존재할 경우 결과는 0

6. 결론 및 활용 팁

REGR_SXY는 단순 통계 이상의 기능을 제공하는 함수로, 품질 분석, 트렌드 예측, 마케팅 ROI 분석 등 다양한 분야에 유용합니다. REGR_SLOPE, REGR_INTERCEPT와 함께 사용하면 회귀식을 완성할 수 있습니다.

📚 참고 자료

  • Oracle 공식 문서: docs.oracle.com
  • Oracle SQL Developer Examples
  • TechRepublic - Using analytic functions in Oracle
728x90