Каналы xError, yError, xError2, yError2

В Vega-Lite каналы xError, yError, xError2, yError2 предназначены для визуализации погрешностей, доверительных интервалов и диапазонов неопределённости, связанных с измерениями или агрегированными данными. Эти каналы расширяют стандартную систему encoding, позволяя задавать не только точечные значения, но и интервальные представления вдоль осей координат.

Общая модель представления ошибок

Vega-Lite рассматривает погрешность как интервал вокруг центрального значения. Этот интервал может быть:

  • симметричным (одинаковое отклонение вверх и вниз),
  • асимметричным (разные верхняя и нижняя границы),
  • вычисленным заранее (через поля данных),
  • агрегированным (например, стандартная ошибка, доверительный интервал).

Каналы ошибок интегрируются в геометрические примитивы (чаще всего errorbar, rule, rect) и не существуют как самостоятельные marks, а интерпретируются как дополнительные параметры позиционирования.


Канал yError

yError задаёт симметричное отклонение по оси Y относительно основного значения y.

Формат данных

Используется одно поле, содержащее величину ошибки:

{
  "y": 50,
  "yError": 5
}

Интерпретация:

  • нижняя граница: y - 5
  • верхняя граница: y + 5

Применение в Vega-Lite

{
  "mark": "errorbar",
  "encoding": {
    "x": {"field": "category", "type": "nominal"},
    "y": {"field": "value", "type": "quantitative"},
    "yError": {"field": "error", "type": "quantitative"}
  }
}

Особенности

  • применяется только для оси Y;
  • предполагает симметричность;
  • используется в сочетании с агрегированными значениями (mean, stdev).

Канал xError

xError является аналогом yError, но для горизонтальной оси X. Он задаёт симметричный интервал неопределённости вдоль X.

Формат данных

{
  "x": 100,
  "xError": 12
}

Интерпретация:

  • левая граница: x - 12
  • правая граница: x + 12

Пример использования

{
  "mark": "errorbar",
  "encoding": {
    "x": {"field": "value", "type": "quantitative"},
    "xError": {"field": "error", "type": "quantitative"},
    "y": {"field": "group", "type": "nominal"}
  }
}

Характерные сценарии

  • физические измерения с погрешностью вдоль шкалы времени;
  • статистические интервалы для одномерных значений;
  • горизонтальные error bars в сравнительных графиках.

Каналы xError2 и yError2

Каналы xError2 и yError2 задают вторую границу интервала. В отличие от xError и yError, которые предполагают симметрию, пары Error / Error2 позволяют явно задать асимметричный диапазон.

Семантика

  • xError — нижняя граница по X
  • xError2 — верхняя граница по X
  • yError — нижняя граница по Y
  • yError2 — верхняя граница по Y

Асимметричные интервалы по Y

{
  "mark": "errorbar",
  "encoding": {
    "x": {"field": "category"},
    "y": {"field": "value"},
    "yError": {"field": "y_low"},
    "yError2": {"field": "y_high"}
  }
}

Интерпретация

Каждая точка имеет индивидуальный интервал:

  • нижняя граница берётся из yError
  • верхняя граница берётся из yError2

Это позволяет отображать:

  • доверительные интервалы (например, 95% CI),
  • межквартильные диапазоны (Q1–Q3),
  • пользовательские границы неопределённости.

Асимметричные интервалы по X

{
  "mark": "errorbar",
  "encoding": {
    "x": {"field": "value"},
    "xError": {"field": "x_low"},
    "xError2": {"field": "x_high"},
    "y": {"field": "group"}
  }
}

Применение

  • интервальные оценки времени (например, задержки доставки);
  • диапазоны цен;
  • диапазоны измерений приборов.

Взаимодействие с mark errorbar

Каналы ошибок наиболее часто используются с mark errorbar, который автоматически интерпретирует пары значений и строит визуальные элементы:

  • вертикальные линии (для yError),
  • горизонтальные линии (для xError),
  • «усики» (caps) на концах интервала.

Пример полной спецификации:

{
  "data": {"values": [
    {"group": "A", "value": 10, "low": 8, "high": 13}
  ]},
  "mark": "errorbar",
  "encoding": {
    "x": {"field": "group", "type": "nominal"},
    "y": {"field": "value", "type": "quantitative"},
    "yError": {"field": "low"},
    "yError2": {"field": "high"}
  }
}

Сравнение симметричных и асимметричных каналов

Тип Каналы Семантика Использование
Симметричный Y yError ± одинаковая погрешность стандартное отклонение
Симметричный X xError ± одинаковая погрешность простые интервалы
Асимметричный Y yError + yError2 независимые границы доверительные интервалы
Асимметричный X xError + xError2 независимые границы диапазон значений

Связь с агрегатами Vega-Lite

Каналы ошибок часто вычисляются через трансформации:

"transform": [
  {"aggregate": [
    {"op": "mean", "field": "value", "as": "avg"},
    {"op": "stdev", "field": "value", "as": "sd"}
  ], "groupby": ["category"]}
]

Далее:

"y": {"field": "avg"},
"yError": {"field": "sd"}

Визуальные паттерны

Интервальные столбцы

При использовании с bar каналы ошибок формируют «усики» над столбцами:

  • центральное значение — высота столбца,
  • yError — нижняя граница,
  • yError2 — верхняя граница.

Точечные диаграммы с погрешностями

При использовании с point или circle:

  • точка — измерение,
  • error bars — диапазон неопределённости.

Обработка данных для error channels

Данные для каналов могут быть представлены в нескольких форматах:

1. Абсолютные значения

{
  "value": 10,
  "low": 8,
  "high": 12
}

2. Относительные отклонения

{
  "value": 10,
  "error": 2
}

3. Процентные интервалы (через transform)

{
  "value": 10,
  "error": 0.2
}

Поведение при отсутствии значений

Если один из каналов отсутствует:

  • yError без yError2 трактуется как симметричный интервал;
  • xError без xError2 аналогично;
  • отсутствие обоих приводит к отсутствию error bar для конкретной точки.

Геометрическая интерпретация

В пространстве координат:

  • xError / xError2 формируют горизонтальный отрезок;
  • yError / yError2 формируют вертикальный отрезок;
  • пересечение с точкой данных определяет центр распределения.

Практические ограничения

  • error channels не работают вне количественных шкал (quantitative);
  • требуют непрерывных координат;
  • могут конфликтовать с дискретными шкалами без дополнительной трансформации;
  • не поддерживаются для всех mark-типов (например, arc или text).

Комбинация с другими encoding-каналами

Error channels часто используются вместе с:

  • color — различие групп;
  • size — дополнительная метрика;
  • shape — категориальная дифференциация.

Пример:

{
  "encoding": {
    "x": {"field": "group"},
    "y": {"field": "mean"},
    "color": {"field": "series"},
    "yError": {"field": "ci_low"},
    "yError2": {"field": "ci_high"}
  }
}

Поведение в faceting

При использовании facet error bars вычисляются отдельно для каждой подгруппы:

  • каждая панель имеет независимые интервалы;
  • агрегаты не пересекаются между фасетами;
  • error channels остаются локальными для каждой группы данных.