У меня есть следующие данные.Моя цель - рассчитать среднеквадратичную ошибку прогноза (MSPE) с использованием перекрестной проверки путем повторения 100 раз.
y=rnorm(250,0,2)
x1=rnorm(250,0,3)
x2=rnorm(250,1,1)
datasim=data.frame(y,x1,x2)
С этого момента мне нужно разделить данные на данные обучения и тестирования.Поэтому я сначала вычислил индексы, используя функцию sample.int в R. На основе этих индексов я разделил данные на обучающие и тестовые наборы.
dd=replicate(100,sample.int(n = nrow(datasim),
size = floor(.75*nrow(datasim)), replace = F))
train_set=apply(dd,2,function(y)
datasim[y, ])
test_set=apply(dd,2,function(y)
datasim[-y, ])
После этого мне нужно использовать данные обучения, чтобы соответствовать модели.,И на основании данных испытаний мне нужно прогнозировать и получать среднеквадратичную ошибку прогноза (MSPE).Я не знаю, как действовать отсюда.Особенно я не знаю, как связать обучающий набор и тестовый набор, чтобы я мог предсказать и рассчитать MSPE.
Я пробовал использовать это, используя функцию lapply, которая находится внутри другой функции lapply.
lapply(test_set, function(train_set) {
lapply(train_set,function(x)
mean((test_set$y- predict.lm(y ~ x1 + x2, data = train_set))^2)
}
))
Но, похоже, с этим есть проблема. Может кто-нибудь помочь мне разобраться с этим?Также есть ли более простой способ сделать это, чем этот метод?
Спасибо