Learn R Programming

polspline (version 1.0.4)

logspline: Logspline Density Estimation

Description

Fits a logspline density using splines to approximate the log-density using the 1997 knot addition and deletion algorithm (logspline). The 1992 algorithm is available using the oldlogspline function.

Usage

logspline(x, lbound, ubound, maxknots = 0, knots, nknots = 0, penalty,
silent = TRUE, mind = -1)

Arguments

x
data vector. The data needs to be uncensored. oldlogspline can deal with right- left- and interval-censored data.
lbound,ubound
lower/upper bound for the support of the density. For example, if there is a priori knowledge that the density equals zero to the left of 0, and has a discontinuity at 0, the user could specify lbound = 0. However, if the density is esse
maxknots
the maximum number of knots. The routine stops adding knots when this number of knots is reached. The method has an automatic rule for selecting maxknots if this parameter is not specified.
knots
ordered vector of values (that should cover the complete range of the observations), which forces the method to start with these knots. Overrules knots. If knots is not specified, a default knot-placement rule is employed.
nknots
forces the method to start with nknots knots. The method has an automatic rule for selecting nknots if this parameter is not specified.
penalty
the parameter to be used in the AIC criterion. The method chooses the number of knots that minimizes -2 * loglikelihood + penalty * (number of knots - 1). The default is to use a penalty parameter of penalty = log(samplesize)
silent
should diagnostic output be printed?
mind
minimum distance, in order statistics, between knots.

Value

  • Object of the class logspline, that is intended as input for plot.logspline (summary plots), summary.logspline (fitting summary), dlogspline (densities), plogspline (probabilities), qlogspline (quantiles), rlogspline (random numbers from the fitted distribution).

    The object has the following members:

  • callthe command that was executed.
  • nknotsthe number of knots in the model that was selected.
  • coef.polcoefficients of the polynomial part of the spline. The first coefficient is the constant term and the second is the linear term.
  • coef.ktscoefficients of the knots part of the spline. The k-th element is the coefficient of $(x-t(k))^3_+$ (where $x^3_+$ means the positive part of the third power of $x$, and $t(k)$ means knot k).
  • knotsvector of the locations of the knots in the logspline model.
  • maxknotsthe largest number of knots minus one considered during fitting (i.e. with maxknots = 6 the maximum number of knots is 5).
  • penaltythe penalty that was used.
  • boundfirst element: 0 - lbound was $-\inf$ 1 it was something else; second element: lbound, if specified; third element: 0 - ubound was $\inf$, 1 it was something else; fourth element: ubound, if specified.
  • samplesthe sample size.
  • logl
  • {matrix with 3 columns. Column one: number of knots; column two: model fitted during addition (1) or deletion (2); column 3: log-likelihood.}
  • rangerange of the input data.
  • mindminimum distance in order statistics between knots required during fitting (the actual minimum distance may be much larger).

References

Charles Kooperberg and Charles J. Stone. Logspline density estimation for censored data (1992). Journal of Computational and Graphical Statistics, 1, 301--328.

Charles J. Stone, Mark Hansen, Charles Kooperberg, and Young K. Truong. The use of polynomial splines and their tensor products in extended linear modeling (with discussion) (1997). Annals of Statistics, 25, 1371--1470.

See Also

plot.logspline, summary.logspline, dlogspline, plogspline, qlogspline, rlogspline, oldlogspline.

Examples

Run this code
y <- rnorm(100)
fit <- logspline(y)       
plot(fit)
# as (4 == length(-2, -1, 0, 1, 2) -1), this forces these initial knots,
# and does no knot selection
fit <- logspline(y, knots = c(-2, -1, 0, 1, 2), maxknots = 4, penalty = 0)

Run the code above in your browser using DataLab