Мои вопросы касаются GAMs в пакете mgcv R. Из-за небольшого размера выборки я хочу определить ошибку прогнозирования, используя перекрестную проверку с пропуском. Это разумно? Есть ли пакет или код, как я могу это сделать? errorest()
Функция в ipred пакете не работает. Простой тестовый набор данных:
library(mgcv)
set.seed(0)
dat <- gamSim(1,n=400,dist="normal",scale=2)
b<-gam(y~s(x0)+s(x1)+s(x2)+s(x3),data=dat)
summary(b)
pred <- predict(b, type="response")
Большое спасибо за вашу руку помощи!
r
cross-validation
gam
mgcv
Питер
источник
источник
Ответы:
Мне очень нравится пакет
caret
для вещей , как это , но , к сожалению , я только что прочитал , что вы не можете указатьformula
вgam
точности для него.«Когда вы используете поезд с этой моделью, вы не можете (в настоящее время) указать формулу игры. У каретки есть внутренняя функция, которая вычисляет формулу на основе количества уникальных уровней, которые имеет каждый предиктор, и т. Д. термины сглажены и представляют собой простые старые линейные основные эффекты ".
источник: /programming/20044014/error-with-train-from-caret-package-using-method-gam
но если вы позволите
train
выбрать гладкие термины, в этом случае она в любом случае точно создаст вашу модель. Показателем производительности по умолчанию в этом случае является RMSE, но вы можете изменить его, используяsummaryFunction
аргументtrainControl
функции.Я думаю, что один из главных недостатков LOOCV заключается в том, что когда набор данных большой, он занимает вечность. Поскольку ваш набор данных небольшой и работает довольно быстро, я думаю, что это разумный вариант.
Надеюсь это поможет.
вывод:
источник
В библиотеке MGCV PDF это говорит;
«Учитывая структуру модели, заданную формулой гамма-модели, gam () пытается найти подходящую гладкость для каждого применимого термина модели, используя критерии ошибки прогнозирования или методы, основанные на вероятности. В качестве критериев ошибки прогнозирования используется обобщенная (приблизительная) перекрестная проверка (GCV или GACV), когда параметр масштаба неизвестен, или оценщик непредвзятого риска (UBRE), когда он известен ".
«gam in mgcv решает задачу оценки параметров сглаживания с использованием критерия обобщенной перекрестной проверки (GCV): nD / (n - DoF) 2
или
критерий оценки непредвзятого риска (UBRE): D / n + 2sDoF / n - s "
источник