Package 'vcpen'

Title: Penalized Variance Components Analysis
Description: Method to perform penalized variance component analysis.
Authors: Jason Sinnwell [aut, cre] , Daniel Schaid [aut]
Maintainer: Jason Sinnwell <[email protected]>
License: GPL (>= 3)
Version: 1.9
Built: 2024-09-07 04:51:30 UTC
Source: https://github.com/cran/vcpen

Help Index


Variance Component Linear Kernel Matrix

Description

Variance component Linear kernel matrix from genotype dosage

Usage

kernel_linear(dose, method = "linear")

Arguments

dose

data.frame or matrix with

method

type of kernel; currently only linear kernel implemented

Value

square symmetric kernel matrix for subject similarity by genotype dosage

Author(s)

JP Sinnwell, DJ Schaid

See Also

vcpen

Examples

data(vcexample)
Kern1 <- kernel_linear(dose[,which(doseinfo[,1]==1)], method="linear")
Kern1[1:5,1:5]

MINQUE estimation of variance components

Description

Estimate variance components by MINQUE method, allowing multiple iterations

Usage

minque(y, X, Kerns, n.iter = 1, eps = 0.001)

Arguments

y

Numeric vector of traits. Only continuous trait currently allowed.

X

Matrix of covariates (columns) for subjects (rows), matching subjects in the trait (y) vector.

Kerns

List of kernel matrices: a kernel matrix for each variance compenent. The last kernel matrix in the list (an identity matrix) is for the residual variance component.

n.iter

Number of minque iterations

eps

Default small positive value for non-positive vc estimates within iterations.

Value

List with estimates of variance components (vc), covariate regression coefficients (beta), and residuals of model fit.

Author(s)

JP Sinnwell, DJ Schaid

Examples

data(vcexample)
nvc <- 1+length(unique(doseinfo[,2]))
id <- 1:nrow(dose)
## vcs for genetic kernel matrices
Kerns <- vector("list", length=nvc)
for(i in 1:(nvc-1)){
  Kerns[[i]] <- kernel_linear(dose[,grep(i, doseinfo[,2])])
  rownames(Kerns[[i]]) <- id
  colnames(Kerns[[i]]) <- id
}
## vc for residual variance
Kerns[[nvc]] <- diag(nrow(dose))
rownames(Kerns[[nvc]]) <- id
colnames(Kerns[[nvc]]) <- id
prefit  <- minque(response, covmat, Kerns, n.iter=2)
prefit[1]
prefit[2]
fit <- vcpen(response, covmat, Kerns, vc_init = prefit$vc)

Example data for Penalized Variance Component method

Description

Datasets for an example run of vcpen with 4 variance components calculated as kernel matrices from genotype dosage (dose) on 100 subjects with two covariates (covmat), and a continuous response.

Format

The example contains three data.frames and a response vector for 100 subjects at 70 SNPs accross 4 variance components:

covmat

two arbitrary covariates (columns) for 100 subjects (rows)

dose

genotype dosage at 70 SNPs (columns) and 100 subjects (rows)

doseinfo

2-column matrix with indices for grouping SNPs into variance components (for Kernel Matrix)

response

continuous response vector for 100 subjects

Examples

data(vcexample)
dim(dose)
dim(doseinfo)
dim(covmat)
length(response)

Penalized Variance Components

Description

Penalized Variance Component analysis

Usage

vcpen(
  y,
  X,
  Kerns,
  frac1 = 0.8,
  lambda_factor = NULL,
  lambda_grid = NULL,
  maxiter = 1000,
  vc_init = NULL,
  print_iter = FALSE
)

## S3 method for class 'vcpen'
summary(object, ..., digits = 4)

Arguments

y

Numeric vector of traits. Only continuous trait currently allowed.

X

Matrix of covariates (columns) for subjects (rows), matching subjects in the trait (y) vector.

Kerns

List of kernel matrices: a kernel matrix for each variance compenent. The last kernel matrix in the list (an identity matrix) is for the residual variance component.

frac1

Fraction of penalty imposed on L1 penalty, between 0 and 1 (0 for only L2; 1 for only L1 penalty).

lambda_factor

Weight for each vc (values between 0 and 1) for how much it should be penalized: 0 means no penalty. Default value of NULL implies weight of 1 for all vc's.

lambda_grid

Vector of lambda penalties for fitting the penalized model. Best to order values from largest to smallest so parameter estimates from a large penalty can be used as initial values for the next smaller penalty. Default value of NULL implies initial values of seq(from=.10, to=0, by=-0.01).

maxiter

Maximum number of iterations allowed during penalized fitting.

vc_init

Numeric vector of initial values for variance components. Default value of NULL implies initial values determined by 2 iterations of minque estimation.

print_iter

Logical: if TRUE, print the iteration results (mainly for refined checks)

object

Fitted vcpen object (used in summary method)

...

Optional arguments for summary method

digits

Signficant digits for summary method

Value

object with S3 class vcpen

Author(s)

JP Sinnwell, DJ Schaid

Examples

data(vcexample)
nvc <- 1+length(unique(doseinfo[,2]))
id <- 1:nrow(dose)
## vcs for genetic kernel matrices
Kerns <- vector("list", length=nvc)
for(i in 1:(nvc-1)){
  Kerns[[i]] <- kernel_linear(dose[,grep(i, doseinfo[,2])])
  rownames(Kerns[[i]]) <- id
  colnames(Kerns[[i]]) <- id
}
## vc for residual variance
Kerns[[nvc]] <- diag(nrow(dose))
rownames(Kerns[[nvc]]) <- id
colnames(Kerns[[nvc]]) <- id
fit  <- vcpen(response, covmat, Kerns, frac1 = .6)
summary(fit)