R: Расчет MSE
У меня есть функция, я добавил к ней шум, а затем сгладил ее, чтобы получить линию регрессии. Как я могу найти MSE между исходной функцией и линией регрессии в 30 равно расположенных точках?
Или, как я могу дать значение R a x и получить значение y на линии регрессии?
Это уменьшенная версия моей проблемы:
> test<- function(m) {3*m^2+7*m+2}
> r=rnorm(10)
> m=1:10/10
> plot(test(m)+r)
> lines(smooth.spline(1:10,test(m)+r),col="red")
Таким образом, у меня есть истинные значения функции в 10 одинаково расположенных точках, т.е. test(m). Мне просто нужен способ извлечь значения smooth.spline в этих 10 точках, тогда я смогу рассчитать MSE.
1 ответ
Как насчет:
y <- test(m)+r
y.pred <- predict(smooth.spline(1:10,y))$y
mean((y-y.pred)^2) ## variance (could mult by n/(n-r) for an unbiased estimate)
mean((test(m)-y.pred)^2) ## MSE