This function constructs a transition network analysis (TNA) model for each cluster from a given sequence, wide-format dataframe, or a mixture Markov model.
Arguments
- x
An
stslist
object describing a sequence of events or states to be used for building the Markov model. The argumentx
also acceptsdata.frame
objects in wide format, andtna_data
objects. Alternatively, the function accepts a mixture Markov model fromseqHMM
.- ...
Ignored.
- group
A vector indicating the cluster assignment of each row of the data / sequence. Must have the same length as the number of rows/sequences of
x
. Alternatively, a singlecharacter
string giving the column name of the data that defines the group whenx
is a wide formatdata.frame
or atna_data
object.- type
A
character
string describing the weight matrix type. Currently supports the following types:"relative"
for relative frequencies (probabilities, the default)"frequency"
for frequencies."co-occurrence"
for co-occurrences."n-gram"
for n-gram transitions. Captures higher-order transitions by considering sequences of n states, useful for identifying longer patterns."gap"
allows transitions between non-adjacent states, with transitions weighted by the gap size."window"
creates transitions between all states within a sliding window, capturing local relationships (several sequences together)."reverse"
considers the sequences in reverse order (resulting in what is called a reply network in some contexts). The resulting weight matrix is the transpose of the"frequency"
option.
- scaling
A
character
vector describing how to scale the weights defined bytype
. When a vector is provided, the scaling options are applied in the respective order. For example,c("rank", "minmax")
would first compute the ranks, then scale them to the unit interval using min-max normalization. An empty vector corresponds to no scaling. Currently supports the following options:"minmax"
performs min-max normalization to scale the weights to the unit interval. Note that if the smallest weight is positive, it will be zero after scaling."max"
Multiplies the weights by the reciprocal of the largest weight to scale the weights to the unit interval. This options preserves positive ranks, unlike"minmax"
when all weights are positive."rank"
Computes the ranks of the weights usingbase::rank()
withties.method = "average"
.
- cols
An
integer
/character
vector giving the indices/names of the columns that should be considered as sequence data. Defaults to all columns, i.e.,seq(1, ncol(x))
. The columns are automatically determined fortna_data
objects.- params
A
list
of additional arguments for models of specifictype
. The potential elements of this list are:n_gram
: Aninteger
for n-gram transitions specifying the number of adjacent events. The default value is 2.max_gap
: Aninteger
for the gap-allowed transitions specifying the largest allowed gap size. The default is 1.window_size
: Aninteger
for the sliding window transitions specifying the window size. The default is 2.weighted
: Alogical
value. IfTRUE
, the transitions are weighted by the inverse of the sequence length. Can be used for frequency, co-occurrence and reverse model types. The default isFALSE
.
- na.rm
A
logical
value that determines if observations withNA
value ingroup
be removed. IfFALSE
, an additional category forNA
values will be added. The default isFALSE
and a warning is issued ifNA
values are detected.
Value
An object of class group_tna
which is a list
containing one
element per cluster. Each element is a tna
object.
See also
Cluster-related functions
communities()
,
mmm_stats()
,
rename_groups()
Examples
group <- c(rep("High", 1000), rep("Low", 1000))
model <- group_model(group_regulation, group = group)
model <- group_model(engagement_mmm)
model <- group_tna(group_regulation, group = gl(2, 1000))
model <- group_ftna(group_regulation, group = gl(2, 1000))
model <- group_ctna(group_regulation, group = gl(2, 1000))