## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 6, fig.height = 4)
library(multiflexscan)

## ----data---------------------------------------------------------------------
grid <- expand.grid(x = 1:5, y = 1:5)
nb <- lapply(seq_len(nrow(grid)), function(i) which(
  abs(grid$x - grid$x[i]) + abs(grid$y - grid$y[i]) == 1))
observed <- rep(10, 25)
observed[c(1, 2, 6, 7)] <- 30
expected <- rep(mean(observed), 25)
stopifnot(length(nb) == length(observed), all(expected > 0))

## ----fit----------------------------------------------------------------------
fit <- multiflexscan(grid$x, grid$y, name = as.character(seq_len(25)),
  observed = observed, expected = expected, nb = nb,
  scanmethod = "CIRCULAR", clustersize = 4, maxclusters = 3,
  simcount = 99, cores = 1, seed = 20261002)
print(fit)

## ----results------------------------------------------------------------------
nclusters(fit)
pvalue(fit)
clusters(fit)
get_setting(fit)[c("simcount", "cores", "seed")]

## ----criteria-----------------------------------------------------------------
criteria <- model_criteria(fit)
criteria
model_criteria(fit, selected = TRUE)
logLik(fit)
AIC(fit)
BIC(fit)
C_criterion(fit)
RDC(fit)
plot(C ~ K, data = criteria, type = "b",
     xlab = "Number of clusters (K)", ylab = "C(K)")

## ----graph--------------------------------------------------------------------
plot(fit, xlab = "Grid x", ylab = "Grid y")

## ----save, eval=FALSE---------------------------------------------------------
# saveRDS(list(fit = fit, session = sessionInfo()), "analysis.rds")
# saved <- readRDS("analysis.rds")
# clusters(saved$fit)

