Simulates posterior distributions of parameters from a two-level normal model with heterogeneous within-cluster variances (Kasim and Raudenbush, 1998). Imputations can be drawn as an extra step to the algorithm.

## Usage

kr(y, x, g, control = control_kr())

## Arguments

y

Vector with outcome value

x

Matrix with predictor value

g

Vector with group values

control

A list created by control_kr() that sets algorithmic options of the sampler and correlation model.

## Value

An object of class kr, basically a list with components:

* beta  Fixed effects
* omega Variance-covariance of random effects
* sigma2_j Residual variance per group
* sigma2 Average residual variance
* sample Descriptive statistics about the data
* imp   Numeric matrix with nimp multiple imputations.
* mod   A list of objects of class [coda::mcmc()]


The number of rows in imp is equal to the number of missing values in the outcome vector y. The number of columns equals nimp.

## Details

The speed of the Kasim-Raudenbush sampler is almost independent of the number of random effect, and foremost depends on the total number of iterations.

The defaults start = 100, n = 200 and thin = 1 provide 200 parameter draws with a reasonable approximation to the variance-covariance matrix of the random effects.

For a closer approximations with 200 draws set control = control_kr(thin = 10) (better) or thin = 20 (best), at the expense of a linear increase in calculation time. Drawing fewer than 50 observations is not recommended, and such results are best treated as indicative.

It is possible to draw multiple imputations by setting the nimp parameter. For example, to draw five imputations for each missing outcome specify control = control_kr(nimp = 5).

## References

Kasim RM, Raudenbush SW. (1998). Application of Gibbs sampling to nested variance components models with heterogeneous within-group variance. Journal of Educational and Behavioral Statistics, 23(2), 93--116.

## Author

Stef van Buuren, based on mice::mice.impute.2l.norm()