| predict.sfplsim.FASSMR {fsemipar} | R Documentation |
Prediction for SFPLSIM and MFPLSIM (using FASSMR)
Description
predict S3 method for:
Semi-functional partial linear single-index model (SFPLSIM) fitted using
sfplsim.kernel.fitorsfplsim.kNN.fit.Multi-functional partial linear single-index model (MFPLSIM) fitted using
FASSMR.kernel.fitorFASSMR.kNN.fit.
Usage
## 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, ...)
Arguments
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. |
Details
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.optorh.opt,theta.estandbeta.est) to predict the functional single-index component of the model.If
option=2, we maintaintheta.estandbeta.est, while the tuning parameter (hork) 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.
Value
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.
Author(s)
German Aneiros Perez german.aneiros@udc.es
Silvia Novo Diaz snovo@est-econ.uc3m.es
See Also
sfplsim.kernel.fit, sfplsim.kNN.fit, FASSMR.kernel.fit or FASSMR.kNN.fit.
Examples
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)