| varNPreg {lokern} | R Documentation | 
Nonparametric Variance Estimator
Description
Estimates the error variance \sigma^2 nonparametrically in the model
Y_i = m(x_i) + E_i,
 where
E_i \sim (0,\sigma^2), i.i.d.
Computes leave-one-out residuals (local linear approximation followed by reweighting) and their variance.
Usage
varNPreg(x, y)
Arguments
| x | abscissae values, ordered increasingly. | 
| y | observations at  | 
Value
A list with components
| res | numeric; residuals at  | 
| snr | explained variance of the true curve, i.e., an  | 
| sigma2 | estimation of residual variance,  | 
Note
This is an R interface to the resest Fortran subroutine, used
in lokerns and glkerns, see the latter's help
page for references and context.
Earlier version of the lokern package accidentally contained
varest() which has been an identical copy of varNPreg().
Author(s)
Martin Maechler
See Also
Examples
n <- 100
x <- sort(runif(n))
y <- sin(pi*x) + rnorm(n)/10
str(ve <- varNPreg(x,y))
plot(x, y)
## "fitted" = y - residuals:
lines(x, y - ve$res, col=adjustcolor(2, 1/2), lwd=3)
segments(x,y,x,y-ve$res, col=3:4, lty=2:3, lwd=1:2)
## sigma2 :=  1/n  sum_i res_i^2  :
          with(ve,         c(sigma2, sum(res^2)/n))
stopifnot(with(ve, all.equal(sigma2, sum(res^2)/n)))
## show how 'snr' is computed, given 'sigma2'  { in ../src/auxkerns.f }
dx2 <- diff(x, 2) # (x[i+1] - x[i-1]) i= 2..{n-1}
dx.n <- c(x[2]-x[1], dx2, x[n]-x[n-1])
SY  <- sum(dx.n * y)
SY2 <- sum(dx.n * y^2)
rx <- 2*(x[n]-x[1]) # 'dn'
(sigm2.0 <- SY2/rx - (SY/rx)^2)
(R2 <- 1 - ve$sigma2 / sigm2.0)
stopifnot(all.equal(ve$snr, R2))