corr()
그룹 내 두 숫자 필드 간의 피어슨 상관계수를 계산합니다.
문법
corr(EXPR_X, EXPR_Y)
매개변수
EXPR_X- 첫 번째 변수 값을 반환하는 표현식.
EXPR_Y- 두 번째 변수 값을 반환하는 표현식.
설명
corr() 함수는 그룹 내 레코드를 처리하면서 EXPR_X와 EXPR_Y가 반환하는 두 숫자 값의 쌍을 누적하여 피어슨 상관계수를 계산합니다. 두 값 중 하나라도 null이거나 숫자가 아닌 경우 해당 레코드는 집계에서 제외됩니다.
피어슨 상관계수는 두 변수 사이의 공분산(cov())을 각각의 표준편차의 곱으로 나눈 값으로, -1에서 1 사이의 64비트 실수(double)를 반환합니다. 1에 가까울수록 양의 상관관계, -1에 가까울수록 음의 상관관계, 0에 가까울수록 상관관계가 없음을 의미합니다. 집계 대상 유효 쌍이 하나도 없으면 null을 반환합니다.
stats, timechart 등 집계 명령어에서만 사용할 수 있습니다.
오류 코드
해당 사항 없음
사용 예
피어슨 상관계수는 두 연속형 수치 사이의 선형 관계를 측정합니다. HTTP 상태 코드(status)와 같이 숫자로 표기되더라도 범주(카테고리)를 의미하는 필드는 대상이 될 수 없습니다. 실제 운영 환경에서 분당 요청 수와 평균 응답 지연 시간 등 연속형 수치 쌍을 입력으로 사용하세요.
-
요청 수와 평균 응답 지연 시간 간의 상관계수 계산
json "[{'minute': 1, 'req_count': 50, 'avg_latency_ms': 30}, {'minute': 2, 'req_count': 120, 'avg_latency_ms': 75}, {'minute': 3, 'req_count': 200, 'avg_latency_ms': 140}, {'minute': 4, 'req_count': 350, 'avg_latency_ms': 280}, {'minute': 5, 'req_count': 500, 'avg_latency_ms': 450}]" | stats corr(req_count, avg_latency_ms) | # 강한 양의 상관관계(1에 근접). -
호스트별 요청 수와 평균 응답 지연 시간 간의 상관계수 계산
json "[{'host': 'web-01', 'req_count': 100, 'avg_latency_ms': 50}, {'host': 'web-01', 'req_count': 220, 'avg_latency_ms': 130}, {'host': 'web-01', 'req_count': 380, 'avg_latency_ms': 260}, {'host': 'web-02', 'req_count': 80, 'avg_latency_ms': 40}, {'host': 'web-02', 'req_count': 180, 'avg_latency_ms': 100}, {'host': 'web-02', 'req_count': 320, 'avg_latency_ms': 220}]" | stats corr(req_count, avg_latency_ms) by host -
null 값 처리
json "[{'x': 1, 'y': 2}, {'x': null, 'y': 4}, {'x': 3, 'y': 6}]" | stats corr(x, y) | # x가 null인 레코드는 집계에서 제외됩니다.
호환성
corr() 함수는 로그프레소 소나 4.0 이전부터 제공되었습니다.