Я использую регрессионные модели LOESS в R, и я хочу сравнить результаты 12 разных моделей с различными размерами выборки. Я могу описать реальные модели более подробно, если это поможет с ответом на вопрос.
Вот размеры выборки:
Fastballs vs RHH 2008-09: 2002
Fastballs vs LHH 2008-09: 2209
Fastballs vs RHH 2010: 527
Fastballs vs LHH 2010: 449
Changeups vs RHH 2008-09: 365
Changeups vs LHH 2008-09: 824
Changeups vs RHH 2010: 201
Changeups vs LHH 2010: 330
Curveballs vs RHH 2008-09: 488
Curveballs vs LHH 2008-09: 483
Curveballs vs RHH 2010: 213
Curveballs vs LHH 2010: 162
Модель регрессии LOESS представляет собой поверхностную посадку, где местоположение X и местоположение Y каждого шага бейсбола используется для прогнозирования sw, вероятности колебательного удара. Тем не менее, я хотел бы сравнить все 12 из этих моделей, но установка одного и того же диапазона (т. Е. Диапазона = 0,5) будет иметь разные результаты, поскольку существует такой широкий диапазон размеров выборки.
Мой основной вопрос: как вы определяете продолжительность своей модели? Более высокий диапазон сглаживает подгонку больше, в то время как более низкий диапазон охватывает больше трендов, но вносит статистический шум, если данных слишком мало. Я использую более высокий диапазон для меньших размеров выборки и более низкий диапазон для больших размеров выборки.
Что мне делать? Какое хорошее правило при установке диапазона для моделей регрессии LOESS в R? Заранее спасибо!
источник
Ответы:
Часто используется перекрестная проверка, например, k- кратная, если цель состоит в том, чтобы найти соответствие с наименьшим среднеквадратичным отклонением. Разделите ваши данные на k групп и, поочередно оставляя каждую группу, подберите модель лесса, используя k -1 группы данных и выбранное значение параметра сглаживания, и используйте эту модель для прогнозирования для оставленной группы. Сохраните прогнозные значения для пропущенной группы и затем повторяйте, пока каждая из k групп не будет пропущена один раз. Используя набор предсказанных значений, вычислите RMSEP. Затем повторите все это для каждого значения параметра сглаживания, который вы хотите настроить. Выберите тот параметр сглаживания, который дает самое низкое среднеквадратическое значение в CV.
Это, как вы можете видеть, довольно сложно в вычислительном отношении. Я был бы удивлен, если бы не было альтернативы обобщенной перекрестной проверке (GCV) истинному CV, которую вы могли бы использовать с LOESS - Hastie и др. (Раздел 6.2) указывают, что это довольно просто сделать и рассматривается в одном из их упражнений ,
Я предлагаю вам прочитать раздел 6.1.1, 6.1.2 и 6.2, а также разделы по регуляризации сглаживающих сплайнов (так как содержание применимо и здесь) в главе 5 Hastie et al. (2009) Элементы статистического обучения: интеллектуальный анализ данных, логический вывод и прогноз . 2-е издание. Springer. PDF можно скачать бесплатно.
источник
Я предлагаю проверить обобщенные аддитивные модели (GAM, см. Пакет mgcv в R). Я просто узнаю о них сам, но они, кажется, автоматически выясняют, насколько "волнистость" оправдана данными. Я также вижу, что вы имеете дело с биномиальными данными (страйк против страйка), поэтому обязательно проанализируйте необработанные данные (т.е. не агрегируйте в пропорции, используйте необработанные данные шаг за шагом) и используйте family = 'binomial' (при условии, что вы собираетесь использовать R). Если у вас есть информация о том, какие отдельные питчеры и нападающие вносят вклад в данные, вы, вероятно, можете увеличить свою мощность, выполнив обобщенную аддитивную смешанную модель (GAMM, см. Пакет gamm4 в R) и указав питчера и нападающего в качестве случайных эффектов (и снова , установив семейство = 'биномиальное'). В заключение, Вы, вероятно, хотите разрешить взаимодействие между сглаживаниями X & Y, но я никогда сам не пробовал, поэтому не знаю, как это сделать. Модель gamm4 без взаимодействия X * Y будет выглядеть так:
Если подумать, вы, вероятно, хотите, чтобы сглаживание варьировалось в зависимости от уровня шага и уровня сложности теста. Это усложняет задачу, так как я еще не выяснил, как позволить сглаживаниям варьироваться по нескольким переменным таким образом, чтобы впоследствии производить содержательные аналитические тесты ( см. Мои запросы к списку R-SIG-Mixed-Models ). Вы можете попробовать:
Но это не даст значимых тестов сглаживания. Пытаясь решить эту проблему самостоятельно, я использовал повторную выборку при начальной загрузке, где на каждой итерации я получаю предсказания модели для полного пространства данных, а затем вычисляю 95% КИ начальной загрузки для каждой точки в пространстве и любые эффекты, которые я хочу вычислить.
источник
Для регрессии Лесса я понимаю, что я не статистик, что вы можете выбрать свой диапазон на основе визуальной интерпретации (график с многочисленными значениями диапазона может выбрать тот с наименьшим количеством сглаживания, который кажется подходящим), или вы можете использовать перекрестную проверку (CV) или обобщенная перекрестная проверка (GCV). Ниже приведен код, который я использовал для GCV регрессии Лесса на основе кода из превосходной книги Такезавы « Введение в непараметрическую регрессию» (из стр. 219).
и с моими данными я сделал следующее:
Извините, код довольно неаккуратный, это был мой первый раз, когда я использовал R, но он должен дать вам представление о том, как сделать GSV для регрессии лесса, чтобы найти лучший диапазон для использования более объективным способом, чем простой визуальный контроль. На приведенном выше графике вас интересует диапазон, который минимизирует функцию (самый низкий показатель на кривой «график»).
источник
Если вы переключитесь на обобщенную аддитивную модель, вы можете использовать
gam()
функцию из пакета mgcv , в которой автор заверяет нас :(
k
здесь параметр степеней свободы для сглаживателя, который похож на параметр гладкости лёсса)источник
Вы можете написать свой собственный цикл перекрестной проверки с нуля, который использует
loess()
функцию изstats
пакета.Настройте фрейм данных игрушки.
Установите полезные переменные для обработки цикла перекрестной проверки.
Выполнить вложенный
for
цикл, повторяющийся над каждой возможностью диапазонаspan.seq
, и каждым цикломfolds
.График ваши результаты.
источник
Используйте пакет locfit. Это слегка измененная версия лесса, но намного быстрее. Он также имеет встроенную функцию для расчета gcv http://www.statistik.lmu.de/~leiten/Lehre/Material/GLM_0708/Tutorium/locfit.pdf
источник
Пакет fANCOVA предоставляет автоматический способ вычисления идеального диапазона с использованием gcv или aic:
источник