Title: Markov Chain Analysis for Structural Behaviour and Stability
Type: Package
Version: 0.1.0
Author: Dr. Pramit Pandit [aut, cre], Mr. Ankit Kumar Singh [aut], Ms. Anita Sarkar [aut], Ms. Moumita Paul [aut], Dr. Bikramjeet Ghose [aut]
Maintainer: Dr. Pramit Pandit <pramitpandit@gmail.com>
Description: Analyses the stability and structural behaviour of export and import patterns across multiple countries using a Markov chain modelling framework. Constructs transition probability matrices to quantify changes in trade shares between successive periods, thereby capturing persistence, structural shifts, and inter-country interdependence in trade performance. By iteratively generating expected trade distributions over time, the approach facilitates assessment of stability, long-run equilibrium tendencies, and comparative dynamics in longitudinal trade data, providing a rigorous tool for empirical analysis of export–import behaviour. Methodological foundations follow standard Markov chain theory as described in Gagniuc (2017) <Doi:10.1002/9781119387596>.
License: GPL-3
Encoding: UTF-8
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2026-01-10 05:57:11 UTC; Pramit
Repository: CRAN
Date/Publication: 2026-01-15 17:10:02 UTC

Calculate Expected Values using a Transition Matrix

Description

Calculate Expected Values using a Transition Matrix

Usage

calculate_expected(df, tm)

Arguments

df

A data frame where the first column is a time indicator (e.g., Year) and subsequent columns contain numeric values for different entities.

tm

A square transition probability matrix (TPM) where dimensions match the number of entities in df.

Value

A data frame containing the original time indicator and the calculated expected values, rounded to 2 decimal places.

Examples

data <- data.frame(
  Year = 2009:2019,
  Country1 = c(136282.02, 182810.3, 252665.95, 170179.0, 227754.5,
               183355.08, 173966.0, 185902.24, 218786.72, 203095.96, 213821.57),
  Country2 = c(1204.78, 2977.8, 241496.85, 139362.9, 40466.0,
               183771.04, 18418.0, 158388.14, 50780.6, 38225.01, 140453.68),
  Country3 = c(61619.92, 46009.64, 54823.95, 57906.1, 60384.0,
               66320.51, 50699.0, 50737.0, 44180.35, 47064.0, 47672.62),
  Country4 = c(63837.63, 71175.86, 76595.18, 70274.68, 59258.64,
               68927.62, 72211.32, 62783.33, 34565.08, 29965.35, 35145.76),
  Country5 = c(8512.95, 11496.78, 32888.2, 22765.61, 23116.0,
               34457.4, 63048.0, 44125.08, 10829.03, 25439.9, 30022.83),
  Country6 = c(3400.56, 19675.75, 38339.7, 4721.01, 2686.8,
               33677.3, 15791.0, 22382.0, 627.0, 895.0, 34082.0),
  Country7 = c(65388.45, 99607.1, 135807.1, 70428.06, 95998.9,
               137877.31, 148593.09, 201386.55, 144250.42, 144501.89, 163244.46)
)

transition_matrix <- create_tpm(data)

expected_results <- calculate_expected(data, transition_matrix)
expected_results

Create a Transition Probability Matrix (TPM)

Description

Create a Transition Probability Matrix (TPM)

Usage

create_tpm(df)

Arguments

df

A data frame where the first column is a time indicator (e.g., Year) and subsequent columns contain numeric values for different entities (e.g., countries).

Value

A square matrix representing the transition probabilities between entities, rounded to 4 decimal places.

Examples

data <- data.frame(
  Year = 2009:2019,
  Country1 = c(136282.02, 182810.3, 252665.95, 170179.0, 227754.5,
               183355.08, 173966.0, 185902.24, 218786.72, 203095.96, 213821.57),
  Country2 = c(1204.78, 2977.8, 241496.85, 139362.9, 40466.0,
               183771.04, 18418.0, 158388.14, 50780.6, 38225.01, 140453.68),
  Country3 = c(61619.92, 46009.64, 54823.95, 57906.1, 60384.0,
               66320.51, 50699.0, 50737.0, 44180.35, 47064.0, 47672.62),
  Country4 = c(63837.63, 71175.86, 76595.18, 70274.68, 59258.64,
               68927.62, 72211.32, 62783.33, 34565.08, 29965.35, 35145.76),
  Country5 = c(8512.95, 11496.78, 32888.2, 22765.61, 23116.0,
               34457.4, 63048.0, 44125.08, 10829.03, 25439.9, 30022.83),
  Country6 = c(3400.56, 19675.75, 38339.7, 4721.01, 2686.8,
               33677.3, 15791.0, 22382.0, 627.0, 895.0, 34082.0),
  Country7 = c(65388.45, 99607.1, 135807.1, 70428.06, 95998.9,
               137877.31, 148593.09, 201386.55, 144250.42, 144501.89, 163244.46)
)

transition_matrix <- create_tpm(data)
transition_matrix