Как рассчитать децили в Python (с примерами)


В статистике децили — это числа, которые разбивают набор данных на десять групп с одинаковой частотой.

Первый дециль — это точка, ниже которой лежат 10% всех значений данных. Второй дециль — это точка, ниже которой лежат 20% всех значений данных, и так далее.

Мы можем использовать следующий синтаксис для вычисления децилей для набора данных в Python:

import numpy as np

np.percentile (var, np.arange (0, 100, 10))

В следующем примере показано, как использовать эту функцию на практике.

Пример: вычисление децилей в Python

В следующем коде показано, как создать поддельный набор данных с 20 значениями, а затем вычислить значения для децилей набора данных:

import numpy as np

#create data
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
np.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

Чтобы поместить каждое значение данных в дециль, мы можем использовать функцию qcut pandas.

Вот как использовать эту функцию для набора данных, который мы создали в предыдущем примере:

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.