В статистике многомерные адаптивные регрессионные сплайны ( MARS ) — это форма регрессионного анализа, введенная Джеромом Х. Фридманом в 1991 году. [1] Это непараметрический метод регрессии, который можно рассматривать как расширение линейных моделей , которое автоматически моделирует нелинейности и взаимодействия между переменными.
Термин «MARS» является торговой маркой и лицензирован Salford Systems. Чтобы избежать нарушения прав на торговую марку, многие реализации MARS с открытым исходным кодом называются «Earth». [2] [3]
В этом разделе мы знакомимся с MARS на нескольких примерах. Начнем с набора данных: матрицы входных переменных x и вектора наблюдаемых ответов y с ответом для каждой строки в x . Например, данные могут быть такими:
Здесь есть только одна независимая переменная , поэтому матрица x — это всего лишь один столбец. Учитывая эти измерения, мы хотели бы построить модель, которая предсказывает ожидаемое y для заданного x .
Линейная модель для приведенных выше данных:
Шляпа на означает, что оценивается по данным. Рисунок справа показывает график этой функции: линия, дающая предсказанное значение в зависимости от x , с исходными значениями y, показанными в виде красных точек.
Данные в крайних значениях x указывают на то, что связь между y и x может быть нелинейной (посмотрите на красные точки относительно линии регрессии при низких и высоких значениях x ). Таким образом, мы обращаемся к MARS для автоматического построения модели с учетом нелинейности. Программное обеспечение MARS строит модель из заданных x и y следующим образом
Рисунок справа показывает график этой функции: предсказанное против x , с исходными значениями y, снова показанными как красные точки. Предсказанный ответ теперь лучше соответствует исходным значениям y .
MARS автоматически создал перегиб в предсказанном y , чтобы учесть нелинейность. Перегиб создается шарнирными функциями . Шарнирные функции — это выражения, начинающиеся с (где if , else ). Шарнирные функции более подробно описаны ниже.
В этом простом примере мы можем легко увидеть из графика, что y имеет нелинейную связь с x (и, возможно, догадаться, что y меняется пропорционально квадрату x ). Однако, в общем случае будет несколько независимых переменных , и связь между y и этими переменными будет неясной и нелегко увидеть при построении графика. Мы можем использовать MARS, чтобы обнаружить эту нелинейную связь.
Пример выражения MARS с несколькими переменными:
Это выражение моделирует загрязнение воздуха (уровень озона) как функцию температуры и нескольких других переменных. Обратите внимание, что последний член в формуле (в последней строке) включает взаимодействие между и .
Рисунок справа отображает прогнозируемые значения и , а другие переменные зафиксированы на своих медианных значениях. Рисунок показывает, что ветер не влияет на уровень озона, если только видимость не низкая. Мы видим, что MARS может строить довольно гибкие поверхности регрессии, комбинируя функции шарнира .
Чтобы получить приведенное выше выражение, процедура построения модели MARS автоматически выбирает, какие переменные использовать (некоторые переменные важны, другие нет), положения перегибов в шарнирных функциях и способ комбинирования шарнирных функций.
MARS строит модели вида
Модель представляет собой взвешенную сумму базисных функций . Каждая из них является постоянным коэффициентом. Например, каждая строка в формуле для озона выше представляет собой одну базисную функцию, умноженную на ее коэффициент.
Каждая базисная функция принимает одну из следующих трех форм:
1) константа 1. Существует только один такой член, отсекаемый член. В приведенной выше формуле озона отсекаемый член равен 5,2.
2) шарнирная функция. Шарнирная функция имеет вид или . MARS автоматически выбирает переменные и значения этих переменных для узлов шарнирных функций. Примеры таких базисных функций можно увидеть в средних трех строках формулы озона.
3) произведение двух или более шарнирных функций. Эти базисные функции могут моделировать взаимодействие между двумя или более переменными. Примером может служить последняя строка формулы озона.
Ключевой частью моделей MARS являются шарнирные функции, принимающие форму
или
где — константа, называемая узлом . На рисунке справа показана зеркальная пара функций шарнира с узлом в точке 3.1.
Функция шарнира равна нулю для части своего диапазона, поэтому может использоваться для разбиения данных на непересекающиеся области, каждая из которых может обрабатываться независимо. Так, например, зеркальная пара функций шарнира в выражении
создает кусочно -линейный график, показанный для простой модели MARS в предыдущем разделе.
Можно предположить, что из шарнирных функций можно сформировать только кусочно-линейные функции, но шарнирные функции можно перемножать, образуя нелинейные функции.
Функции шарнира также называются пандусом , хоккейной клюшкой или выпрямительной функцией. Вместо обозначения, используемого в этой статье, функции шарнира часто представляются с помощью где средства принимают положительную часть.
MARS строит модель в два этапа: прямой и обратный проход. Этот двухэтапный подход аналогичен подходу, используемому рекурсивными деревьями разбиения .
MARS начинается с модели, которая состоит только из свободного члена (который является средним значением отклика).
Затем MARS многократно добавляет базисную функцию парами к модели. На каждом шаге он находит пару базисных функций, которая дает максимальное снижение остаточной ошибки суммы квадратов (это жадный алгоритм ). Две базисные функции в паре идентичны, за исключением того, что для каждой функции используется другая сторона зеркальной функции шарнира. Каждая новая базисная функция состоит из члена, уже имеющегося в модели (который, возможно, может быть отсекаемым членом), умноженного на новую функцию шарнира. Функция шарнира определяется переменной и узлом, поэтому для добавления новой базисной функции MARS должен выполнить поиск по всем комбинациям следующего:
1) существующие термины (в данном контексте называемые родительскими терминами )
2) все переменные (чтобы выбрать одну для новой базисной функции)
3) все значения каждой переменной (для узла новой шарнирной функции).
Для расчета коэффициента каждого члена MARS применяет линейную регрессию к членам.
Этот процесс добавления членов продолжается до тех пор, пока изменение остаточной ошибки не станет слишком малым для продолжения или пока не будет достигнуто максимальное количество членов. Максимальное количество членов указывается пользователем перед началом построения модели.
Поиск на каждом шаге обычно выполняется методом грубой силы , но ключевым аспектом MARS является то, что из-за природы шарнирных функций поиск может быть выполнен быстро с использованием быстрого метода наименьших квадратов. Поиск методом грубой силы можно ускорить, используя эвристику, которая уменьшает количество родительских терминов, рассматриваемых на каждом шаге («Быстрый MARS» [4] ).
Прямой проход обычно переобучает модель. Чтобы построить модель с лучшей способностью к обобщению, обратный проход обрезает модель, удаляя наименее эффективный член на каждом шаге, пока не найдет лучшую подмодель. Подмножества моделей сравниваются с использованием критерия обобщенной перекрестной проверки (GCV), описанного ниже.
Обратный проход имеет преимущество перед прямым проходом: на любом шаге он может выбрать любой термин для удаления, тогда как прямой проход на каждом шаге может видеть только следующую пару терминов.
Прямой проход добавляет члены парами, но обратный проход обычно отбрасывает одну сторону пары, и поэтому члены часто не видны парами в окончательной модели. Парный шарнир можно увидеть в уравнении для в первом примере MARS выше; в примере с озоном не сохраняется ни одной полной пары.
Обратный проход сравнивает производительность различных моделей с использованием обобщенной перекрестной проверки (GCV), второстепенного варианта информационного критерия Акаике, который аппроксимирует оценку перекрестной проверки с исключением одного в особом случае, когда ошибки являются гауссовыми или когда используется квадратичная функция потери ошибок. GCV был введен Крейвеном и Вахбой и расширен Фридманом для MARS; более низкие значения GCV указывают на лучшие модели. Формула для GCV следующая:
где RSS — остаточная сумма квадратов, измеренная на обучающих данных, а N — количество наблюдений (количество строк в матрице x ).
Эффективное число параметров определяется как
где штраф обычно равен 2 (давая результаты, эквивалентные информационному критерию Акаике ), но может быть увеличен пользователем по его желанию.
Обратите внимание, что
— это число узлов шарнирной функции, поэтому формула штрафует добавление узлов. Таким образом, формула GCV корректирует (т. е. увеличивает) обучающий RSS, чтобы штрафовать более сложные модели. Мы штрафуем гибкость, потому что слишком гибкие модели будут моделировать конкретную реализацию шума в данных, а не просто систематическую структуру данных.
Одно ограничение уже упоминалось: пользователь может указать максимальное количество терминов в прямом проходе.
Дополнительное ограничение можно наложить на прямой проход, указав максимально допустимую степень взаимодействия. Обычно допускается только одна или две степени взаимодействия, но можно использовать и более высокие степени, если данные того требуют. Максимальная степень взаимодействия в первом примере MARS выше равна единице (т. е. отсутствие взаимодействий или аддитивная модель ); в примере с озоном она равна двум.
Возможны и другие ограничения на прямой проход. Например, пользователь может указать, что взаимодействия разрешены только для определенных входных переменных. Такие ограничения могут иметь смысл из-за знания процесса, который сгенерировал данные.
Ни один метод регрессионного моделирования не является лучшим для всех ситуаций. Приведенные ниже рекомендации призваны дать представление о плюсах и минусах MARS, но из рекомендаций будут исключения. Полезно сравнить MARS с рекурсивным разбиением , и это сделано ниже. (Рекурсивное разбиение также обычно называют деревьями регрессии , деревьями решений или CART ; подробности см. в статье о рекурсивном разбиении ).
earth
, mda
, и polspline
не допускают пропусков значений в предикторах, но свободные реализации деревьев регрессии (такие как rpart
и party
) допускают пропуски значений, используя метод, называемый суррогатным разбиением.Для настройки моделей типа MARS доступно несколько бесплатных и коммерческих пакетов программного обеспечения.
earth
функция в earth
пакетеmars
функция в mda
пакетеpolymars
Функция в polspline
пакете. Не МАРС Фридмана.bass
функция в BASS
пакете для байесовского MARS.