Диаграмма с ошибками (error bars, error bands)

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

Ключевые элементы представления:

  • центральная оценка (mean, median или иная агрегированная метрика)
  • нижняя граница интервала
  • верхняя граница интервала

Форма представления неопределённости может быть двух типов:

  • error bars — вертикальные или горизонтальные «усики» с фиксированными границами
  • error bands — закрашенные области между верхней и нижней границей

Обе формы опираются на статистические преобразования внутри Vega-Lite или заранее вычисленные значения в Vega.


Модель данных и агрегирование

Vega-Lite поддерживает автоматическое агрегирование данных, что критично для построения error bars и error bands.

Типовая структура данных:

[
  {"category": "A", "value": 10},
  {"category": "A", "value": 12},
  {"category": "A", "value": 9},
  {"category": "B", "value": 20},
  {"category": "B", "value": 18}
]

Агрегация выполняется через поле aggregate:

  • mean — среднее значение
  • median — медиана
  • stdev — стандартное отклонение
  • stderr — стандартная ошибка
  • ci0, ci1 — границы доверительного интервала

Error Bars в Vega-Lite

Error bars представляют собой линейные маркеры неопределённости вокруг центрального значения.

Базовая идея:

  • вычисляется агрегированное значение
  • строится интервал вокруг него
  • визуализируется вертикальной или горизонтальной линией с «усами»

Базовая конфигурация error bars

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "values": [
      {"group": "A", "value": 10},
      {"group": "A", "value": 12},
      {"group": "A", "value": 9},
      {"group": "B", "value": 20},
      {"group": "B", "value": 18},
      {"group": "B", "value": 22}
    ]
  },
  "mark": "errorbar",
  "encoding": {
    "x": {"field": "group", "type": "nominal"},
    "y": {
      "field": "value",
      "type": "quantitative",
      "aggregate": "mean"
    },
    "extent": {
      "value": "ci"
    }
  }
}

Варианты параметра extent

extent определяет способ вычисления интервала:

  • "ci" — доверительный интервал (по умолчанию)
  • "stderr" — стандартная ошибка
  • "stdev" — стандартное отклонение
  • числовое значение — фиксированное отклонение

Горизонтальные error bars

Ориентация диаграммы определяется типами полей:

{
  "mark": "errorbar",
  "encoding": {
    "x": {
      "field": "value",
      "type": "quantitative",
      "aggregate": "mean"
    },
    "y": {"field": "group", "type": "nominal"},
    "extent": {"value": "stdev"}
  }
}

Перестановка осей меняет ориентацию без изменения статистической логики.


Error Bands в Vega-Lite

Error bands представляют диапазон неопределённости в виде заполненной области между нижней и верхней границей.

Они используются, когда важно показать не только дискретный интервал, но и его плотность в пространстве графика.

Базовая структура error band

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "values": [
      {"x": 1, "y": 10},
      {"x": 2, "y": 12},
      {"x": 3, "y": 15},
      {"x": 4, "y": 14},
      {"x": 5, "y": 18}
    ]
  },
  "mark": "errorband",
  "encoding": {
    "x": {"field": "x", "type": "quantitative"},
    "y": {
      "field": "y",
      "type": "quantitative",
      "aggregate": "mean"
    },
    "extent": {"value": "ci"}
  }
}

Различие между error bars и error bands

Характеристика Error bars Error bands
Представление Линия с границами Закрашенная область
Восприятие плотности Слабое Сильное
Подходит для Дискретных категорий Непрерывных рядов
Перегруженность визуала Низкая Выше

Error bars чаще применяются для категориальных сравнений, error bands — для временных рядов и функций.


Ручное вычисление границ

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

Пример структуры:

{
  "category": "A",
  "mean": 10,
  "lower": 8,
  "upper": 12
}

Использование в Vega-Lite:

{
  "mark": "errorbar",
  "encoding": {
    "x": {"field": "category", "type": "nominal"},
    "y": {"field": "lower", "type": "quantitative"},
    "y2": {"field": "upper"},
    "color": {"value": "black"}
  }
}

При таком подходе статистический слой полностью выносится из спецификации визуализации.


Комбинированные визуализации

Часто error bars и error bands накладываются на основной график.

Пример: линия среднего значения + band неопределённости.

{
  "layer": [
    {
      "mark": "line",
      "encoding": {
        "x": {"field": "x", "type": "quantitative"},
        "y": {"field": "y", "aggregate": "mean"}
      }
    },
    {
      "mark": "errorband",
      "encoding": {
        "x": {"field": "x", "type": "quantitative"},
        "y": {"field": "y", "aggregate": "mean"},
        "extent": {"value": "stderr"}
      }
    }
  ]
}

Лэйеры позволяют разделять:

  • центральную тенденцию
  • диапазон вариативности

Настройка внешнего вида

В Vega-Lite визуальные параметры управляются через mark:

Error bars

"mark": {
  "type": "errorbar",
  "color": "black",
  "ticks": true
}

Error bands

"mark": {
  "type": "errorband",
  "opacity": 0.3,
  "color": "steelblue"
}

Ключевые параметры:

  • opacity — прозрачность зоны неопределённости
  • color — цвет интервала
  • ticks — отображение «усиков»

Работа с группировкой

Группировка данных критична для корректного отображения интервалов.

Пример группировки по категориям:

"encoding": {
  "x": {"field": "category", "type": "nominal"},
  "y": {
    "field": "value",
    "type": "quantitative",
    "aggregate": "mean"
  },
  "color": {"field": "series", "type": "nominal"}
}

Группы определяют отдельные полосы неопределённости для каждого ряда данных.


Частотные ошибки при построении

Некорректные конфигурации обычно связаны с:

  • отсутствием агрегирования при использовании error bars
  • смешением категориальных и количественных шкал
  • неправильным применением extent
  • попыткой использовать error band без непрерывной оси

Особенно критично отсутствие aggregate, поскольку интервал без центрального значения теряет смысл в контексте Vega-Lite.


Использование доверительных интервалов

Доверительные интервалы (ci) являются наиболее распространённым вариантом в статистических визуализациях.

Математически интервал строится на основе распределения выборки и стандартной ошибки среднего. В Vega-Lite это абстрагируется через параметр:

"extent": {"value": "ci"}

или более явно:

"extent": "ci"

Внутренний расчёт выполняется автоматически на основе доступных данных.


Сравнение способов задания неопределённости

  • автоматическое через extent
  • статистическое через aggregate
  • ручное через y / y2

Каждый способ выбирается в зависимости от уровня контроля над данными.