| predict.sfplsim.FASSMR | R Documentation |
predict S3 method for:
Semi-functional partial linear single-index model (SFPLSIM) fitted using sfplsim.kernel.fit or sfplsim.kNN.fit.
Multi-functional partial linear single-index model (MFPLSIM) fitted using FASSMR.kernel.fit or FASSMR.kNN.fit.
## S3 method for class 'sfplsim.kernel'
predict(object, newdata.x = NULL, newdata.z = NULL,
y.test = NULL, option = NULL, ...)
## S3 method for class 'sfplsim.kNN'
predict(object, newdata.x = NULL, newdata.z = NULL,
y.test = NULL, option = NULL, ...)
## S3 method for class 'FASSMR.kernel'
predict(object, newdata.x = NULL, newdata.z = NULL,
y.test = NULL, option = NULL, ...)
## S3 method for class 'FASSMR.kNN'
predict(object, newdata.x = NULL, newdata.z = NULL,
y.test = NULL, option = NULL, ...)
object |
Output of the functions mentioned in the |
newdata.x |
A matrix containing new observations of the functional covariate in the functional-single index component collected by row. |
newdata.z |
Matrix containing the new observations of the scalar covariates (SFPLSIM) or of the scalar covariates coming from the discretisation of a curve (MFPLSIM), collected by row. |
y.test |
(optional) A vector containing the new observations of the response. |
option |
Allows the choice between 1 and 2. The default is 1. See the section |
... |
Further arguments passed to or from other methods. |
Two options are provided to obtain the predictions of the response for newdata.x and newdata.z:
If option=1, we maintain all the estimations (k.opt or h.opt, theta.est and beta.est) to predict the functional single-index component of the model.
If option=2, we maintain theta.est and beta.est, while the tuning parameter (h or k) is selected again to predict the functional single-index component of the model. This selection is performed using the leave-one-out cross-validation criterion in the associated functional single-index model.
The function returns the predicted values of the response (y) for newdata.x and newdata.z. If !is.null(y.test), it also provides the mean squared error of prediction (MSEP) computed as mean((y-y.test)^2).
If is.null(newdata.x) or is.null(newdata.z), then the function returns the fitted values.
German Aneiros Perez german.aneiros@udc.es
Silvia Novo Diaz snovo@est-econ.uc3m.es
sfplsim.kernel.fit, sfplsim.kNN.fit, FASSMR.kernel.fit or FASSMR.kNN.fit.
data("Tecator")
y<-Tecator$fat
X<-Tecator$absor.spectra2
z1<-Tecator$protein
z2<-Tecator$moisture
#Quadratic, cubic and interaction effects of the scalar covariates.
z.com<-cbind(z1,z2,z1^2,z2^2,z1^3,z2^3,z1*z2)
train<-1:160
test<-161:215
#SFPLSIM fit. Convergence errors for some theta are obtained.
s.fit.kernel<-sfplsim.kernel.fit(x=X[train,], z=z.com[train,], y=y[train],
max.q.h=0.35,lambda.min.l=0.01, factor.pn=2, nknot.theta=4,
criterion="BIC", range.grid=c(850,1050),
nknot=20, max.iter=5000)
s.fit.kNN<-sfplsim.kNN.fit(y=y[train],x=X[train,], z=z.com[train,],
max.knn=20,lambda.min.l=0.01, factor.pn=2, nknot.theta=4,
criterion="BIC",range.grid=c(850,1050),
nknot=20, max.iter=5000)
predict(s.fit.kernel,newdata.x=X[test,],newdata.z=z.com[test,],
y.test=y[test],option=2)
predict(s.fit.kNN,newdata.x=X[test,],newdata.z=z.com[test,],
y.test=y[test],option=2)
data(Sugar)
y<-Sugar$ash
x<-Sugar$wave.290
z<-Sugar$wave.240
#Outliers
index.y.25 <- y > 25
index.atip <- index.y.25
(1:268)[index.atip]
#Dataset to model
x.sug <- x[!index.atip,]
z.sug<- z[!index.atip,]
y.sug <- y[!index.atip]
train<-1:216
test<-217:266
m.fit.kernel <- FASSMR.kernel.fit(x=x.sug[train,],z=z.sug[train,],
y=y.sug[train], nknot.theta=2,
lambda.min.l=0.03, max.q.h=0.35,num.h = 10,
nknot=20,criterion="BIC", max.iter=5000)
m.fit.kNN<- FASSMR.kNN.fit(x=x.sug[train,],z=z.sug[train,], y=y.sug[train],
nknot.theta=2, lambda.min.l=0.03,
max.knn=20,nknot=20,criterion="BIC",max.iter=5000)
predict(m.fit.kernel,newdata.x=x.sug[test,],newdata.z=z.sug[test,],
y.test=y.sug[test],option=2)
predict(m.fit.kNN,newdata.x=x.sug[test,],newdata.z=z.sug[test,],
y.test=y.sug[test],option=2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.