pp.regressionR Documentation

Projection pursuit regression

Description

Computes the value of a projection pursuit regression estimator at one point.

Usage

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)

Arguments

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

Value

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

Author(s)

Jussi Klemela

See Also

single.index,

Examples

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)