exact.mrf: Exact sampler for Gibbs Random Fields

Description Usage Arguments References See Also Examples

View source: R/sampler.R

Description

exact.mrf gives exact sample from the likelihood of a general Potts model defined on a rectangular h x w lattice (h ≤ w) with either a first order or a second order dependency structure and a small number of rows (up to 19 for 2-state models).

Usage

1
2
3
exact.mrf(h, w, param, ncolors = 2, nei = 4,  
          pot = NULL, top = NULL, left = NULL, 
          bottom = NULL, right = NULL, corner = NULL, view = FALSE)

Arguments

h

the number of rows of the rectangular lattice.

w

the number of columns of the rectangular lattice.

param

numeric entry setting the interaction parameter (edges parameter)

ncolors

the number of states for the discrete random variables. By default, ncolors = 2.

nei

the number of neighbors. The latter must be one of nei = 4 or nei = 8, which respectively correspond to a first order and a second order dependency structure. By default, nei = 4.

pot

numeric entry setting homogeneous potential on singletons (vertices parameter). By default, pot = NULL

top, left, bottom, right, corner

numeric entry setting constant borders for the lattice. By default, top = NULL, left = NULL, bottom = NULL, right = NULL, corner = NULL.

view

Logical value indicating whether the draw should be printed. Do not display the optional borders.

References

Friel, N. and Rue, H. (2007). Recursive computing and simulation-free inference for general factorizable models. Biometrika, 94(3):661–672.

See Also

The “GiRaF-introduction” vignette

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Dimension of the lattice
height <- 8
width <- 10

# Interaction parameter
Beta <- 0.6 # Isotropic configuration
# Beta <- c(0.6, 0.6) # Anisotropic configuration when nei = 4
# Beta <- c(0.6, 0.6, 0.6, 0.6) # Anisotropic configuration when nei = 8

# Number of colors
K <- 2 
# Number of neighbors 
G <- 4

# Optional potential on sites
potential <- runif(K,-1,1)
# Optional borders. 
Top <- Bottom <- sample(0:(K-1), width, replace = TRUE)
Left <- Right <- sample(0:(K-1), height, replace = TRUE)
Corner <- sample(0:(K-1), 4, replace = TRUE)

# Exact sampling for the default setting
exact.mrf(h = height, w = width, param = Beta, view = TRUE)

# When specifying the number of colors and neighbors
exact.mrf(h = height, w = width, ncolors = K, nei = G, param = Beta, 
          view = TRUE)
          
# When specifying an optional potential on sites
exact.mrf(h = height, w = width, ncolors = K, nei = G, param = Beta, 
       pot = potential, view = TRUE)
       
# When specifying possible borders. The users will omit to mention all
# the non-existing borders
exact.mrf(h = height, w = width, ncolors = K, nei = G, param = Beta, 
       top = Top, left = Left, bottom = Bottom, right = Right, corner = Corner, view = TRUE)

Example output

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    1    1    1    1    1    1    1    0     0
[2,]    1    1    0    0    1    0    1    1    0     0
[3,]    1    1    1    0    0    0    0    1    0     0
[4,]    1    1    1    1    1    0    1    0    0     1
[5,]    1    1    1    1    1    1    1    0    0     0
[6,]    1    1    1    1    1    0    0    1    0     1
[7,]    1    1    1    1    1    0    0    1    1     1
[8,]    1    1    1    1    0    1    0    0    1     0
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    0    1    1    1    1    1    1    1    1     0
[2,]    1    1    1    1    0    1    1    1    0     0
[3,]    1    1    1    0    0    1    1    1    0     1
[4,]    0    1    1    0    0    1    1    1    0     1
[5,]    0    0    0    0    0    0    0    0    0     1
[6,]    1    0    1    0    0    0    0    1    1     1
[7,]    1    0    0    0    0    0    0    1    1     1
[8,]    0    0    1    1    1    1    0    0    0     1
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    1    1    1    1    1    1    1    0     0
[2,]    0    1    0    1    0    1    0    0    1     0
[3,]    1    1    0    1    1    1    1    1    0     1
[4,]    0    1    1    1    1    1    1    1    1     1
[5,]    0    0    0    1    0    0    0    0    1     1
[6,]    0    0    0    0    0    0    0    1    1     0
[7,]    1    1    1    1    0    0    0    1    1     0
[8,]    1    1    1    0    0    0    0    1    0     0
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    0    1    1    1    1    1    1    1    1     1
[2,]    0    0    1    1    1    0    1    1    1     1
[3,]    0    0    0    0    0    1    1    1    1     1
[4,]    0    0    0    0    0    1    1    0    0     0
[5,]    0    1    0    0    0    1    1    0    0     0
[6,]    0    0    0    0    1    0    0    0    0     0
[7,]    0    0    0    1    1    0    0    0    1     1
[8,]    1    1    1    1    1    1    0    1    1     0

GiRaF documentation built on Oct. 23, 2020, 6:07 p.m.