BMNPseudo {BMN}R Documentation

Pseudo-likelihood inference in L1-penalized Binary Markov Model

Description

Functions to calculate approximate parameter estimates for L1-penalized Binary Markov Models.

Usage

BMNPseudo(X, rhoVec, Delta=NULL, ThetaStart=NULL, 
maxError=1e-5, verbose=FALSE, maxIter=100, penalize.diag=FALSE, 
stepSize=1, performLineSearch=FALSE)
BMNPseudo.single(X, rho, Delta=NULL, ThetaStart=NULL, 
maxError=1e-5, maxIter=100, penalize.diag=FALSE, 
stepSize=1, performLineSearch=FALSE)

Arguments

X Input data matrix consisting of 0-1 entries. Has n rows and p columns.
rho Value of the penalty parameter; If a non-negative p-by-p matrix is given, it is used as the penalty structure.
rhoVec Gives all values of rho for which the solution should be calculated.
Delta Adjustmeant to the gradient.
ThetaStart Starting value for Theta, has to be a p-by-p matrix.
maxError convergence threshold for the algorithm.
verbose Print status messages.
maxIter Maximum number of iteratios to run.
penalize.diag Should the diagonal be penalized?
stepSize Stepsize of the algorithm; should be 1 or less.
performLineSearch If TRUE, a line search is performed; takes longer but is guarateed to converge.

Details

The function BMNPseudo fits an approximate penalized pairwise binary Markov model to the data provided as matrix X for each of the elements in the penalty parameter vector rhoVec (note that rhoVec will be sorted in increasing order). Internally, the function BMNExact.single is called for each entry in rhoVec and the results are collected as described below.

Value

rho Vector of non-negative penalty parameters sorted in decreasing order.
ThetaList A list of Theta pxp matrices, corresponding to the penalty parameters in rho.
success A logical vector of the same length as rho. True, if the function succeeded for the corresponding value in rho.
penalize.diag Logical. Indicates if the diagonal was penalized (same as input value penalize.diag.

Author(s)

Holger Hoefling

See Also

BMNExact, BMNJT

Examples

library(BMN)
Theta = matrix(numeric(25), ncol=5);
Theta[1,1]=0.5; Theta[2,2]=0.5; Theta[3,3]=0; Theta[4,4]= -0.5; Theta[5,5]= 0.5;
Theta[1,2]=Theta[2,1]=1; Theta[1,4]=Theta[4,1]=1; Theta[2,3]=Theta[3,2]= -1;
numSamples=1000; burnIn=100; skip=1;

simData = BMNSamples(Theta, numSamples, burnIn, skip)

rhoVec = c(0.01, 0.02, 0.03)

pseudoPath = BMNPseudo(simData, rhoVec)
pseudoSingle = BMNPseudo.single(simData, 0.02)

[Package BMN version 1.0 Index]