Нормальная модель с переменным масштабом
Это следующая модель после simple_fit: она меняет только один компонент уже знакомой нормальной модели и впервые показывает вероятностную регрессию в действии.
Постановка задачи
Сгенерируем достаточно много наблюдений на равномерной сетке по модели
Средняя линия остаётся простой прямой, но облако наблюдений раскрывается вправо веером. Синтетические данные здесь полезнее реальных: правильный механизм известен заранее, поэтому читатель может связать каждый видимый эффект с конкретным параметром модели, а не с неизвестной предварительной обработкой или пропущенным признаком.
Данные должны генерироваться детерминированно и делиться на обучающую, валидационную и тестовую части так, чтобы в каждой из них оставался весь диапазон x. Случайное зерно, способ генерации и разбиение входят в исполняемый пример.
Сравниваемые спецификации модели
Базовая модель повторяет предыдущую главу:
Вероятностная модель добавляет x только в предиктор масштаба:
У три коэффициента, у четыре. Семейство остаётся Normal::<Identity, Log>, link-функции остаются прежними, а блок mu вообще не меняется. В коде Rust существенное изменение сводится к замене плана только со свободным членом для Sigma на план с колонками [1, x_i]:
let sigma_rows = x.map(|x_i| [1.0, x_i]);
let sigma = ParameterBlock::<Sigma, _, _>::linear(
DenseDesign::from_rows(&sigma_rows),
NoPenalty,
mu.len(),
);
Именно это небольшое изменение составляет смысл главы: в GAMLSS новый регрессионный вопрос обычно выражается новым блоком предиктора для конкретного параметра, а не заменой всей модели.
Критерии сравнения
Сравнение должно быть проведено на одних и тех же тестовых строках и включать не только точечную метрику.
| Проверка | Ожидаемое поведение |
|---|---|
Предсказанное mu(x) | Почти одинаковая прямая у и |
| RMSE условного среднего | Близкие значения; метрика почти не видит улучшение модели масштаба |
| Отрицательное логарифмическое правдоподобие на тестовой части | Ниже у , если меняющийся масштаб восстановлен |
| CRPS | Обычно ниже у ; улучшение отражает и положение, и ширину распределения |
| 50% и 90% интервалы | У постоянная ширина, у интервалы раскрываются вместе с данными |
Покрытие по диапазонам x | слишком широк слева и слишком узок справа; ближе к номинальному уровню в каждом диапазоне |
PIT по диапазонам x | Условная некалиброванность видна даже тогда, когда общая PIT-гистограмма выглядит терпимо |
Последний пункт особенно важен: маргинальная калибровка может скрыть две противоположные ошибки в разных частях пространства признаков. Поэтому PIT следует смотреть не только в целом, но и по заранее выбранным диапазонам x.
Интерпретация коэффициента предиктора масштаба
Так как используется логарифмическая link-функция,
Следовательно, gamma_1 задаёт мультипликативное изменение условного стандартного отклонения при увеличении x на единицу. Это не эффект x на средний отклик и не добавка к дисперсии. Глава должна показать интерпретацию и на шкале предиктора, и на естественной шкале sigma.
Границы рассматриваемой модели
В этой главе не нужны новое семейство, сплайны, штрафы, категориальные признаки, преобразование отклика или сложный API оптимизатора. Надёжный оптимизатор можно подключить через уже готовый адаптер, но его устройство следует вынести в отдельную техническую вставку. Одновременное добавление нескольких возможностей уничтожит контролируемое сравнение и .
Структура воспроизводимого примера
Полный examples/heteroscedastic_normal.rs должен выполнять одну воспроизводимую последовательность действий:
- Сгенерировать данные и выполнить фиксированное чередующееся разбиение.
- Собрать и из одинакового плана
mu. - Обучить обе модели с одинаковыми критериями остановки.
- Проверить конечность целевой функции, норму градиента и статус оптимизатора.
- Получить параметры, квантили и интервалы на тестовой части.
- Напечатать одну компактную таблицу с RMSE, NLL, CRPS и покрытием.
- Сохранить числовые ряды, из которых воспроизводится иллюстрация для книги.
Не следует подбирать гиперпараметры на тестовой выборке. В этой модели их почти нет, но привычка разделять валидацию и итоговую оценку понадобится уже в следующей главе со сплайнами и штрафами.
После этой главы переход к нелинейным mu(x) и sigma(x) требует заменить линейные матрицы плана на сплайн-предикторы, но не требует заново объяснять, зачем у масштаба есть собственная регрессия.