9 votos

Cómo predecir nuevos datos con regresión spline, liso

¿Alguien puede ayudar a dar una explicación conceptual de cómo se realizan las predicciones para los nuevos datos cuando se utiliza suaviza /estrías para un modelo predictivo? Por ejemplo, dado un modelo creado usando gamboost en la mboost paquete en R, con p-splines, cómo son predicciones de los nuevos datos? Lo que se utiliza a partir de los datos de entrenamiento?

Dicen que hay un nuevo valor de la variable independiente x y queremos predecir y. Es una fórmula para el spline creación aplicada a este nuevo valor de los datos utilizando los nudos o df se utiliza cuando el modelo de formación y, a continuación, los coeficientes del modelo de aprendizaje se aplican a la salida de la predicción?

Aquí está un ejemplo con R, ¿cuál es predecir haciendo conceptualmente a la salida de 899.4139 para los nuevos datos mean_radius = 15.99?

#take the data wpbc as example
library(mboost)
data(wpbc)

modNew<-gamboost(mean_area~mean_radius, data = wpbc, baselearner = "bbs", dfbase = 4, family=Gaussian(),control = boost_control(mstop = 5))
test<-data.frame(mean_radius=15.99)
predict(modNew,test)

8voto

jnewton Puntos 290

La forma en que la predicción se calcula así:

A partir de la original forma, tienes nudo localidades dispersas a través de la gama de mean_radius en los datos de su entrenamiento. Junto con el título de la B-spline (cúbicos por defecto en mboost), estos nudo lugares definir la forma de su B-spline de funciones de base. El valor predeterminado en mboost es tener 20 nudos interiores, que definen las 24 cúbico B-spline funciones de base (no pregunten...). Permite llamar a estas funciones de base $B_j(x); j=1,\dots,24$. El efecto de la covariable $x=$`mean_radius` se representa simplemente como $$ f(x) = \sum^{24}_j B_j(x) \theta_j $$ Este es un muy buen truco, porque reduce el difícil problema de la estimación de los no especificados de la función $f(x)$ a la mucho más simple problema de la estimación de la regresión lineal de los pesos $\theta_j$ asociado con una colección de sintético covariables $B_j(x)$.

La predicción no es tan complicado: Dada la estimación de los coeficientes de $\hat \theta_j$, necesitamos evaluar el $B_j(\cdot);\; j=1,\dots,24$ para la predicción de los datos de $x_{new}$. Por eso, todo lo que necesitamos son el nudo lugares que definen las funciones de base para los datos originales. A continuación, obtener los valores de predicción como $$ \hat f(x_{nuevo}) = \sum^{24}_j B_j(x_{nuevo}) \hat\theta_j. $$

Since boosting is an iterative procedure, the estimated coefficients at the stop iteration $m_{stop}$ son en realidad la suma del coeficiente de actualizaciones en iteraciones $1, \dots, m_{stop}$. Si usted realmente desea conseguir un agarre en los detalles, echa un vistazo a la salida que se obtiene de

bbs(rnorm(100))$dpp(rep(1,100))$predict,

y explorar desde allí. Por ejemplo,

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), newX)

llamadas

with(environment(bbs(rnorm(100))$dpp(rep(1,100))$predict), Xfun)

para evaluar el$B_j(\cdot)$$x_{new}$.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X