Обзор пакета SOP База данных для работы - данные по округам США (за 2017 год). Задача: сравнить точность построенных моделей регрессии с использованием P-сплайнов при прогнозировании средней величины дохода в округе (переменная Income) Алгоритм работы: С помощью алгоритмов отбора признаков (возьмем, к примеру, недавно придуманный алгоритм, имитирующий охоту горбатых китов; на русском - https://russianblogs.com/article/89241016039/) ранжируем признаки по порядку важности. Потом разделяем выборку на тренировочную и тестовую (80/20), строим уравнения регрессии (обычной и со сплайнами) с 1 и 2 переменными по тренировочной выборке, оцениваем степень точности прогнозов по тестовой выборке. Р-сплайн - модификация В-сплайнов, впервые представленная в 1996 году в статье Поля Эйлера и Брайана Маркса (https://projecteuclid.org/journals/statistical-science/volume-11/issue-2/Flexible-smoothing-with-B-splines-and-penalties/10.1214/ss/1038425655.full). В-сплайн представляет собой конструкцию вида  где n - степень полинома Соответственно, сумма таких сплайнов позволяет подогнать почти любую функцию при достаточном количестве узлов разбиения t. Задача аппроксимации В-сплайна, таким образом, сводится к минимизации функционала  относительно вектора параметров а (здесь уже n - количество полиномов, m - число наблюдений в совокупности). Однако тут мы попадаем в классическую ловушку построения полиномиальных моделей - идеальная аппроксимация ведет к переобучению, что на графике отображается примерно вот так Для предотвращения такого эффекта был введен штраф на значительные изменения значений переменной, и оптимизируемая функция стала выглядеть так: Оригинальная статья Эйлера и Маркса, во-первых, содержит рекомендации по упрощению процедуры оптимизации этого выражения (путем преобразования второго слагаемого), во-вторых (и самых главных) по-другому ставит задачу, переводя ее в вероятностную плоскость - давайте подберем такие значения а, для которых вероятность появления штрафной функции будет минимальна (это и есть Р-сплайны - сплайны со штрафом). Остальные 28 страниц этой статьи посвящены решению этой задачи и комментариям рецензентов, нам важно зафиксировать постановку задачи и тот факт, что задача решалась для одномерного случая, и то, что параметр сглаживания предлагалось подбирать вручную с помощью AIC-критерия. В 2014 (https://link.springer.com/article/10.1007/s11222-014-9464-2) и 2018 году (https://arxiv.org/abs/1801.07278) мультинациональная группа исследователей под руководством Поля Эйлера представила две статьи, в которых изложена модификация метода аппроксимации Р-сплайнами, реализованная для случая нескольких переменных и с автоматическим вычислением оптимального коэффициента сглаживания. В 2021 году этот алгоритм был реализован на языке программирования R в пакете SOP. Первая часть - получаем список переменных, отсортированных по убыванию важности (берем 20 подвыборок по 80 % от основной выборки, проводим отбор признаков по подвыборке и потом считаем, сколько раз переменные оказались выбраны в модель) Таким образом, две переменные, наиболее сильно влияющие на средний доход в округе - доля бедных (как неожиданно) и доля работающих. Построим сначала простую линейную модель для переменной Poverty Теперь построим модель с P-сплайном. Важно - синтаксис построения модели отличается, в записи формулы должна быть обязательно переменная вида f(name_var_1, ...) или ad(name_var), где f(name_var_1, ...) обозначает построение одно- или многомерного сплайна без адаптивного сглаживания, а ad(name_var) - построение сплайна от конкретной переменной с адаптивным сглаживанием.  Построим модель без адаптивного сглаживания Коэффициенты, кстати, получились совершенно иными.Построим теперь модель с адаптивным сглаживанием. В некоторых случаях (как в первой строке выше) при заданных параметрах возникают проблемы с расчетами. Тогда можно повысить степень полинома у сплайна (параметр degree) и повысить степень производной в штрафующем коэффициенте (параметр pord). Тогда автоматически и усложнится само уравнение регрессии - в нашем случае оно получилось кубическим. Результаты модели с 2 переменными, коэффициенты которой посчитаны с помощью МНК, выглядят так: Модель без адаптивного сглаживания с 2 переменными строится так Вполне можно одну переменную использовать и саму по себе, без сплайнов, а вторую - со сплайнами Также можно построить модель с адаптивным сглаживанием разных порядков для разных переменных Сводим результаты всех моделей в одну табличку Видим, что модель с 2 переменными без адаптивного сглаживания обладает наименьшей средней ошибкой, более 15 % наблюдений на тестовой выборке предсказаны с погрешностью менее 5 %, а почти 42 % наблюдений - с погрешностью менее 15 %. Соответственно, эта модель значительно качественнее, чем обычные линейные модели, а сам метод P-сплайнов может эффективно применяться в случае невыполнения условий Гаусса-Маркова и смещенности оценок МНК, а также может использоваться и для подбора видов полиномиальных зависимостей (все материалы можно найти на https://github.com/acheremuhin/P-spline).