Skip to contents

This vignette showcases some basic usage of the tna package. First we load the package that we will use for this example.

We also load the group_regulation data available in the package (see ?group_regulation for further information)

data("group_regulation", package = "tna")

We build a TNA model using this data with the tna() function .

tna_model <- tna(group_regulation)

To visualize the model, we can use the standard plot() function.

plot(
  tna_model, cut = 0.2, minimum = 0.05, 
  edge.label.position = 0.8, edge.label.cex = 0.7
)

The initial state probabilities are

data.frame(`Initial prob.` = tna_model$inits, check.names = FALSE) |>
  rownames_to_column("Action") |>
  arrange(desc(`Initial prob.`)) |>
  gt() |>
  fmt_percent()
Action Initial prob.
consensus 21.40%
plan 20.45%
discuss 17.55%
emotion 15.15%
monitor 14.40%
cohesion 6.05%
synthesis 1.95%
coregulate 1.90%
adapt 1.15%

and the transitions probabilities are

tna_model$weights |>
  data.frame() |>
  rownames_to_column("From\\To") |>
  gt() |>
  fmt_percent()
From\To adapt cohesion consensus coregulate discuss emotion monitor plan synthesis
adapt 0.00% 27.31% 47.74% 2.16% 5.89% 11.98% 3.34% 1.57% 0.00%
cohesion 0.29% 2.71% 49.79% 11.92% 5.96% 11.56% 3.30% 14.10% 0.35%
consensus 0.47% 1.49% 8.20% 18.77% 18.80% 7.27% 4.66% 39.58% 0.76%
coregulate 1.62% 3.60% 13.45% 2.34% 27.36% 17.21% 8.63% 23.91% 1.88%
discuss 7.14% 4.76% 32.12% 8.43% 19.49% 10.58% 2.23% 1.16% 14.10%
emotion 0.25% 32.53% 32.04% 3.42% 10.19% 7.68% 3.63% 9.98% 0.28%
monitor 1.12% 5.58% 15.91% 5.79% 37.54% 9.07% 1.81% 21.56% 1.61%
plan 0.10% 2.52% 29.04% 1.72% 6.79% 14.68% 7.55% 37.42% 0.18%
synthesis 23.47% 3.37% 46.63% 4.45% 6.29% 7.06% 1.23% 7.52% 0.00%

The function centralities() can be used to compute various centrality measures (see ?centralities for more information). These measures can also be visualized with the plot() function.

centrality_measures <- c("BetweennessRSP", "Closeness", "InStrength", "OutStrength")
cents_withoutloops <- centralities(
  tna_model,
  measures = centrality_measures,
  loops = FALSE,
  normalize = TRUE
)
plot(cents_withoutloops, ncol = 2, model = tna_model)