본문 바로가기
Database/Oracle

[ORACLE] COVAR_POP() 함수로 분산과 공분산 한눈에 이해하기

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

오라클 COVAR_POP() 함수로 분산과 공분산 한눈에 이해하기
[ Oracle] COVAR_POP

 

1. COVAR_POP 함수란?

COVAR_POP()은 모집단 공분산(Population Covariance)을 계산하는 Oracle SQL 함수입니다. 두 수치형 열 간의 관계를 측정할 수 있으며, 이는 데이터 간의 선형적 관계를 설명하는 데 활용됩니다.

2. 기본 문법

COVAR_POP(expr1, expr2)

expr1, expr2는 수치형 칼럼이며, NULL은 계산에서 제외됩니다.

3. COVAR_POP의 의미

  • 공분산은 두 변수 간의 방향성 관계를 나타냅니다.
  • 양수: 한 값이 증가할 때 다른 값도 증가
  • 음수: 한 값이 증가할 때 다른 값은 감소
  • 0에 가까움: 거의 관계 없음

단, 공분산 값은 단위에 영향을 받기 때문에 절대적 비교보다는 추세나 방향성 판단에 유용합니다.

4. 실전 예제 1: 샘플 데이터 생성

CREATE TABLE employee_performance (
  emp_id NUMBER,
  productivity NUMBER,
  accuracy NUMBER
);

INSERT INTO employee_performance VALUES (1, 80, 85);
INSERT INTO employee_performance VALUES (2, 90, 88);
INSERT INTO employee_performance VALUES (3, 70, 70);
INSERT INTO employee_performance VALUES (4, 60, 65);
INSERT INTO employee_performance VALUES (5, 95, 92);
COMMIT;

5. 실전 예제 2: COVAR_POP 함수 사용

SELECT COVAR_POP(productivity, accuracy) AS covar
FROM employee_performance;

결과는 생산성과 정확도 간의 모집단 공분산 값을 반환합니다.

6. 실전 예제 3: GROUP BY와 함께 사용하기

부서별로 공분산을 계산하고 싶다면 다음과 같이 활용할 수 있습니다.

SELECT department_id,
       COVAR_POP(sales, satisfaction) AS dept_cov
FROM customer_feedback
GROUP BY department_id;

7. COVAR_POP vs COVAR_SAMP 차이점

  • COVAR_POP(): 모집단 전체의 공분산을 계산
  • COVAR_SAMP(): 표본 기반 공분산을 계산 (모집단의 추정을 위해 n-1로 나눔)

모든 데이터를 수집한 경우에는 COVAR_POP이 적절하며, 표본 분석에는 COVAR_SAMP 사용이 권장됩니다.

8. 활용 팁

  • 공분산을 CORR 함수와 함께 사용하면 더 명확한 해석 가능
  • 상관계수는 단위 영향이 없고, 공분산은 단위에 영향을 받음
  • 데이터 전처리 과정에서 이상치나 NULL 값 필터링 중요

9. 자주 묻는 질문 (FAQ)

Q1. 공분산 값이 매우 크거나 작다면 어떻게 해석하나요?

공분산 자체는 방향성을 중심으로 해석해야 하며, 크기의 절댓값보다는 다른 변수와 비교 시 추세를 파악하는 데 유용합니다.

Q2. 공분산이 0이면 관계가 없다는 의미인가요?

선형 관계가 없다는 의미입니다. 하지만 비선형 관계는 존재할 수 있습니다.

10. 참고 자료

728x90