Learn R Programming

locfit (version 1.5-9.10)

locfit.censor: Censored Local Regression

Description

locfit.censor produces local regression estimates for censored data. The basic idea is to use an EM style algorithm, where one alternates between estimating the regression and the true values of censored observations.

locfit.censor is designed as a front end to locfit.raw with data vectors, or as an intemediary between locfit and locfit.raw with a model formula. If you can stand the syntax, the second calling sequence above will be slightly more efficient than the third.

Usage

locfit.censor(x, y, cens, ..., iter=3, km=FALSE)

Value

locfit object.

Arguments

x

Either a locfit model formula or a numeric vector of the predictor variable.

y

If x is numeric, y gives the response variable.

cens

Logical variable indicating censoring. The coding is 1 or TRUE for censored; 0 or FALSE for uncensored.

...

Other arguments to locfit.raw

iter

Number of EM iterations to perform

km

If km=TRUE, the estimation of censored observations uses the Kaplan-Meier estimate, leading to a local version of the Buckley-James estimate. If km=F, the estimation is based on a normal model (Schmee and Hahn). Beware of claims that B-J is nonparametric; it makes stronger assumptions on the upper tail of survival distributions than most authors care to admit.

References

Buckley, J. and James, I. (1979). Linear Regression with censored data. Biometrika 66, 429-436.

Loader, C. (1999). Local Regression and Likelihood. Springer, NY (Section 7.2).

Schmee, J. and Hahn, G. J. (1979). A simple method for linear regression analysis with censored data (with discussion). Technometrics 21, 417-434.

See Also

km.mrl, locfit, locfit.raw

Examples

Run this code
data(heart, package="locfit")
fit <- locfit.censor(log10(surv+0.5) ~ age, cens=cens, data=heart)
## Can also be written as:
if (FALSE) fit <- locfit(log10(surv + 0.5) ~ age, cens=cens, data=heart, lfproc=locfit.censor)
with(heart, plotbyfactor(age, 0.5 + surv, cens, ylim=c(0.5, 16000), log="y"))
lines(fit, tr=function(x) 10^x)

Run the code above in your browser using DataLab