Data Factory Data Flow에서 중앙값, 1~4분위, 3~4분위수를 계산하는 방법

개시하다
Azure Data Factory 및 Azure Synapse Piperline의 Data Flow(GUI 및 코드 없는 데이터 가공 도구)를 사용하여 데이터 통계 및 예측 모델에 사용되는 데이터 가공 시 기술 정리
하고 싶은 일
나는 각 데이터의 기간별 개요 통계량(평균, 표준 편차, 방차, 중앙치, 14분위수, 34분위수 등)을 계산할 필요가 있다고 생각한다.
Data Flow의 공식 함수로 계산할 수 있지만 평균치, 표준 편차, 방차는 한 단계로 계산할 수 있지만 중앙치, 14분위수, 34분위수에 대해 median식 함수는 Data Flow가 아닌 것이 아쉽고 기교(2단계로 계산)가 필요하기 때문에 다음에 방법을 기재할 것이다.
메서드
평균, 표준 편차, 방차의 계산 방법
① 합계(Aggregate) 모듈을 사용하여 통계량을 계산하려는 단위(이하 예에서 센서 ID와 연월)를 그룹화합니다.

② 평균(avg), 표준 편차(stddev), 분산(variance)의 합계 함수로 집계

※ 표준 편차와 방차와 관련해서는 그룹화된 합계 대상 데이터 건수가 1개일 경우 오류가 발생할 수 있으므로 주의 대응 전략으로 1개에 불과한 데이터를 삭제한 후 합계(원래 취득한 통계량이 극소수인 데이터는 1개가 아니더라도 제외)

중앙치, 14분위수, 34분위의 계산 방법
Step1. nTile 함수를 사용하여 데이터를 오름차순으로 4등분
① 창(Window) 모듈을 사용하여 [1.over] 태그에서 통계량을 계산하려는 단위(이하 예에서 센서 ID와 년월)를 그룹화합니다.

② [2. 정렬] 탭에서 오름차순으로 객체 항목 정렬

③ [3. 범위] 탭은 기본 설정에서 변경되지 않습니다.

④ 탭에서 nTile 함수를 사용하여 4등분

다음은 그림입니다

Step2. 4등분 후의 데이터를 토대로 중앙치, 14분위수, 34분위수를 계산해 내다
⑤ 합계(Aggregate) 모듈을 사용하여 통계량을 계산하려는 단위(이하 예에서 센서 ID와 연월)를 그룹화합니다.

⑥max 함수와min 함수를 사용하여 다음 계산 공식에서 집합

• 중앙값의 경우 24분위의max값과 34분위의min값을 2로 나누면 중앙값을 산출할 수 있다(max(iif(test3_tile==2, test3, toFloat(null()))) + min(iif(test3_tile==3, test3, toFloat(null())))) / 2
· 14분위수(max(iif(test3_tile==1, test3, toFloat(null()))) + min(iif(test3_tile==2, test3, toFloat(null())))) / 2· 3분위수(max(iif(test3_tile==3, test3, toFloat(null()))) + min(iif(test3_tile==4, test3, toFloat(null())))) / 2인용하다

좋은 웹페이지 즐겨찾기