Learn R Programming

BMN (version 1.02)

BMNPseudo: 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.

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.

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.

See Also

BMNExact, BMNJT

Examples

Run this code
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)

Run the code above in your browser using DataLab