R6 class for multi-regional input-output matrix (MIOM). This class inherits from the iom class and extends its functionality to handle multi-regional input-output tables such as the World Input-Output Database (WIOD) and EXIOBASE tables.

Value

A new instance of the miom class.

Super class

fio::iom -> miom

Public fields

countries

(character)
Vector of country names/codes.

sectors

(character)
Vector of sector names/codes.

n_countries

(integer)
Number of countries in the matrix.

n_sectors

(integer)
Number of sectors per country.

bilateral_trade

(list)
Bilateral trade flows between countries by sector.

domestic_intermediate_transactions

(list)
List of domestic intermediate transaction matrices by country.

international_intermediate_transactions

(list)
List of international intermediate transaction matrices between countries.

multiregional_multipliers

(data.frame)
Multi-regional output multipliers including intra-regional, inter-regional, and spillover effects.

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage

miom$new(
  id,
  intermediate_transactions,
  total_production,
  countries,
  sectors,
  household_consumption = NULL,
  government_consumption = NULL,
  exports = NULL,
  final_demand_others = NULL,
  imports = NULL,
  taxes = NULL,
  wages = NULL,
  operating_income = NULL,
  value_added_others = NULL,
  occupation = NULL
)

Arguments

id

(character)
Identifier for the multi-regional input-output matrix.

intermediate_transactions

(matrix)
Multi-regional intermediate transactions matrix. Rows and columns should follow the structure: Country1_Sector1, Country1_Sector2, ..., Country2_Sector1, etc.

total_production

(matrix)
Total production vector by country and sector.

countries

(character)
Vector of country names/codes in the matrix.

sectors

(character)
Vector of sector names/codes in the matrix.

household_consumption

(matrix)
Household consumption vector by country and sector.

government_consumption

(matrix)
Government consumption vector by country and sector.

exports

(matrix)
Exports vector by country and sector.

final_demand_others

(matrix)
Other vectors of final demand that doesn't have dedicated slots.

imports

(matrix)
Imports vector by country and sector.

taxes

(matrix)
Taxes vector by country and sector.

wages

(matrix)
Wages vector by country and sector.

operating_income

(matrix)
Operating income vector by country and sector.

value_added_others

(matrix)
Other vectors of value-added that doesn't have dedicated slots.

occupation

(matrix)
Occupation matrix by country and sector.


Method extract_country()

Extract domestic input-output matrix for a specific country.

Usage

miom$extract_country(country)

Arguments

country

(character)
Country name/code to extract.

Returns

An iom object for the specified country.


Method get_bilateral_trade()

Get bilateral trade flows between two countries by sector.

Usage

miom$get_bilateral_trade(origin_country, destination_country)

Arguments

origin_country

(character)
Origin country name/code.

destination_country

(character)
Destination country name/code.

Returns

A matrix of trade flows by sector from origin to destination.


Method get_country_summary()

Get summary statistics by country for multipliers.

Usage

miom$get_country_summary()

Returns

A data.frame with summary statistics by country.


Method compute_multiplier_output()

Override the parent compute_multiplier_output to add country/sector information.

Usage

miom$compute_multiplier_output()

Returns

Self (invisibly).


Method compute_key_sectors()

Override the parent compute_key_sectors to add country/sector information.

Usage

miom$compute_key_sectors(matrix = "leontief")

Arguments

matrix

(character)
Which matrix to use for forward linkage computation: "leontief" or "ghosh".

Returns

Self (invisibly).


Method compute_multiregional_multipliers()

Compute multi-regional output multipliers following Miller & Blair (2009). This includes intra-regional, inter-regional, and spillover multipliers.

Usage

miom$compute_multiregional_multipliers()

Returns

Self (invisibly).


Method get_spillover_matrix()

Compute spillover effects matrix showing how shocks in each region-sector affect output in all other regions. Returns the inter-regional elements from the Leontief inverse matrix (excluding intra-regional effects).

Usage

miom$get_spillover_matrix()

Returns

A matrix of spillover effects.


Method get_net_spillover_matrix()

Compute net spillover effects for each country pair. Net spillover represents the difference in total spillover effects between country pairs, showing which country benefits more from economic shocks in the other. Uses the spillover matrix (Leontief inverse with intra-regional effects set to zero).

Usage

miom$get_net_spillover_matrix()

Returns

A matrix showing net spillover effects between countries.


Method get_regional_interdependence()

Compute regional self-reliance and interdependence measures.

Usage

miom$get_regional_interdependence()

Returns

A data.frame with self-reliance and interdependence measures by country.


Method clone()

The objects of this class are cloneable with this method.

Usage

miom$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Sample multi-regional data (2 countries, 2 sectors each)
countries <- c("BRA", "CHN")
sectors <- c("Agriculture", "Manufacturing")

# Create country-sector labels
labels <- paste(rep(countries, each = 2), rep(sectors, 2), sep = "_")

# Sample intermediate transactions matrix (4x4)
intermediate_transactions <- matrix(
  c(
    10, 5, 2, 1,
    8, 15, 3, 2,
    1, 2, 12, 4,
    2, 3, 6, 18
  ),
  nrow = 4, ncol = 4,
  dimnames = list(labels, labels)
)

# Total production vector
total_production <- matrix(c(100, 120, 80, 110),
  nrow = 1, ncol = 4,
  dimnames = list(NULL, labels)
)

# Create MIOM instance
my_miom <- miom$new(
  id = "sample_miom",
  intermediate_transactions = intermediate_transactions,
  total_production = total_production,
  countries = countries,
  sectors = sectors
)