Различные значения Q1 и Q3 в расчете python от TI-nspire - PullRequest
1 голос
/ 28 января 2020

Я рассчитал верхний квартиль (Q3 или 75% -тиль) и нижний квартиль (Q1 или 25% -тиль), используя Numpy / Pandas и TI-nspire. Но я получаю разные значения. Почему это происходит?

Из (5 + 8) /2=6.5 и (18 + 21) /2=19.5 Numpy / Pandas Q1 и Q3 неверны. Почему Numpy / Pandas возвращает неправильные числа?

import numpy as np

data=np.array([2,4,5,8,10,11,12,14,17,18,21,22,25])

q75, q25 = np.percentile(data, [75 ,25])
print(q75,q25)


df=pd.DataFrame(data)
df.describe()

Numpy возвращает 18,0 и 8,0. Pandas возврат 18,0 и 8,0. Но TI-nspire возвращает 19,5 и 6,5.

enter image description here

enter image description here

Ответы [ 2 ]

1 голос
/ 29 января 2020

Вас ожидает угощение. Они оба правы.

В отличие от большинства других дескрипторов, существует несколько различных определений Q1 и Q3. Для набора данных с большим количеством наблюдений различные определения будут давать более или менее одинаковый результат. Для небольших наборов данных вы увидите различия - как вы уже видели.

Mathword перечисляет 5 (пять!) Различных способов вычисления квартилей. См http://mathworld.wolfram.com/Quartile.html

1 голос
/ 29 января 2020

Этот пост и этот пост помогли мне понять это.

Итак, если у вас есть [7, 15, 36, 39, 40, 41], тогда 7 -> 0%, 15 -> 20%, 36 -> 40%, 39 -> 60%, 40 -> 80%, 41 -> 100%.

По умолчанию interpolation является линейным , Таким образом, он использует i + (j - i) * дробь. Вы можете установить интерполяцию на среднюю точку, которая вычисляет (i + j) / 2.

import numpy as np

data=np.array([7,15,36,39,40,41])
linear = np.percentile(data, [25, 50, 75], interpolation='linear')
mid = np.percentile(data, [25, 50, 75], interpolation='midpoint')
low = np.percentile(data, [25, 50, 75], interpolation='lower')
high = np.percentile(data, [25, 50, 75], interpolation='higher')
nearest = np.percentile(data, [25, 50, 75], interpolation='nearest')
print(linear,mid,low,high,nearest)
print(15,37.5,40)

Выход:

enter image description here

Так что я обнаружил, что нет точного способа найти Q1 и Q3 в Pandas / Numpy как TI-nspire.

...