# ising: Linearized Bregman solver for composite conditionally... In Libra: Linearized Bregman Algorithms for Generalized Linear Models

## Description

Solver for the entire solution path of coefficients.

## Usage

 1 2 ising(X, kappa, alpha, c = 2, tlist, responses = c(-1, 1), nt = 100, trate = 100, intercept = TRUE, print = FALSE) 

## Arguments

 X An n-by-p matrix of variables. kappa The damping factor of the Linearized Bregman Algorithm that is defined in the reference paper. See details. alpha Parameter in Linearized Bregman algorithm which controls the step-length of the discretized solver for the Bregman Inverse Scale Space. See details. c Normalized step-length. If alpha is missing, alpha is automatically generated by alpha=c*n/(kappa*||X^T*X||_2). Default is 2. It should be in (0,4). If beyond this range the path may be oscillated at large t values. tlist Parameters t along the path. responses The type of data. c(0,1) or c(-1,1), Default is c(-1,1). nt Number of t. Used only if tlist is missing. Default is 100. trate tmax/tmin. Used only if tlist is missing. Default is 100. intercept if TRUE, an intercept is included in the model (and not penalized), otherwise no intercept is included. Default is TRUE. print If TRUE, the percentage of finished computation is printed.

## Details

The data matrix X is assumed in {1,-1}. The Ising model here used is described as following:

P(x) \sim \exp(∑_i \frac{a_{0i}}{2}x_i + x^T Θ x/4)

where Θ is p-by-p symmetric and 0 on diagnal. Then conditional on x_{-j}

\frac{P(x_j=1)}{P(x_j=-1)} = exp(∑_i a_{0i} + ∑_{i\neq j}θ_{ji}x_i)

then the composite conditional likelihood is like this:

- ∑_{j} condloglik(X_j | X_{-j})

## Value

A "ising" class object is returned. The list contains the call, the path, the intercept term a0 and value for alpha, kappa, t.

Jiechao Xiong

## Examples

  1 2 3 4 5 6 7 8 9 10 11 library('Libra') library('igraph') data('west10') X <- as.matrix(2*west10-1); obj = ising(X,10,0.1,nt=1000,trate=100) g<-graph.adjacency(obj$path[,,770],mode="undirected",weighted=TRUE) E(g)[E(g)$weight<0]$color<-"red" E(g)[E(g)$weight>0]$color<-"green" V(g)$name<-attributes(west10)$names plot(g,vertex.shape="rectangle",vertex.size=35,vertex.label=V(g)$name, edge.width=2*abs(E(g)\$weight),main="Ising Model (LB): sparsity=0.51") 

Libra documentation built on May 2, 2019, 3:55 p.m.