본문 바로가기

[오라클 레퍼런스 함수] CORR - 숫자 쌍의 상관 계수 반환

by ㅇㅍㅍ 2023. 8. 2.
[오라클 레퍼런스 함수] CORR - 숫자 쌍의 상관 계수 반환
728x90

CORR

 

구문

CORR(expr1, expr2) [ OVER (analytic_clause) ]

 

참고:

구문, 의미, 그리고 제한 사항에 대한 정보는 Analytic Functions에 대한 내용을 참조하세요.

 

목적

CORR 함수는 숫자 쌍의 집합의 상관 계수(coefficient of correlation)를 반환합니다. 이 함수는 집계(aggregation) 또는 분석(analytic) 함수로 사용할 수 있습니다.

이 함수는 숫자 데이터 유형이나 숫자 데이터 유형으로 암묵적으로 변환될 수 있는 비숫자 데이터 유형을 인수로 받습니다. Oracle은 가장 높은 숫자 우선 순위를 가진 인수를 결정하고, 나머지 인수를 해당 데이터 유형으로 암묵적으로 변환하여 해당 데이터 유형을 반환합니다.

 

참고:

  • 더 자세한 내용은 암묵적 변환에 대한 표 2-8을 참조하고, 숫자 우선 순위에 대한 정보는 Numeric Precedence를 확인하세요.
  • Oracle 데이터베이스는 NULL인 expr1 또는 expr2 쌍을 제거한 후 함수를 (expr1, expr2) 집합에 적용합니다. 그런 다음 Oracle은 다음과 같은 계산을 수행합니다:
COVAR_POP(expr1, expr2) / (STDDEV_POP(expr1) * STDDEV_POP(expr2))

 

이 함수는 NUMBER 유형의 값을 반환합니다. 함수가 빈 집합에 적용되면 null을 반환합니다.

 

노트: CORR 함수는 Pearson 상관 계수(Pearson's correlation coefficient)를 계산합니다. 이 계수는 숫자 표현식을 인수로 필요로 합니다. 또한 Oracle은 비모수적 또는 순위 상관을 지원하기 위해 CORR_S (Spearman's rho coefficient) 및 CORR_K (Kendall's tau-b coefficient) 함수를 제공합니다.

 

참고:

Aggregate Functions, expr의 유효한 형태에 대한 정보는 About SQL Expressions, 그리고 CORR_SCORR_K 함수에 대한 정보는 CORR_*를 참조하세요.

 

집계 예제

다음 예제는 샘플 테이블 oe.product_information의 무게 클래스별로 제품의 리스트 가격과 최소 가격 간의 상관 계수를 계산합니다:

SELECT weight_class, CORR(list_price, min_price) "Correlation"
  FROM product_information
  GROUP BY weight_class
  ORDER BY weight_class, "Correlation";

WEIGHT_CLASS Correlation
------------ -----------
           1  .999149795
           2  .999022941
           3  .998484472
           4  .999359909
           5  .999536087

 

분석 예제

다음 예제는 직원의 직책에 따라 회사에서 근무한 기간과 급여 간의 상관 관계를 보여줍니다. 결과 집합은 특정 직무에 속하는 각 직원에 대해 동일한 상관 관계를 보여줍니다:

SELECT employee_id, job_id, 
       TO_CHAR((SYSDATE - hire_date) YEAR TO MONTH ) "Yrs-Mns",     salary, 
       CORR(SYSDATE-hire_date, salary)
       OVER(PARTITION BY job_id) AS "Correlation"
  FROM employees
  WHERE department_id in (50, 80)
  ORDER BY job_id, employee_id;

EMPLOYEE_ID JOB_ID     Yrs-Mns     SALARY Correlation
----------- ---------- ------- ---------- -----------
        145 SA_MAN     +04-09       14000  .912385598
        146 SA_MAN     +04-06       13500  .912385598
        147 SA_MAN     +04-04       12000  .912385598
        148 SA_MAN     +01-08       11000  .912385598
        149 SA_MAN     +01-05       10500  .912385598
        150 SA_REP     +04-05       10000   .80436755
        151 SA_REP     +04-03        9500   .80436755
        152 SA_REP     +03-10        9000   .80436755
        153 SA_REP     +03-03        8000   .80436755
        154 SA_REP     +02-07        7500   .80436755
        155 SA_REP     +01-07        7000   .80436755
. . .

 


출처: 오라클 레퍼런스

원문 링크: Oracle CORR 함수 문서

 

반응형

댓글