Learn R Programming

VarReg

The goal of VarReg is to provide methods for fitting semi-parametric mean and variance models, with normal or censored data. This has also been extended to allow a regression in the location, scale and shape parameters. This algorithm is based upon an EM (Expectation Maximisation) algorithm, so is more stable than other similar methods like GAMLSS.

:raising_hand: Author

Kristy Robledo https://github.com/kristyrobledo

NHMRC Clinical Trials Centre, University of Sydney

:arrow_double_down: Installation

You can install the released version of VarReg from CRAN with:

install.packages("VarReg")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("kristyrobledo/VarReg")

:book: Examples

This is a basic example to read in the mcycle dataset and perform a linear model in the mean and the variance:

library(VarReg)
#> Welcome to the 'VarReg' package to perform semi-parametric regression
## read in dataset
data(mcycle)
## run a model with linear mean and linear variance:
linmodel<-semiVarReg(mcycle$accel, mcycle$times, meanmodel="linear", varmodel="linear",
  maxit=10000)

Now we can plot the model:

plotVarReg(linmodel)


##can also add CI
plotVarReg(linmodel, ci=TRUE, ci.type = "im")
#> [1] "CI=true, type=information matrix"

Or we can look at the results:

linmodel$loglik
#> [1] -683.5092

linmodel$mean
#>    Intercept mcycle$times 
#>    -53.69517      1.11797

linmodel$variance
#>    Intercept mcycle$times 
#>   3824.07225    -66.39011

We can also run a model with semi-parametric mean (4 internal knots) and semi-parametric variance (2 knots):

semimodel<-semiVarReg(mcycle$accel, mcycle$times, meanmodel="semi", varmodel="semi",
knots.m=4, knots.v=2, maxit=10000)
plotVarReg(semimodel)

## run a model with semi-parametric mean (4 internal knots) and semi-parametric monotonic
## variance (2 knots):
## not run
##semimodel_inc<-semiVarReg(mcycle$accel, mcycle$times, meanmodel="semi", varmodel="semi",
##knots.m=4, knots.v=2, mono.var="inc")

Lastly, we can fit a model with a model in the location, scale and shape. Im not going to run this, just show the code, as it takes a while to run on my laptop!

 ##  LSS model followed by the basic plot command
#lssmodel<-lssVarReg(mcycle$accel, mcycle$times,  locationmodel="linear", scale2model="linear", shapemodel="constant", maxit=10000)
#plotlssVarReg(lssmodel, xlab="Time in seconds", ylab="Acceleration")

Enjoy!

Copy Link

Version

Install

install.packages('VarReg')

Monthly Downloads

152

Version

2.0

License

GPL-3

Maintainer

Kristy Robledo

Last Published

May 15th, 2023

Functions in VarReg (2.0)

plotVarReg

Plots graphics for a mean and variance regression model
lss_calc

Calculations for SN
vcf

vcf dataset.
seVarReg

SE calculations for mean and variance regression models
searchVarReg

Searches for best semi parametric mean and variance regression model
semiVarReg

Semi parametric mean and variance regression
semiVarReg.multi

Semi parametric mean and variance regression (multivariate)
plotlssVarReg

Plots graphics for a location, scale and shape regression model
mcycle

mcycle dataset.
censlinVarReg

Censored Linear mean and variance regression
linVarReg

Linear mean and variance regression function
loop_em

The EM loop for the main mean and variance function
criterion

Calculation of information criterion
lssVarReg.multi

Semi parametric location, shape and scale regression
lssVarReg

Semi parametric location, shape and scale regression
censloop_em

The Censored data EM loop
loop_lss

The EM loop for the LSS model
VarReg

VarReg: Semi-parametric mean and variance regression
VarReg.control

Auxillary for controlling VarReg fitting