# Pseudo-likelihood inference in L1-penalized Binary Markov Model

### Description

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

### Usage

1 2 3 4 5 6 |

### 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 |

### Author(s)

Holger Hoefling

### See Also

`BMNExact`

, `BMNJT`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 | ```
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)
``` |