cnormal1 {VGAM} | R Documentation

## Censored Normal Distribution

### Description

Maximum likelihood estimation for the normal distribution with left and right censoring.

### Usage

    cnormal1(lmu="identity", lsd="loge", imethod=1, zero=2)

### Arguments

`lmu, lsd` | Parameter link functions applied to the mean and standard deviation parameters. See `Links` for more choices. The standard deviation is a positive quantity, therefore a log link is the default.
`imethod` | Initialization method. Either 1 or 2, this specifies two methods for obtaining initial values for the parameters.
`zero` | An integer vector, containing the value 1 or 2. If so, the mean or standard deviation respectively are modelled as an intercept only. Setting `zero=NULL` means both linear/additive predictors are modelled as functions of the explanatory variables.

### Details

This function is like `normal1` 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.

### Value

An object of class `"vglmff"` (see `vglmff-class`). The object is used by modelling functions such as `vglm`, and `vgam`.

### Note

This function was adapted from `tobit`. The Tobit model is a special case of this VGAM family function because the observations have a common lower censoring point and upper censoring point. If there are no censored observation then `normal1` is recommended instead.

### Author(s)

T. W. Yee

### See Also

`tobit`, `normal1`, `dcnormal1`.

### Examples

    n = 1000
    x = runif(n)
    ystar  = rnorm(n, mean=100 + 15 * x, sd=exp(3)) # True values
    ## Not run: hist(ystar)
    L = runif(n,  80,  90) # Lower censoring points
    U = runif(n, 130, 140) # Upper censoring points
    y = pmax(L, ystar) # Left  censored
    y = pmin(U, y)     # Right censored
    ## Not run: hist(y)
    extra = list(leftcensored = ystar < L, rightcensored = ystar > U)
    fit = vglm(y ~ x, cnormal1(zero=2), trace=TRUE, extra=extra)
    coef(fit, matrix=TRUE)
    Coef(fit)
    names(fit@extra)

[Package VGAM version 0.7-9 Index]