Iterative bias reduction smoothing
Performs iterative bias reduction using kernel, thin plate splines Duchon splines or low rank splines. Missing values are not allowed.
ibr(formula, data, subset, criterion="gcv", df=1.5, Kmin=1, Kmax=1e+06, smoother="k", kernel="g", rank=NULL, control.par=list(), cv.options=list())
formula |
An object of class |
data |
An optional data frame, list or environment (or object
coercible by |
subset |
An optional vector specifying a subset of observations to be used in the fitting process. |
criterion |
A vector of string. If the number of iterations
( |
df |
A numeric vector of either length 1 or length equal to the
number of columns of |
Kmin |
The minimum number of bias correction iterations of the search grid considered by the model selection procedure for selecting the optimal number of iterations. |
Kmax |
The maximum number of bias correction iterations of the search grid considered by the model selection procedure for selecting the optimal number of iterations. |
smoother |
Character string which allows to choose between thin plate
splines |
kernel |
Character string which allows to choose between gaussian kernel
( |
rank |
Numeric value that control the rank of low rank splines
(denoted as |
control.par |
A named list that control optional parameters. The
components are
|
cv.options |
A named list which controls the way to do cross
validation with component |
Returns an object of class ibr
which is a list including:
beta |
Vector of coefficients. |
residuals |
Vector of residuals. |
fitted |
Vector of fitted values. |
iter |
The number of iterations used. |
initialdf |
The initial effective degree of freedom of the pilot (or base) smoother. |
finaldf |
The effective degree of freedom of the iterated bias reduction
smoother at the |
bandwidth |
Vector of bandwith for each explanatory variable |
call |
The matched call |
parcall |
A list containing several components:
|
criteria |
Value
of the chosen criterion at the given iteration, |
alliter |
Numeric vector giving all the optimal number of iterations selected by the chosen criteria. |
allcriteria |
either a list containing all the criteria evaluated on the
grid |
call |
The matched call. |
terms |
The 'terms' object used. |
Pierre-Andre Cornillon, Nicolas Hengartner and Eric Matzner-Lober.
Cornillon, P.-A.; Hengartner, N.; Jegou, N. and Matzner-Lober, E. (2012) Iterative bias reduction: a comparative study. Statistics and Computing, 23, 777-791.
Cornillon, P.-A.; Hengartner, N. and Matzner-Lober, E. (2013) Recursive bias estimation for multivariate regression smoothers Recursive bias estimation for multivariate regression smoothers. ESAIM: Probability and Statistics, 18, 483-502.
Cornillon, P.-A.; Hengartner, N. and Matzner-Lober, E. (2017) Iterative Bias Reduction Multivariate Smoothing in R: The ibr Package. Journal of Statistical Software, 77, 1–26.
Wood, S.N. (2003) Thin plate regression splines. J. R. Statist. Soc. B, 65, 95-114.
f <- function(x, y) { .75*exp(-((9*x-2)^2 + (9*y-2)^2)/4) + .75*exp(-((9*x+1)^2/49 + (9*y+1)^2/10)) + .50*exp(-((9*x-7)^2 + (9*y-3)^2)/4) - .20*exp(-((9*x-4)^2 + (9*y-7)^2)) } # define a (fine) x-y grid and calculate the function values on the grid ngrid <- 50; xf <- seq(0,1, length=ngrid+2)[-c(1,ngrid+2)] yf <- xf ; zf <- outer(xf, yf, f) grid <- cbind.data.frame(x=rep(xf, ngrid),y=rep(xf, rep(ngrid, ngrid)),z=as.vector(zf)) persp(xf, yf, zf, theta=130, phi=20, expand=0.45,main="True Function") #generate a data set with function f and noise to signal ratio 5 noise <- .2 ; N <- 100 xr <- seq(0.05,0.95,by=0.1) ; yr <- xr ; zr <- outer(xr,yr,f) ; set.seed(25) std <- sqrt(noise*var(as.vector(zr))) ; noise <- rnorm(length(zr),0,std) Z <- zr + matrix(noise,sqrt(N),sqrt(N)) # transpose the data to a column format xc <- rep(xr, sqrt(N)) ; yc <- rep(yr, rep(sqrt(N),sqrt(N))) data <- cbind.data.frame(x=xc,y=yc,z=as.vector(Z)) # fit by thin plate splines (of order 2) ibr res.ibr <- ibr(z~x+y,data=data,df=1.1,smoother="tps") fit <- matrix(predict(res.ibr,grid),ngrid,ngrid) persp(xf, yf, fit ,theta=130,phi=20,expand=0.45,main="Fit",zlab="fit") ## Not run: data(ozone, package = "ibr") res.ibr <- ibr(Ozone~.,data=ozone,df=1.1) summary(res.ibr) predict(res.ibr) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.