| KernS-methods | R Documentation |
Methods for results of glkerns() and
lokerns() which are of (S3) class "KernS".
## S3 method for class 'KernS'
fitted(object, ...)
## S3 method for class 'KernS'
plot(x, type = "l", lwd = 2.5, col = 3, ...)
## S3 method for class 'KernS'
predict(object, x, deriv = object[["deriv"]],
korder = deriv+2, trace.lev = 0, ...)
## S3 method for class 'KernS'
print(x, digits = getOption("digits"), ...)
## S3 method for class 'KernS'
residuals(object, ...)
x, object |
an R object, of S3 class |
type, lwd, col |
arguments for |
deriv |
integer, |
korder |
nonnegative integer giving the kernel order; see
|
digits |
number of significant digits, see |
trace.lev |
integer; level of tracing of Fortran level
computations; see |
... |
potentially further arguments passed to and from
methods. For the |
Note that fitted() and residuals() rely on
x.inOut having been true or x.out having contained the
data x, in the lokerns or glkerns
call.
The plot() method calls plotDS from
package sfsmisc.
predict(object, x, deriv) when either some x are not in
x.out or deriv is not 0, basically recalls the original
lokerns or glkerns function (keeping the
bandwidths for lokerns).
(differing, depending on the generic function)
glkerns, lokerns.
## "interesting" artificial data:
set.seed(47)
x <- sort(round(10*runif(250),2))
fn <- function(x) 5 - x/2 + 3*exp(-(x-5)^2)
y <- fn(x) + rnorm(x)/4
plot(x,y)
## Tracing the phases in the Fortran code: trace=1 gives some, trace=3 gives *much*
lof <- lokerns(x,y, trace=2)
plot(lof)
plot(lof, cex = 1/4)# maybe preferable
plot(fn, 0, 10, add=TRUE, col=adjustcolor("gray40",1/2), lwd=2, lty=2)
## Simpler, using the lines() method:
plot(x,y); lines(lof, lwd=2, col=2)
qqnorm(residuals(lof)) # hmm... overfitting?
stopifnot(all.equal(y, fitted(lof) + residuals(lof), tolerance = 1e-15),
predict(lof)$y == fitted(lof))
lof$iter # negative ?
tt <- seq(0, 10, by=1/32)
## again with 'tracing' [not for the average user]
p0 <- predict(lof, x=tt, trace=1)
p1 <- predict(lof, x=tt, deriv=1, trace=1)
p2 <- predict(lof, x=tt, deriv=2)
plot(p2, type="l"); abline(h=0, lty=3) # not satisfactory, but lokerns(*,deriv=2) is
lof2 <- lokerns(x,y, deriv=2)
plot(lof2, ylim = c(-12,4), main=
"lokerns(*, deriv=2) -- much more smooth than predict(*,deriv=2)")
mtext("as lokerns(*, deriv=2) chooses larger bandwidths[] !")
lines(predict(lof2, x=tt), col=adjustcolor("tomato", 1/3), lwd=5)
lines(p2, col="gray50"); abline(h=0, lty=3)
## add 2nd derivative of underlying fn():
f2 <- fn; body(f2) <- D(D(body(fn), "x"),"x")
lines(tt, f2(tt), col="blue")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.