ibr | R Documentation |
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.
predict.ibr
, summary.ibr
, gam
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.