cennormal(lmu = "identitylink", lsd = "loge", imethod = 1, zero = 2)
Links
for more choices.
The standard deviation is a positive quantity, therefore a log link
is the default.zero = NULL
means both linear/additive predictors
are modelled as functions of the explanato"vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.uninormal
but handles observations
that are left-censored (so that the true value would be less than
the observed value) else right-censored (so that the true value would be
greater than the observed value). To indicate which type of censoring,
input extra = list(leftcensored = vec1, rightcensored = vec2)
where vec1
and vec2
are logical vectors the same length
as the response.
If the two components of this list are missing then
the logical values are taken to be FALSE
.
The fitted object has these two components stored in the extra
slot.tobit
,
uninormal
,
double.cennormal
.cdata <- data.frame(x2 = runif(nn <- 1000)) # ystar are true values
cdata <- transform(cdata, ystar = rnorm(nn, m = 100 + 15 * x2, sd = exp(3)))
with(cdata, hist(ystar))
cdata <- transform(cdata, L = runif(nn, 80, 90), # Lower censoring points
U = runif(nn, 130, 140)) # Upper censoring points
cdata <- transform(cdata, y = pmax(L, ystar)) # Left censored
cdata <- transform(cdata, y = pmin(U, y)) # Right censored
with(cdata, hist(y))
Extra <- list(leftcensored = with(cdata, ystar < L),
rightcensored = with(cdata, ystar > U))
fit1 <- vglm(y ~ x2, cennormal, data = cdata, crit = "c", extra = Extra, trace = TRUE)
fit2 <- vglm(y ~ x2, tobit(Lower = with(cdata, L), Upper = with(cdata, U)),
data = cdata, crit = "c", trace = TRUE)
coef(fit1, matrix = TRUE)
max(abs(coef(fit1, matrix = TRUE) - coef(fit2, matrix = TRUE))) # Should be 0
names(fit1@extra)
Run the code above in your browser using DataLab