В чем разница между d3.scale.quantize() и d3.scale.quantile()? - программирование
Подтвердить что ты не робот

В чем разница между d3.scale.quantize() и d3.scale.quantile()?

В документах определены следующие определения:

квантование

.. вариант линейных шкал с дискретным, а не непрерывным диапазоном. Входной домен все еще непрерывный и разделен на равномерные сегменты на основе количества значений в (мощности) выходного диапазона.

квантиль

... сопоставить входной домен с дискретным диапазоном. Хотя входной домен является непрерывным и шкала примет любое разумное входное значение, входной домен указывается как дискретный набор значений. Количество значений в (мощности) выходного диапазона определяет количество квантилей, которые будут вычисляться из входного домена

Кажется, что они отображают непрерывные входные домены в набор дискретных значений. Может ли кто-нибудь осветить разницу?

4b9b3361

Ответ 1

"Карты раскраски" имеет большое визуальное объяснение.

Квантование:

F5mSQ.png

Quantile:

S7tKB.png

На графике рассеяния ранее горизонтальные полосы теперь вертикальны, так как цвета каждого места определяются его рангом, а не значением.

Здесь фрагмент кода в D3 v4, который показывает разные результаты в квантовании и квантиле.

const purples = [
  'purple1',
  'purple2',
  'purple3',
  'purple4',
  'purple5'
]
const dataset = [1, 1, 1, 1, 2, 3, 4, 5] // try [1, 2, 3, 4, 5] as well
const quantize = d3.scaleQuantize()
  .domain(d3.extent(dataset)) // pass the min and max of the dataset
  .range(purples)
const quantile = d3.scaleQuantile()
  .domain(dataset) // pass the entire dataset
  .range(purples)
console.log(quantize(3)) // purples[3]
console.log(quantile(3)) // purples[4]

Ответ 2

В общих чертах разница аналогична разнице между средним и средним.

Разница очевидна только тогда, когда количество значений во входном домене больше, чем количество значений в выходном домене. Лучше всего иллюстрируется примером .

Для шкалы quantize входной диапазон делится на равномерные сегменты в зависимости от выходного диапазона. То есть, количество значений в домене не имеет большого значения. Следовательно, он возвращает 1 для 0,2, так как 0,2 ближе к 1, чем 100.

Масштаб quantile основан на квантилях входного домена и как таковой влияет на количество значений в нем. Количество значений в выходном домене определяет только количество квантилей. По самой своей природе квантилиты отражают фактический список значений, а не только диапазон. Таким образом, ввод 0,2 возвращает 100 в качестве соответствующего квантиля ближе к 100.

Ответ 4

Разница, насколько я могу судить, заключается в том, что статистически квантили являются конечными, равными и равномерно распределенными дискретными блоками/ведрами, в которые ваши результаты просто падают. Разница заключается в том, что квантованный масштаб является непрерывной функцией, основанной на вашем дискретном вводе.

В принципе: квантование позволяет интерполяцию и экстраполяцию, когда квантиль заставляет значение в подмножество.

Так, например, если студент рассчитал оценку в 81,7% в квантованном масштабе, шкала квантилей процентилей просто скажет, что она имеет 81-ю процентиль. Там нет места для гибкости.