Gracias de antemano.
Hola a todos, estoy tratando de encontrar un paquete que me permita calcular el mean squared prediction error. Hasta ahora para los intervalos de prediccion estaba utilizando predict().
En respuesta a Antonio Perez
Re: mean squared prediction error en R
de Alba Victoria Olivares Nadal -
¿Has probado con el paquete forecast? No sé si te servirá para lo que quieres, pero puedes probar...
En respuesta a Alba Victoria Olivares Nadal
Re: mean squared prediction error en R
de Antonio Perez -
Hola muchas gracias por la respuesta, debería haber sido más específico. Estoy haciendo una predicción con un modelo de regresión lineal usando predict(lm()) pero no veo que en el resumen de resultados aparezca nada relacionado con el error de predicción cuadrático medio.
Viendo la definición en la wikipedia http://en.wikipedia.org/wiki/Mean_squared_error podrías construirte tu propia función, parece que no es más que la suma al cuadrado de los valores predichos menos los observados , dividida por el número de datos. Vamos, la variabilidad explicada. No sé si al hacer anova(fit.lm) te saldrá el valor o si no.
sum(fitted.values(fit.lm) - datos$y)^2) /nrow(datos)
Saludos
sum(fitted.values(fit.lm) - datos$y)^2) /nrow(datos)
Saludos
Creo que me faltaba un paréntesis. De todas formas con la función anova sobre el objeto lm te devuelve la suma de cuadrados de los residuos, el Mean Sq que calcula es dividiendo por los grados de libertad (df de Residuals). Si quieres , tal como viene en la definición, divide por el número de observaciones..
Saludos.
Saludos.
Muchas gracias Jose Luis! técnicamente es muy parecido a lo que trato de hacer. Estoy haciendo una predicción para una sola observación en una regresión lineal simple pero conceptualmente estoy algo liado a la hora de calcular el MSPE
Seria este en wikipedia
http://en.wikipedia.org/wiki/Mean_squared_prediction_error
Gracias a todos al final lo he resuelto con un cálculo manual en R ya que era muy sencillo pero creo que trataré de hacer la fórmula que proponía Jose Luis y la postearé.
Asumiendo que los datos están en el data.frame "DF" y que el dato usado para la prediccion esta en "newdata" he usado:
MSPE=anova(fitted.model)["Residuals", "Sum Sq"]/(nrow(DF)-ncol(DF))*
(1+1/nrow(DF)+(newdata-mean(DF[,2]))^2/(var(DF[,2])*(nrow(DF)-1)))