loglikNorm: Observed-data loglikelikehood for incomplete multivariate...

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/norm2.R

Description

Computes the observed-data loglikelihood function at given parameter values for an incomplete dataset under a normal model.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
loglikNorm(obj, ...)


## Default S3 method:
loglikNorm(obj, x = NULL, intercept = TRUE, param, ...)


## S3 method for class 'formula'
loglikNorm(formula, data, param, ...)


## S3 method for class 'norm'
loglikNorm(obj, param = obj$param, ...)

Arguments

obj

an object used to select a method. It may be y, a numeric matrix, vector or data frame of responses to be modeled as normal. Missing values (NAs) are allowed. If y is a data frame, any factors or ordered factors will be replaced by their internal codes, and a warning will be given. Alternatively, this first argument may be a formula as described below, or an object of class "norm" resulting from a call to emNorm or mcmcNorm; see DETAILS.

x

a numeric matrix, vector or data frame of covariates to be used as predictors for y. Missing values (NA's) are not allowed. If x is a matrix, it must have the same number of rows as y. If x is a data frame, any factors or ordered factors are replaced by their internal codes, and a warning is given. If NULL, it defaults to x = rep(1,nrow(y)), an intercept-only model.

intercept

if TRUE, then a column of 1's is appended to x. Ignored if x = NULL.

formula

an object of class "formula" (or one that can be coerced to that class): a symbolic description of the model which is provided in lieu of y and x. The details of model specification are given under DETAILS.

data

an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which loglikNorm is called.

param

assumed values for the model parameters. This must be a list with two named components, beta and sigma, which are numeric matrices with correct dimensions. In most circumstances, the parameter values will be obtained from a run of emNorm or mcmcNorm; see DETAILS.

...

values to be passed to the methods.

Details

The simplest way to call loglikNorm is to provide an object of class "norm" as its sole argument, where that object is the result of a call to emNorm or mcmcNorm. The parameter values stored in that object will then be passed to loglikNorm automatically.

Alternatively, one may call loglikNorm by providing as the first argument y, a vector or matrix of data to be modeled as normal, and an optional vector or matrix of predictors x. Missing values NA are allowed in y but not in x.

A third way to call loglikNorm is to provide formula, a formula for a (typically multivariate) linear regression model in the manner expected by lm. A formula is given as y ~ model, where y is either a single numeric variable or a matrix of numeric variables bound together with the function cbind. The right-hand side of the formula (everything to the right of ~) is a linear predictor, a series of terms separated by operators +, : or * to specify main effects and interactions. Factors are allowed on the right-hand side and will enter the model as contrasts among the levels. The intercept term 1 is included by default; to remove the intercept, use -1.

Calling loglikNorm is equivalent to calling logpostNorm with prior="uniform".

Value

a numeric value reporting the observed-data loglikelihood

Author(s)

Joe Schafer Joseph.L.Schafer@census.gov

References

Schafer, J.L. (1997) Analysis of Incomplete Multivariate Data. London: Chapman & Hall/CRC Press.

For more information about this function and other functions in the norm2 package, see User's Guide for norm2 in the library subdirectory doc.

See Also

emNorm, mcmcNorm, logpostNorm

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
## run EM for cholesterol data and display the
## loglikelihood values at all iterations
data(cholesterol)
emResult <- emNorm(cholesterol)
print( emResult$loglik )

## compute the loglikelihood at the final estimate
## and compare it to the last loglikelihood value
## reported by emNorm
loglik.max <- loglikNorm(emResult)
print( loglik.max - emResult$loglik[ emResult$iter ] )

## The result from loglikNorm is slightly higher,
## because the last value reported by emNorm is the
## loglikelihood at the BEGINNING of the last iteration

norm2 documentation built on Feb. 12, 2021, 5:10 p.m.