micmac_analysis: MICMAC Analysis

View source: R/micmac.R

micmac_analysisR Documentation

MICMAC Analysis

Description

Performs MICMAC (Cross-Impact Matrix Multiplication Applied to Classification) analysis on a reachability matrix to classify elements based on their driving power and dependence power.

Usage

micmac_analysis(reach_matrix)

Arguments

reach_matrix

A square reachability matrix (n x n) with 0/1 entries, typically computed using compute_reachability.

Details

MICMAC analysis is a complementary technique to ISM that helps identify the key drivers and dependent variables in a system.

Driving Power: The number of elements that a given element can reach (row sum of reachability matrix).

Dependence Power: The number of elements that can reach a given element (column sum of reachability matrix).

Elements are classified into four clusters based on whether their driving and dependence powers are above or below the median values.

Value

An object of class micmac_result, which is a data frame with:

  • node: node index

  • label: node label (from matrix dimnames or numeric)

  • driving_power: number of elements this node can reach

  • dependence_power: number of elements that can reach this node

  • cluster: classification into one of four clusters

The four clusters are:

I - Autonomous

Low driving power, low dependence. Disconnected from system.

II - Dependent

Low driving power, high dependence. Outcomes/results.

III - Linkage

High driving power, high dependence. Unstable, key connectors.

IV - Independent

High driving power, low dependence. Root causes/drivers.

References

Duperrin, J. C., & Godet, M. (1973). Methode de hierarchisation des elements d'un systeme. Rapport economique du CEA, R-45-41.

Warfield, J. N. (1974). Developing interconnection matrices in structural modeling. IEEE Transactions on Systems, Man, and Cybernetics, SMC-4(1), 81-87. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1109/TSMC.1974.5408524")}

See Also

plot_micmac for visualization, compute_reachability for computing reachability matrices, level_partitioning for hierarchical decomposition.

Examples

# Create adjacency matrix
adj <- matrix(c(0, 1, 0, 0, 0,
                0, 0, 1, 0, 0,
                0, 0, 0, 1, 1,
                0, 0, 0, 0, 0,
                0, 0, 0, 0, 0), nrow = 5, byrow = TRUE)
rownames(adj) <- colnames(adj) <- paste0("F", 1:5)

# Compute reachability and MICMAC
reach <- compute_reachability(adj)
micmac <- micmac_analysis(reach)
print(micmac)

# View cluster distribution
table(micmac$cluster)

ISMtools documentation built on March 13, 2026, 1:06 a.m.