Tengo una función, he añadido el ruido, luego suavizada para obtener una recta de regresión. ¿Cómo puedo encontrar el MSE entre la función original y la línea de regresión a los 30 puntos equidistantes?

O, ¿cómo puedo dar a R un valor x y obtener el valor de y en una línea de regresión?

Esta es una versión reducida de mi problema:

> 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")  

Tengo los verdaderos valores de la función en los 10 puntos equidistantes es decir, la prueba(m). Sólo tengo una forma de extraer la lisa.los valores de curva spline en esos 10 puntos, entonces yo debería ser capaz de calcular el MSE.

  • Estoy usando suave.spline
  • Podrías mostrar un reproducible ejemplo – que es, mostrar sus datos (o parte de ella) mediante dput, a continuación, mostrar el código que se utiliza para alisar? Que haría mucho más fácil para responder de una manera que es útil para usted
InformationsquelleAutor | 2013-01-08

1 Comentario

  1. 2

    Cómo sobre:

    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
    • Adivinando que significaba «mult por n/(n-length(r))» o alguna de esas (aunque en el momento en que sería una tontería así que lo que quiso decir)?
    • Yo sólo significaba r como en alguna medida eficaz df del modelo (un poco difícil de entender para un suavizado de la columna vertebral de todos modos). Simplemente me olvidé ya habíamos usado ese símbolo.
    • El uso de $df para acceder a un ‘suave.spline’-clasificado objeto es posible. Desde que tengo la sospecha de que sabía que, me pregunto qué sus objeciones a su uso podría ser?
    • no, yo no sabía que. ¿Qué puedo decir, yo estaba en un apuro (siéntase libre de editar mi respuesta …)

Dejar respuesta

Please enter your comment!
Please enter your name here