Як обчислити децилі в python: із прикладами


У статистиці децилі — це числа, які ділять набір даних на десять груп однакової частоти.

Перший дециль – це точка, де 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 .

І так далі.

Додаткові ресурси

Як обчислити процентили в Python
Як обчислити інтерквартильний діапазон у Python

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *