- 공유 링크 만들기
- 이메일
- 기타 앱
중심척도
관련내용
중간값(Median)
데이터의 중심은 값들이 몰려있는 부분에 집중되는 지점입니다. 평균(mean)은 그 지점을 결정하는 방법이지만 이상치의 존재 등으로 전체의 중심을 왜곡할 가능성이 존재합니다. 평균의 약점을 보완할 수 있는 다른 중심 측정치로 중간값(Median)을 사용할 수 있습니다. 예를 들어 인원 9명인 그룹의 다이어트 처방을 위해 약함과 강함으로 분류하고자 할 경우 처방의 근거는 그 그룹의 평균 몸무게를 기준으로 구분할 수 있습니다. 그러나 다음의 결과와 같이 문제를 제시할 수 있습니다.
weight=np.array([38, 35, 45, 30, 48, 33, 42, 39,100]) print(weight)
[ 38, 35, 45, 30, 48, 33, 42, 39, 100]
print('%.3f'%weight.mean())
45.556
print('%.3f'%weight[:-1].mean())#이상치를 제외한 경우
38.750
위 코드에서 나타낸 것과 같이 그 그룹의 일원 중 한 명의 몸무게는 나머지에 비해 현격한 차이를 보입니다. 즉, 이상치인 값이 포함되어 있습니다. 이 상태에서 평균 몸무게는 약 45.6 kg 이지만 이상치를 제외한 경우 평균은 약 38.8 kg으로 상이한 차이가 존재합니다. 강한 또는 약한 처방의 기준이 위의 두 값 사이에 존재하는 경우 불필요한 처방이 이루어질 수 있습니다. 이와 같이 이상치가 존재할 경우 평균은 그 값에 매우 민감하므로 바람직하지 않은 판단의 근거로 작용할 가능성을 가집니다. 평균 대신 데이터들 중간에 위치한 값을 중심을 대표하는 위치값으로 사용할 수 있습니다. 이러한 측정치를 중간값 (median)으로 정의합니다.
[중간값(Median)]
데이터 셋의 중간에 위치하는 값으로 다음 과정으로 산출합니다.
- 모든 값을 올림차순 또는 내림차순으로 정렬합니다.
- 데이터의 총수(n)를 결정
- n이 홀수인 경우 중간에 위치한 값
- n이 짝수인 경우 중간에 위치한 두 값의 평균
- 다음과 같이 중간에 위치한 값을 결정
이 예의 경우 데이터 정렬은 함수 np.sort()
를 적용하여 실행할 수 있습니다. 데이터 수(N)는 9개이므로 중간값의 위치는 4.5(← 9/2)입니다. 이 인덱스를 반올림하여 5번째의 값을 중간값으로 결정합니다. 파이썬에서 인덱스는 0부터 시작하므로 다음 코드에서는 객체의 4번째 인덱스에 위치한 값을 호출하였습니다.
- np.sort(x, axis=-1, kind="quicksort")
- 객체 x를 지정한 축(axis)에 따라 정렬합니다.
- kind는 정렬을 위한 알고리즘 방법을 지정( "quicksort", "mergesort", "heapsort" )
weightSort=np.sort(weight) print(weightSort)
[ 30, 33, 35, 38, 39, 42, 45, 48, 100]
weightSort[4]
39
중간값은 np.median()을 사용하여 직접적으로 산출할 수 있습니다.
- numpy.median(x, axis=none, …)
- 지정한 축을 기준으로 중간값을 반환
np.median(weight)
39.0
예)
34, 12, 5, 42, 7, 55의 중간값을 결정합니다.
d=np.array([34, 12, 5, 42, 7, 55]) dsort=np.sort(d) print(dsort)
[ 5, 7, 12, 34, 42, 55]
medIdx=len(d)/2 medIdx
3.0
med=(dsort[2]+dsort[3])/2 med
23.0
np.median(d)
23.0
댓글
댓글 쓰기