我有一个功能,我已经添加了噪音,然后对其进行平滑以获得回归线。如何在30个等间距点找到原始函数和回归线之间的MSE?
或者,我如何给R一个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)。我只需要一种方法来提取这10个点的smooth.spline值,然后我应该能够计算出MSE。
答案 0 :(得分:2)
怎么样:
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