중심경향 측도

Python으로 시작하는 통계학

Maggie Matsui

Content Developer, DataCamp

포유류 수면 데이터

print(msleep)
                 name       genus   vore         order  ... sleep_cycle  awake  brainwt   bodywt
1             Cheetah    Acinonyx  carni     Carnivora  ...         NaN   11.9      NaN   50.000
2          Owl monkey       Aotus   omni      Primates  ...         NaN    7.0  0.01550    0.480
3     Mountain beaver  Aplodontia  herbi      Rodentia  ...         NaN    9.6      NaN    1.350
4 Greater short-ta...     Blarina   omni  Soricomorpha  ...    0.133333    9.1  0.00029    0.019
5                 Cow         Bos  herbi  Artiodactyla  ...    0.666667   20.0  0.42300  600.000
..                ...         ...    ...           ...  ...         ...    ...      ...      ...
79         Tree shrew      Tupaia   omni    Scandentia  ...    0.233333   15.1  0.00250    0.104
80 Bottle-nosed do...    Tursiops  carni       Cetacea  ...         NaN   18.8      NaN  173.330
81              Genet     Genetta  carni     Carnivora  ...         NaN   17.7  0.01750    2.000
82         Arctic fox      Vulpes  carni     Carnivora  ...         NaN   11.5  0.04450    3.380
83            Red fox      Vulpes  carni     Carnivora  ...    0.350000   14.2  0.05040    4.230
Python으로 시작하는 통계학

히스토그램

msleep_hist.png

Python으로 시작하는 통계학

이 데이터셋의 포유류는 보통 얼마나 잘까?

일반적인 값은?

데이터의 중심은?

  • 평균
  • 중앙값
  • 최빈값

Screen Shot 2020-07-02 at 11.01.16 AM.png

Python으로 시작하는 통계학

중심경향 측도: 평균

                  name  sleep_total
1              Cheetah         12.1
2           Owl monkey         17.0
3      Mountain beaver         14.4
4   Greater short-t...         14.9
5                  Cow          4.0
..                 ...          ...

$\text{평균 수면 시간}=$

$$\frac{12.1 + 17.0 + 14.4 + 14.9 + ...}{83} = 10.43$$

import numpy as np
np.mean(msleep['sleep_total'])
10.43373
Python으로 시작하는 통계학

중심경향 측도: 중앙값

msleep['sleep_total'].sort_values()
29     1.9
30     2.7
22     2.9
9      3.0
23     3.1
      ... 
19    18.0
61    18.1
36    19.4
21    19.7
42    19.9
msleep['sleep_total'].sort_values().iloc[41]
10.1
np.median(msleep['sleep_total'])
10.1
Python으로 시작하는 통계학

중심경향 측도: 최빈값

가장 빈도가 높은 값

msleep['sleep_total'].value_counts()
12.5    4
10.1    3
14.9    2
11.0    2
8.4     2
...
14.3    1
17.0    1
Name: sleep_total, Length: 65, dtype: int64
msleep['vore'].value_counts()
herbi      32
omni       20
carni      19
insecti     5
Name: vore, dtype: int64
import statistics
statistics.mode(msleep['vore'])
'herbi'
Python으로 시작하는 통계학

이상치 추가하기

# Subset msleep to select rows where 'vore' equals 'insecti'
msleep[msleep['vore'] == 'insecti']
                     name         genus     vore         order  sleep_total
22          Big brown bat     Eptesicus  insecti    Chiroptera         19.7
43       Little brown bat        Myotis  insecti    Chiroptera         19.9
62        Giant armadillo    Priodontes  insecti     Cingulata         18.1
67  Eastern american mole      Scalopus  insecti  Soricomorpha          8.4
Python으로 시작하는 통계학

이상치 추가하기

msleep[msleep['vore'] == "insecti"]['sleep_total'].agg(["mean", "median"])
mean      16.53
median    18.9
Name: sleep_total, dtype: float64
Python으로 시작하는 통계학

이상치 추가하기

msleep[msleep['vore'] == 'insecti']
                     name         genus     vore         order  sleep_total
22          Big brown bat     Eptesicus  insecti    Chiroptera         19.7
43       Little brown bat        Myotis  insecti    Chiroptera         19.9
62        Giant armadillo    Priodontes  insecti     Cingulata         18.1
67  Eastern american mole      Scalopus  insecti  Soricomorpha          8.4

84 Mystery insectivore ... insecti ... 0.0
Python으로 시작하는 통계학

이상치 추가하기

msleep[msleep['vore'] == "insecti"]['sleep_total'].agg(["mean", "median"])
mean      13.22
median    18.1
Name: sleep_total, dtype: float64

평균: 16.5 → 13.2

중앙값: 18.9 → 18.1

Python으로 시작하는 통계학

어떤 측도를 사용할까?

# Import matplotlib.pyplot with alias plt
import matplotlib.pyplot as plt

# Histogram of values
data['values'].hist()

# Show the plot
plt.show()

대칭 데이터 히스토그램

Python으로 시작하는 통계학

왜도

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            **왼쪽 꼬리 분포**

왼쪽에 값이 적고 오른쪽으로 갈수록 값이 많아지는 데이터의 히스토그램.

                                    **오른쪽 꼬리 분포**

왼쪽에 값이 많고 오른쪽으로 갈수록 적어지는 데이터의 히스토그램.

Python으로 시작하는 통계학

어떤 측도를 사용할까?

왼쪽에 값이 적고 오른쪽으로 갈수록 값이 많아지는 데이터의 히스토그램.

왼쪽에 값이 많고 오른쪽으로 갈수록 적어지는 데이터의 히스토그램.

Python으로 시작하는 통계학

연습해 봅시다!

Python으로 시작하는 통계학

Preparing Video For Download...