Winsorization(윈저화)

공대생의 팁 2020. 3. 1. 00:00


 데이터를 활용하는 과정에서 다음과 같은 문제를 겪는 경우가 있습니다.

  • 상위 극한값(95%) 백분위를 효율적인 방법으로 나타내고자 한다. 약 600개의 변수를 가진 데이터셋을 가지고 있으며, 95% 백분위를 가진 600개의 모든 변수의 극한값을 없애고자 한다.
  • 95%와 5%로 "Winsorize"하기 위해 몇 가지 변수가 있다. 95% 백분위보다 큰 값을 가진 모든 관측지가 95% 백분위값을 가져가고, 5% 백분위보다 작은 값을 가진 모든 관측치가 5% 백분위값을 갖기를 원한다.

 프로그래머가 수백개의 변수의 극한값을 수정하고자 하는 것은 상당히 어려운 일입니다. 이러한 문제들 중 어느것도 Winsorization의 일반적인 정의를 충족시키지 못합니다. 데이터의 Winsorization은 과연 어떤 점을 말하는 것일까요?

 지정된 수의 극한값을 더 작은 데이터값으로 대체하는 과정을 윈저화(Winsorization) 또는 데이터 윈저라이징(Winsorizing)이라 합니다.

 윈저화는 극한값에 민감한 표본 평균을 "강화"하는 방법입니다. 원저화된 평균을 얻기 위해 데이터를 정렬하고 (k+1)번째로 가장 작은 값을 k번째로 가장 작은값으로 바꿉니다. 마찬가지로 (k+1)번째로 가장 큰 값을 k번째로 가장 큰 값으로 대체합니다. 이렇게 새로운 데이터셋의 평균을 윈저화된 평균(Winsorized mean)이라고 합니다. 데이터가 대칭 모집단에서 나온 경우 윈저화된 평균은 모집단 평균에 대한 편견이 없는 추청치라 할 수 있습니다.

 위 그림에서 위쪽 그래프가 원본 데이터, 아랫쪽이 윈저화된 데이터를 나타냅니다. 원본 데이터의 경우 x값이 -4에서 4 사이의 범위에 분포하여 있음을 보실 수 있습니다. 이 때 x=4일 때의 값은 연속되어 있지 않고 따로 떨어져 있어 outlier처럼 보일 수도 있습니다. 이러한 원본 데이터를 윈저화(Winsorization)하여 최저값을 -2로, 최대값을 2로 설정하고 극한값을 벗어나는 값들은 모두 극한값에 추가함으로서 윈저화된 데이터셋을 만듭니다.

 다음으로 윈저화의 특징에 대해 살펴보도록 하겠습니다

  • 윈저화는 대칭입니다. 어떤 사람들은 큰 데이터값만 수정하고자 합니다. 그러나 윈저화는 k번째로 가장 작은 값과 k번째로 가장 큰 값으로 이 극한값을 벗어나는 값들을 해단 k번째 값으로 대체하는 대칭 프로세스입니다.

  • 윈저화는 횟수를 기반으로 합니다. 상위 5%, 95%등 정량형에 근거한 값을 수정하고자 하는 경우가 있습니다. 그러나 정량형을 사용한다고 해서 대칭적인 과정이 되는 것은 아닙니다. \(k_1\)을 하위 5%보다 작은 값의 개수로 하고 \(k_2\)를 상위 5%보다 큰 값의 개수라고 합시다. 데이터에 반복되는 값이 보함되어 있는 경우 \(k_1\)은 \(k_2\)와 같지 않을 수 있으며, 이는 잠재적으로 한 쪽이 다른 쪽보다 더 많은 값으로 바뀜을 의미합니다.

 

윈저화의 장점

  • 평균과 표준 편차와 같은 기존의 통계는 극단적인 값에 민감합니다. 윈저화의 목적은 극한값의 영향을 줄임으로서 기존의 통계로도 충분히 해석할 수 있게 해주는 것입니다.

  • 윈저화는 각 변수와 모든 변수를 확인하는 것이 불가능할 때 수천개의 변수들을 자동으로 처리하는데 사용되기도 합니다.

  • 윈저화된 통계을 기존 통계와 비교하면 오염된 데이터를 포함하거나 꼬리가 길어 모델에서 특별한 처리가 필요할 수 있는 변수를 확인할 수 있습니다.


참고자료:https://blogs.sas.com/content/iml/2017/02/08/winsorization-good-bad-and-ugly.html