[TIL] 데이터의 중심 지표

내용 출처

데이터의 중심 지표

평균

1차원의 데이터를 볼 때, 데이터를 대표하는 값들이 있습니다. 나는 그 값들에 대한 이야기를 해볼까 합니다. 우선 가장 간단한 예시로 책은 시작됩니다.

바로 성적입니다. 우리가 성적을 받을 때, 반 평균 혹은 나의 점수를 신경씁니다. 때문에 이러한 평균은 데이터를 대표하는 값 중 하나입니다.

평균을 구하는 방법은 누구나 알고 있을 정도로 간단합니다. 데이터를 모두 더한 후에 데이터의 길이로 나누어 주면 됩니다.

일단 간단한 데이터 프레임을 만들어 봅시다.

scores = np.array([42, 69, 56, 41, 57, 48, 65, 49, 65, 58])

scores_df = pd.DataFrame({'score':scores},
                         index = pd.Index(['A', 'B', 'C', 'D', 'E', 'F','G',
                         'H', 'I', 'J'], name="student"))
scores_df

이런식으로 코드를 작성해주면 성적에 대한 데이터 프레임을 만들어 줄 수 있습니다.

여기서 평균을 구하는 방법은 정말 간단합니다.

scores_df.mean()

다음과 같이 작성해주면 평균을 구할 수 있습니다.

중앙값

우리는 살면서 평균을 많이 씁니다. 하지만 어떤 경우에는 평균이 의미가 없는 경우도 있습니다. 예를 들어서, 10명의 친구가 있을 때 공부를 엄청 잘하는 친구가 혼자 100점을 받고 나머지 친구들은 공부를 엄청 못해서 2점을 받았다고 가정해봅시다.

scores = np.array([2, 2, 2, 2, 2, 2, 2, 2, 100])

이 배열의 평균을 구해주게 된다면 약 12.9점이 나오게 됩니다. 한명을 제외하면 평균이 2점인데 한 명으로 인해서 평균이 확 뛰어버립니다. 때문에 이러한 경우에는 평균이 의미가 없을 수도 있습니다.

이러한 경우에 우리는 중앙값이라는 지표를 사용할 수 있습니다.
중앙값은 말 그대로 중앙에 있는 값입니다.
값을 오름차순으로 정렬했을 때 가장 중앙에 있는 값이 중앙값입니다.

홀수일 경우에는 (n+1) / 2 번째 값이고 짝수일 경우에는 n/2 와 n/2 + 1의 평균으로 사용합니다.

#if np.array
np.median(score)

#if np.DataFreame
scores_df.median()

다음과 같은 파이썬 코드로 간편하게 중앙값을 구할 수 있습니다.

최빈값

최빈값은 데이터에서 가장 많이 나오는 값 입니다. 개인적인 경험으로는 범주형 데이터가 NULL값을 때 최빈값을 사용하는 것 같습니다.

scores = np.array([2, 2, 2, 2, 2, 2, 2, 2, 2, 100])

scores_df = pd.DataFrame({'score':scores},
                         index = pd.Index(['A', 'B', 'C', 'D', 'E', 'F','G',
                         'H', 'I', 'J'], name="student"))

scores_df.mode()

당연하게도 이 코드를 실행시키면 최빈값은 2가 나오게 됩니다. 위의 데이터는 수치형 데이터이지만 2가 대부분인 값이기 때문에 최빈값도 꽤 의미가 있는 것 같습니다.
최빈값 함수 mode는 Series나 DataFrame에서 사용할 수 있다고 합니다.

좋은 웹페이지 즐겨찾기