Python에서 십분위수를 계산하는 방법: 예 포함
통계에서 십분위수는 데이터 세트를 동일한 빈도의 10개 그룹으로 나누는 숫자입니다.
첫 번째 십분위수는 전체 데이터 값의 10%가 아래로 떨어지는 지점이다. 두 번째 십분위수는 전체 데이터 값의 20%가 아래로 떨어지는 지점 등입니다.
다음 구문을 사용하여 Python에서 데이터세트의 십분위수를 계산할 수 있습니다.
import numpy as np n.p. percentile (var, np. arange (0, 100, 10))
다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.
예: Python에서 십분위수 계산
다음 코드는 20개의 값으로 가짜 데이터세트를 생성한 후 데이터세트의 십분위수 값을 계산하는 방법을 보여줍니다.
import numpy as np
#createdata
data = np. array ([56, 58, 64, 67, 68, 73, 78, 83, 84, 88,
89, 90, 91, 92, 93, 93, 94, 95, 97, 99])
#calculate deciles of data
n.p. percentile (data, np. arange (0, 100, 10))
array([56., 63.4, 67.8, 76.5, 83.6, 88.5, 90.4, 92.3, 93.2, 95.2])
십분위수를 해석하는 방법은 다음과 같습니다.
- 모든 데이터 값의 10%가 63.4 보다 작습니다.
- 모든 데이터 값의 20%가 67.8 보다 작습니다.
- 모든 데이터 값의 30%가 76.5 보다 작습니다.
- 모든 데이터 값의 40%가 83.6 보다 작습니다.
- 모든 데이터 값의 50%가 88.5 보다 작습니다.
- 모든 데이터 값의 60%가 90.4 미만입니다.
- 모든 데이터 값의 70%가 92.3 보다 작습니다.
- 모든 데이터 값의 80%가 93.2 보다 작습니다.
- 모든 데이터 값의 90%가 95.2 보다 작습니다.
출력(56)의 첫 번째 값은 단순히 데이터 세트의 최소값을 나타냅니다.
예: Python에서 십분위수에 값 배치
각 데이터 값을 십분위수에 배치하려면 pandas qcut 함수를 사용할 수 있습니다.
이전 예에서 생성한 데이터세트에 이 함수를 사용하는 방법은 다음과 같습니다.
import pandas as pd
#create data frame
df = pd. DataFrame ({' values ': [56, 58, 64, 67, 68, 73, 78, 83, 84, 88,
89, 90, 91, 92, 93, 93, 94, 95, 97, 99]})
#calculate decile of each value in data frame
df[' Decile '] = pd. qcut (df[' values '], 10, labels= False )
#display data frame
df
values Decile
0 56 0
1 58 0
2 64 1
3 67 1
4 68 2
5 73 2
6 78 3
7 83 3
8 84 4
9 88 4
10 89 5
11 90 5
12 91 6
13 92 6
14 93 7
15 93 7
16 94 8
17 95 8
18 97 9
19 99 9
결과를 해석하는 방법은 다음과 같습니다.
- 데이터 값 56은 백분위수 0%와 10% 사이에 있으므로 십분위수 0 에 속합니다.
- 데이터 값 58은 백분위수 0%와 10% 사이에 있으므로 십분위수는 0 입니다.
- 데이터 값 64는 10%와 20% 백분위수 사이에 있으므로 십분위수 1 에 속합니다.
- 데이터 값 67은 10%와 20% 백분위수 사이에 속하므로 십분위수 1 에 속합니다.
- 데이터 값 68은 20%와 30% 백분위수 사이에 속하므로 십분위수 2 에 속합니다.
등등.