Calculates backward and forward linkages with an option to normalize values. Can calculate total and direct linkages. If the data is multiregional, intraregional and interregional linkages can be calculated. Can also be used on a specified subset of all regions.
linkages(io, ES = NULL, regions = "all", sectors = "all", type = c("total"),
normalize = FALSE, intra.inter = FALSE)
An object of class InputOutput
calculated from as.inputoutput
.
An object of class EasySelect
from easy.select
Character or Integer. Specific regions to be used. Can either be a character that exactly matches the name of the region in RS_label
or the number of the region in the order it appears in RS_label
.
Character or Integer. Specific sectors to be used. Can either be a character that exactly matches the name of the sector in RS_label
or the number of the sector in the order it RS_label
.
Character. Identifying the type of backward and forward linkages to be calculated. Options are "total"
and "direct"
.
Logical. Identifying whether or not to calculate normalized or raw linkages. Default is TRUE
Logical. Only applies to multiregional systems. Determines whether or not to calculate intraregional and interregional backward and forward linkages in addition to aggregate linkages.
Returns a data.frame
. The following are assigned to the column names to help identify which column is belongs to which. The first element of the column label is the region of interest, grabbed from RS_label
.
Backward linkages
Forward linkages
Intraregional linkages
Interregional linkages
Aggregate linkages
Total linkages
Direct linkages
There are arguments for type
of linkages, normalized
linkages, and intra.inter
linkages. Let (r) denote the dimension of the block in the transaction matrix of the region of interest and (s) denote the dimension of the rest. If there are (n) sectors and (m) regions then r = n and s = (m - 1)*s
type
: For the following types, if normalize = TRUE
then the calculation takes the specified form below. Otherwise if normalize = FALSE
then the denominator is removed:
"total"
caclculates the total backward and forward linkages. For backward linkages, this is the column sum of the Leontief inverse.
$$BL_{j}=\frac{\sum_{i=1}^{n}l_{ij}}{\frac{1}{n} \sum_{j=1}^{n}\sum_{i=1}^{n}l_{ij}}$$
For forward linkages, this is the row sum of the Goshian inverse.
$$FL_{i}=\frac{\frac{1}{n}\sum_{j=1}^{n}g_{ij}}{\frac{1}{n^{2}}\sum_{j=1}^{n}\sum_{i=1}^{n}g_{ij}}$$
"direct"
calculates the direct backward and forward linkages. For backward linkages, this is the column sum of the input matrix of technical coefficients (A):
$$BL_{j}=\frac{\sum_{i=1}^{n}a_{ij}}{\frac{1}{n} \sum_{j=1}^{n}\sum_{i=1}^{n}a_{ij}}$$
For forward linkages, this is the row sum of the output matrix of technical coefficients (B):
$$FL_{i}=\frac{\frac{1}{n}\sum_{j=1}^{n}b_{ij}}{\frac{1}{n^{2}}\sum_{j=1}^{n}\sum_{i=1}^{n}b_{ij}}$$
intra.inter
: This calculates the intraregional, interregional and aggregate backward and forward linkages. If intra.inter = FALSE
, then only calculates the aggregate. If normalize = FALSE
then the aggregate linkage is equivalent to the sum of the intraregional and interregional linkages. If normalize = TRUE
, then this is not the case. Note that normalizing adds the denominator to the following equations. Using matrix notation we have
$$BL.intra = \frac{1_r^\prime J_{rr}}{ \frac{1}{n*m} 1_r^\prime J_{rr} 1_r}$$
$$FL.intra = \frac{ J_{rr} 1_r}{ \frac{1}{n*m} 1_r^\prime J_{rr} 1_r}$$
$$BL.inter = \frac{1_s^\prime J_{sr}}{\frac{1}{n*m} 1_s J_{sr} 1_r }$$
$$FL.inter = \frac{J_{rs} 1_s}{\frac{1}{n*m} 1_r J_{rs} 1_s}$$
$$BL.agg = \frac{ 1 J_{.r}}{\frac{1}{n*m} 1 J_{.r} 1_r}$$
$$FL.agg = \frac{ J_{r.} 1}{\frac{1}{n*m} 1_r J_{r.}} 1 $$
Blair, P.D. and Miller, R.E. (2009). "Input-Output Analysis: Foundations and Extensions". Cambridge University Press
Nazara, Suahasil & Guo, Dong & Hewings, Geoffrey J.D., & Dridi, Chokri, 2003. "PyIO. Input-Output Analysis with Python". REAL Discussion Paper 03-t-23. University of Illinois at Urbana-Champaign. (http://www.real.illinois.edu/d-paper/03/03-t-23.pdf)
# NOT RUN {
data(toy.IO)
class(toy.IO)
link1 <- linkages(toy.IO)
link1$Hogwarts
data(toy.ES)
class(toy.ES)
link2 <- linkages(toy.IO, toy.ES)
link2
# More detailed
link3 <- linkages(toy.IO, regions = "Narnia", sectors = c("Wii","Pizza"),
type = c("total", "direct"), normalize = FALSE, intra.inter = TRUE)
link3
link4 <- linkages(toy.IO, regions = 1:2, sectors = c(1:3,5))
link4
# }
Run the code above in your browser using DataLab