pp.regression | R Documentation |
Computes the value of a projection pursuit regression estimator at one point.
pp.regression(x, y=NULL, arg=NULL, residu=NULL, teet=NULL, h=1, kernel="gauss", M=2, method="poid", argd=NULL, vect=FALSE, seed=1)
x |
n*d data matrix; the matrix of the values of the explanatory variables |
y |
n vector or NULL; the values of the response variable |
arg |
d vector or NULL; the point where the value of the regression function is estimated |
residu |
NULL or n*M matrix of residuals; for each step the n vector of residuals is given; the first residual is the vector of y-observations |
teet |
NULL or M*d matrix; for each step the direction vector chosen by the optimizer |
h |
a positive real number; the smoothing parameter of the kernel estimate |
kernel |
a character; determines the kernel function; either "gauss" or "uniform" |
M |
integer >=2; the number of iterations |
method |
character string; "poid", "aved", "iter", or "nume"; if method="poid", then the direction vector is estimated using the reference point optionally given in the argument "argd"; if method="aved", then the average derivative method is used; if method="iter", then an iterative algorithm is used; if method="nume", then numerical optimization is used |
argd |
d vector; the point optionally used in the estimation of the direction vector |
vect |
TRUE or FALSE; internal parameter |
seed |
real number; the seed for the random number generator |
list of eval, residu, teet, and value; "eval" is a n*d matrix of the evaluations of the estimated component functions at the data points; "residu" is n*M matrix which contains the sequence of estimates evaluated at the observations; "teet" is M*d matrix which gives for each iteration step the direction chosen by the optimization procedure; "value" is a real number giving the estimated value of the regression function at one point
Jussi Klemela
single.index
,
set.seed(1) n<-100 d<-2 x<-8*matrix(runif(n*d),n,d)-3 C<-(2*pi)^(-d/2) phi<-function(x){ return( C*exp(-sum(x^2)/2) ) } D<-3; c1<-c(0,0); c2<-D*c(1,0); c3<-D*c(1/2,sqrt(3)/2) func<-function(x){phi(x-c1)+phi(x-c2)+phi(x-c3)} y<-matrix(0,n,1) for (i in 1:n) y[i]<-func(x[i,])+0.01*rnorm(1) pp.regression(x,y) arg<-c(0,0) pp.regression(x,y,arg=arg)