Локальная и ядерная регрессия (непараметрическая)

Этот вопрос был вызван запросом одного из клиентов относительно двух наших непараметрических функций подгонки данных: NxLOCREG(.) и NxKREG(.). Клиент написал:

Исследование 1:

"Мне нужна помощь в понимании функций NxLOCREG и NxKREG.

  1. Для NxLOCREG и NxKREG – если Y составляет 100 точек данных, а Alpha = 0,333, означает ли это, что алгоритм анализирует последние 33 точки данных или распределение каждой третьей точки?
  2. Я могу использовать только полиномы до 3-го порядка (кубические). Все, что больше, возвращается как #NUM! Позволяют ли алгоритмы использовать более высокие порядки?
  3. Я не совсем понимаю разницу между NxLOCREG и NxKREG. Не могли бы вы дать мне краткое объяснение?"

Функция NxLOCREG(.) реализует алгоритм локализованной регрессии - LOESS, он же фильтр Савицкого-Голая.

Функция NxKREG(.) реализует взвешенную регрессию по методу наименьших квадратов.

Эти две функции очень похожи, но у NxLOCREG(.) есть дополнительный аргумент: Alpha или H, который может принимать значение от нуля (исключая) до 1 (включая). В результате функция NxLOCREG выбирает ближайшие точки данных H*N, в то время как NxKREG (.) всегда включает весь набор данных (т. е. N).

Если говорить более подробно, то при заданном значении X процедура ядерной регрессии выглядит следующим образом:

  • Рассчитайте расстояние между целевым значением и точками данных в выборке.
  • Сортировка точек данных на основе расстояния между ними в порядке возрастания.
  • Выберите набор исходных данных для регрессии:
    • (случай NxLOCREG) Выбор ближайших (т.е. первых) точек данных H*N.
    • (случай NxKREG) Выберите все N точек данных.
  • Рассчитайте веса выбранных точек данных с помощью заданной функции Kernel.
  • Проведите регрессионную модель взвешенных наименьших квадратов.
  • Рассчитайте значение регрессии при значении X.

Процедура/алгоритм использует H*N точек данных, которые ближе всего к целевому значению, поэтому для каждого значения будет построена своя регрессионная модель с (возможно) другим набором данных.

Если Alpha = 1.0, то при сохранении всех остальных аргументов функции NxKREG(.) и NxLOCREG(.) вернут идентичные результаты.

В настоящее время функции NxLOCREG(.) и NxKREG(.) поддерживают полиномы порядка до 3 (кубические).

Независимо от выбранной взвешивающей функции ядра, нам необходимо значение полосы пропускания (она же параметр сглаживания). NumXL использует метод выбора полосы пропускания на основе данных, минимизируя RMSE для кросс-валидации.

Вкратце, для заданной полосы пропускания мы рассчитываем значение регрессии для каждой точки данных (с помощью перекрестной проверки с оставлением без изменений) и вычисляем RMSE между значениями регрессии и фактическими значениями.

Исследование 2:

"Так, если в наших данных есть всплеск, некоторые из точек этого всплеска могут отсутствовать в наборе данных регрессии."

Это зависит от того, как вы определяете понятие "Spike". Если Spike - это ссылка на выброс (большое значение Y), то этот метод будет включать точки данных с выбросами. Тем не менее, эти точки данных могут быть взвешены на основе их евклидова расстояния от целевого значения.

С другой стороны, если Spike является ссылкой на удаленную точку данных в области x, то эти удаленные точки данных будут иметь значительный вес в регрессии.

Исследование 3:

"Похоже, что стандартное сглаживание диаграммы рассеяния в Excel основано на функции LOESS. Если я хочу рассчитать промежуточные значения вручную, какая функция по умолчанию используется в Excel для создания локализованного сглаживания?"

Да, мы полагаем, что Microsoft Excel использует алгоритм LOESS для генерации сглаженных линий на диаграмме рассеяния. Вы можете использовать функцию NxLOCREG(.), но мы не можем быть уверены в используемых значениях параметров, например, функции ядра, порядка полинома или значения альфа.

Загрузите полнофункциональный, бесплатный 14-дневная пробная версия NumXL, чтобы проверить или применить эти функции к собственным данным.

Обязательно загляните в Советы и рекомендации and Подбор данных В разделах вы найдете другие статьи, которые могут вас заинтересовать.

  Вложения

Комментарии

Войдите в службу, чтобы оставить комментарий.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0