본문 바로가기
Database/Oracle

[ORACLE] COVAR_SAMP() 함수로 샘플 데이터 통계 분석하는 방법

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

[Oracle] COVAR_SAMP

 

1. COVAR_SAMP 함수란?

COVAR_SAMP(expr1, expr2)는 주어진 두열의 표본 공분산 값을 반환합니다. 이는 전체 모집단이 아닌 표본을 기준으로 관계를 분석할 때 사용되며, 나눗셈 분모가 n-1이라는 점에서 COVAR_POP과 차이를 보입니다.

2. 표본 공분산의 의미

  • 양의 공분산: 두 값이 함께 증가하거나 감소
  • 음의 공분산: 한 값이 증가할 때 다른 값은 감소
  • 0 근처: 뚜렷한 선형 관계 없음

표본 기반이므로 실제 모집단과 약간의 오차는 존재할 수 있습니다.

3. 기본 문법

COVAR_SAMP(numeric_expr1, numeric_expr2)

두 인자 모두 수치형 데이터여야 하며, NULL은 계산에서 제외됩니다.

4. 실전 예제 1: 테이블 생성

직원별 업무 효율성과 만족도를 비교하는 예제입니다.

CREATE TABLE employee_feedback (
  emp_id NUMBER,
  efficiency NUMBER,
  satisfaction NUMBER
);

INSERT INTO employee_feedback VALUES (101, 88, 80);
INSERT INTO employee_feedback VALUES (102, 75, 70);
INSERT INTO employee_feedback VALUES (103, 90, 85);
INSERT INTO employee_feedback VALUES (104, 60, 65);
INSERT INTO employee_feedback VALUES (105, 95, 90);
COMMIT;

5. 실전 예제 2: COVAR_SAMP 함수 실행

SELECT COVAR_SAMP(efficiency, satisfaction) AS sample_cov
FROM employee_feedback;

결과는 efficiencysatisfaction 간의 표본 공분산 값을 반환합니다.

6. 실전 예제 3: 부서별 공분산 분석

CREATE TABLE dept_performance (
  dept_id NUMBER,
  project_score NUMBER,
  peer_rating NUMBER
);

-- 데이터 입력 생략 (예제에 맞게 채워넣기)

SELECT dept_id,
       COVAR_SAMP(project_score, peer_rating) AS dept_cov
FROM dept_performance
GROUP BY dept_id;

부서별로 프로젝트 점수와 동료 평가 간의 관계를 분석할 수 있습니다.

7. COVAR_SAMP vs COVAR_POP

항목 COVAR_SAMP COVAR_POP
용도 표본 기반 분석 모집단 전체 분석
분모 n - 1 n
정밀도 모집단 추정에 적합 전체 데이터 분석에 적합

8. 활용 팁 및 주의사항

  • 공분산 값 자체보다 양/음의 방향성과 상대적 크기에 집중
  • NULL 값은 자동 제외되므로 사전 필터링이 중요
  • 단위가 포함된 데이터일 경우 해석에 주의
  • 비교 대상이 많을 경우, CORR() 병행 활용 권장

9. 자주 묻는 질문 (FAQ)

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

두열 모두 NULL이거나, 데이터가 한 건 이하일 경우 계산이 불가능하여 NULL이 반환됩니다.

Q2. 공분산이 높은 값이면 좋은 것인가요?

공분산은 방향성과 관계의 유무만 설명하며, "좋다/나쁘다"의 판단은 도메인 지식과 함께 해석해야 합니다.

10. 참고 자료

728x90