KernS-methods {lokern} | R Documentation |
Methods for ("KernS" classed) Results of lokerns() and glkerns()
Description
Methods for results of glkerns()
and
lokerns()
which are of (S3) class "KernS"
.
Usage
## 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, ...)
Arguments
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 |
Details
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
).
Value
(differing, depending on the generic function)
See Also
Examples
## "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")