728x90

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;
결과는 efficiency와 satisfaction 간의 표본 공분산 값을 반환합니다.
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. 참고 자료
- Oracle 공식 문서: https://docs.oracle.com/en/database/
- COVAR_SAMP 함수 정의: Oracle SQL Reference 19c
- W3Schools SQL Reference: https://www.w3schools.com/sql/
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] VAR_POP() 함수로 분산 기반 데이터 분석 시작하기 (0) | 2025.06.02 |
|---|---|
| [ORACLE] VAR_SAMP() 함수 완벽 분석 : 표본 분산 계산의 핵심 (0) | 2025.06.02 |
| [ORACLE] COVAR_POP() 함수로 분산과 공분산 한눈에 이해하기 (0) | 2025.06.02 |
| [ORACLE] CORR() 함수로 상관 관계 분석하는 방법과 실전 예제 (0) | 2025.06.02 |
| [ORACLE] NTILE() 함수로 순위 그룹 나누기 완벽 가이드 (0) | 2025.06.01 |