Как рассчитать децили в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *