makeAdjGrid {bcp} R Documentation

## Creating the adjacency structure for grid graphs

### Description

`makeAdjGrid()` produces a sparse representation of the adjacency structure for grid graphs, useful as the `adj` argument in `bcp()`.

### Usage

```makeAdjGrid(n, m = NULL, k = 8)
```

### Arguments

 `n` the number of rows of vertices in the graph data. `m` (optional) the number of column of vertices in the graph data. If not given, we assume `m = n`. `k` (optional) the number of neighbors assumed for a typical vertex (see details below), either 4 or 8. Default number of neighbors is assumed to be 8.

### Details

`makeAdjGrid()` produces a list representation of the adjacency structure for grid graphs. The i-th entry in the list gives a vector of neighbor ids for the i-th node. Note that neighbor ids are offset by 1 because indexing starts at 0 in C++. If `k = 8`, then we assume each node is joined via edges to its 8 neighbors in the (top left, top middle, top right, left, right, bottom left, bottom middle, and bottom right) directions, where applicable. If `k = 4`, then we assume each node is joined via edges to its 4 neighbors in the (top, right, bottom, left) directions, where applicable.

Xiaofei Wang

### See Also

`bcp` for performing Bayesian change point analysis.

### Examples

```# generates an adjacency list for a 10 node by 5 node grid, assuming a maximum of 8 neighbors
adj <- makeAdjGrid(10, 5)

# generates an adjacency list for a 10 node by 5 node grid, assuming a maximum of 4 neighbors
adj4 <- makeAdjGrid(10, 5, 4)

### show a grid example
## Not run:
set.seed(5)
adj <- makeAdjGrid(20)
z <- rep(c(0, 2), each=200)
y <- z + rnorm(400, sd=1)
out <- bcp(y, adj=adj, burnin=500, mcmc=500)

if (require("ggplot2")) {
df <- data.frame(mean=z, data = y, post.means = out\$posterior.mean[,1],
post.probs = out\$posterior.prob,
i = rep(1:20, each=20), j = rep(1:20, times=20))

# visualize the data
g <- ggplot(df, aes(i,j)) +
geom_tile(aes(fill = data), color='white') +
scale_fill_gradientn(limits=range(y), colours=c('white', 'steelblue'))+
ggtitle("Observed Data")
print(g)

# visualize the means
g <- ggplot(df, aes(i,j)) +
geom_tile(aes(fill = mean), color='white') +
scale_fill_gradientn(limits=range(y), colours=c('white', 'steelblue'))+
ggtitle("True Means")
print(g)

# visualize the posterior means/probs
g <- ggplot(df, aes(i,j)) +
geom_tile(aes(fill = post.means), color='white') +
scale_fill_gradientn(limits=range(y), colours=c('white', 'steelblue'))+
ggtitle("Posterior Means")
print(g)

g <- ggplot(df, aes(i,j)) +
geom_tile(aes(fill = post.probs), color='white') +
scale_fill_gradientn(limits=c(0, 1), colours=c('white', 'steelblue'))+
ggtitle("Posterior Boundary Probabilities")
print(g)
}

## End(Not run)

```

[Package bcp version 4.0.3 Index]