This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
License: CC BY-SA 4.0
Sugestão de citação: FIGUEIREDO, Adriano Marcos Rodrigues. MRIO_Exemplo de Porsse e Vale 2020. Campo Grande-MS, Brasil: RStudio/Rpubs, 2021. Disponível em https://rpubs.com/amrofi/mrio_exemplo.
Os dados originais vieram de Porsse e Vale (2020) como na figura, e dados originais em Miller e Blair (2009, p.82).
#
# Exemplo com duas regioes L e M
# 3 (três) setores produtivos em L
# 2 (dois) setores produtivos em M
# apenas DF= demanda final total
# apens VA = valor adicionado total
#
library(openxlsx)
library(knitr)
library(kableExtra)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:kableExtra':
##
## group_rows
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(scales)
library(ggrepel)
library(tibble)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
# Importando dados com o pacote openxls
# Consumo intermediário
Z <- read.xlsx("EXEMPLO_MRIO.xlsx", sheet = "Z", colNames = FALSE)
print(Z)
## X1 X2 X3 X4 X5
## 1 150 500 50 25 75
## 2 200 100 400 200 100
## 3 300 500 50 60 40
## 4 75 100 60 200 250
## 5 50 25 25 150 100
# Demanda final total
y <- read.xlsx("EXEMPLO_MRIO.xlsx", sheet = "y", colNames = FALSE)
print(y)
## X1
## 1 200
## 2 1000
## 3 50
## 4 515
## 5 450
# Valor Bruto da Produção (VBP)
x = read.xlsx("EXEMPLO_MRIO.xlsx", sheet = "x", colNames = FALSE)
print(x)
## X1
## 1 1000
## 2 2000
## 3 1000
## 4 1200
## 5 800
# Valor adicionado total
v = read.xlsx("EXEMPLO_MRIO.xlsx", sheet = "v", colNames = FALSE) # Valor adicionado
print(v)
## X1
## 1 225
## 2 775
## 3 415
## 4 565
## 5 235
Setores = read.xlsx("EXEMPLO_MRIO.xlsx", sheet = "set", colNames = FALSE) # Setores
print(Setores)
## X1
## 1 s1
## 2 s2
## 3 s3
class(Z) # Verificar classe do objeto Z [1] "data.frame"
## [1] "data.frame"
class(y)
## [1] "data.frame"
# Mudar classe dos objetos
Z = data.matrix(Z) # Consumo intermediário
y = data.matrix(y) # Demanda final
x = data.matrix(x) # Valor Bruto da Produção
x = as.vector(x) # Valor Bruto da Produção
v = data.matrix(v) # Valor adicionado
class(x)
## [1] "numeric"
x = as.vector(x)
class(v)
## [1] "matrix" "array"
# Salvar base de dados no formato RData
save(Z, y, x, v, file = "EXEMPLO_MRIO.RData")
O script desenvolve os cálculos em R e os resultados saem como em Miller e Blair (2009, p.83), respectivamente para a matriz de coeficientes técnicos, A, e a matriz inversa de Leontief, L, para o agregado.
Fonte: Miller e Blair (2009, p.83).
Fonte: Miller e Blair (2009, p.83).
# L <-Z %*% diag(c(1/X))
A = Z %*% diag(c(1 / x)) # Matriz de coeficientes técnicos
writexl::write_xlsx(x=data.frame(A),"A.xlsx")
print(A)
## [,1] [,2] [,3] [,4] [,5]
## 1 0.150 0.2500 0.050 0.02083333 0.09375
## 2 0.200 0.0500 0.400 0.16666667 0.12500
## 3 0.300 0.2500 0.050 0.05000000 0.05000
## 4 0.075 0.0500 0.060 0.16666667 0.31250
## 5 0.050 0.0125 0.025 0.12500000 0.12500
n = length(x) # Número de setores
I = diag(n) # Matriz identidade
print(I) # Matriz identidade
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 0 0 0 0
## [2,] 0 1 0 0 0
## [3,] 0 0 1 0 0
## [4,] 0 0 0 1 0
## [5,] 0 0 0 0 1
# atentar para notação da matriz Leontief como B e não L
# **em alguns pacotes B será a matriz de Gosh**
#
B = solve(I - A) # Matriz inversa de Leontief
#View(B) # Matriz inversa de Leontief
print(B)
## 1 2 3 4 5
## [1,] 1.4234091 0.4652263 0.29090939 0.1916932 0.3040543
## [2,] 0.6346126 1.4236653 0.67067995 0.4092164 0.4558483
## [3,] 0.6382907 0.5368698 1.33625161 0.2501219 0.3107705
## [4,] 0.2671947 0.2000077 0.19734869 1.3406125 0.5472678
## [5,] 0.1468111 0.0908341 0.09257582 0.2154623 1.2538041
ioanalysis
library(ioanalysis)
## Loading required package: plot3D
## Loading required package: lpSolve
RS_label = read.xlsx("EXEMPLO_MRIO.xlsx", sheet = "RS_label", colNames = FALSE) # "RS_label"
# V_label 1x1
V_label<-matrix(rep(c("VAtotal"),5),ncol = 1)
# f_label
label <- c("DT")
region <- c("L","M")
f_label <- rbind(region, label)
#
# objeto inputoutput do ioanalysis
mrio_exemplo<-as.inputoutput(Z=Z,RS_label =RS_label,#f=y,f_label = f_label,
X=x)#,V=v,V_label =V_label)
##
## Final Demand matrix (f) was not provided. Calculating aggregate Final Demand...
key1 <- key.sector(mrio_exemplo,
ES = NULL, crit = 3, regions = "all", sectors = "all",
type = c("direct","total"), intra.inter = T)
# resultados não-normalizados
# lembrar que o ioanalysis faz FL com a matriz de Gosh
print(key1$L)
## BL.intra.dir FL.intra.dir key.intra.dir BL.inter.dir FL.inter.dir
## s1 0.65 0.70 I 0.1250 0.10
## s2 0.55 0.35 I 0.0625 0.15
## s3 0.50 0.85 I 0.0850 0.10
## key.inter.dir BL.agg.dir FL.agg.dir key.agg.dir BL.intra.tot FL.intra.tot
## s1 I 0.7750 0.80 I 2.696312 2.644771
## s2 I 0.6125 0.50 I 2.425761 2.076312
## s3 I 0.5850 0.95 I 2.297841 3.048282
## key.intra.tot BL.inter.tot FL.inter.tot key.inter.tot BL.agg.tot FL.agg.tot
## s1 I 0.4140058 0.4732752 I 3.110318 3.118046
## s2 I 0.2908418 0.4278691 I 2.716603 2.504181
## s3 II 0.2899245 0.5487626 I 2.587765 3.597045
## key.agg.tot
## s1 III
## s2 I
## s3 II
print(key1$M)
## BL.intra.dir FL.intra.dir key.intra.dir BL.inter.dir FL.inter.dir
## s1 0.2916667 0.3750 I 0.23750 0.1958333
## s2 0.4375000 0.3125 I 0.26875 0.1250000
## key.inter.dir BL.agg.dir FL.agg.dir key.agg.dir BL.intra.tot FL.intra.tot
## s1 I 0.5291667 0.5708333 I 1.556075 1.705458
## s2 I 0.7062500 0.4375000 I 1.801072 1.576997
## key.intra.tot BL.inter.tot FL.inter.tot key.inter.tot BL.agg.tot FL.agg.tot
## s1 I 0.8510315 0.7204656 I 2.407106 2.425923
## s2 I 1.0706730 0.5263189 I 2.871745 2.103316
## key.agg.tot
## s1 I
## s2 I
print(mrio_exemplo$B)
## X1 X2 X3 X4 X5
## [1,] 0.1500 0.50000000 0.05000 0.0250000 0.0750000
## [2,] 0.1000 0.05000000 0.20000 0.1000000 0.0500000
## [3,] 0.3000 0.50000000 0.05000 0.0600000 0.0400000
## [4,] 0.0625 0.08333333 0.05000 0.1666667 0.2083333
## [5,] 0.0625 0.03125000 0.03125 0.1875000 0.1250000
print(mrio_exemplo$G)
## [,1] [,2] [,3] [,4] [,5]
## X1 1.4234091 0.9304526 0.2909094 0.2300318 0.2432434
## X2 0.3173063 1.4236653 0.3353400 0.2455298 0.1823393
## X3 0.6382907 1.0737396 1.3362516 0.3001463 0.2486164
## X4 0.2226622 0.3333462 0.1644572 1.3406125 0.3648452
## X5 0.1835139 0.2270853 0.1157198 0.3231934 1.2538041
# resultados não-normalizados
key2<-linkages(mrio_exemplo,
ES = NULL, regions = "all", sectors = "all",
type = c("direct","total"), intra.inter = T,
normalize = F)
knitr::kable(cbind(RS_label,
rbind(as.data.frame(round(key2$L,3)),as.data.frame(round(key2$M,3)))))
X1 | X2 | BL.intra.dir | FL.intra.dir | BL.inter.dir | FL.inter.dir | BL.agg.dir | FL.agg.dir | BL.intra.tot | FL.intra.tot | BL.inter.tot | FL.inter.tot | BL.agg.tot | FL.agg.tot |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
L | s1 | 0.650 | 0.700 | 0.125 | 0.100 | 0.775 | 0.800 | 2.696 | 2.645 | 0.414 | 0.473 | 3.110 | 3.118 |
L | s2 | 0.550 | 0.350 | 0.062 | 0.150 | 0.613 | 0.500 | 2.426 | 2.076 | 0.291 | 0.428 | 2.717 | 2.504 |
L | s3 | 0.500 | 0.850 | 0.085 | 0.100 | 0.585 | 0.950 | 2.298 | 3.048 | 0.290 | 0.549 | 2.588 | 3.597 |
M | s1 | 0.292 | 0.375 | 0.238 | 0.196 | 0.529 | 0.571 | 1.556 | 1.705 | 0.851 | 0.720 | 2.407 | 2.426 |
M | s2 | 0.438 | 0.312 | 0.269 | 0.125 | 0.706 | 0.438 | 1.801 | 1.577 | 1.071 | 0.526 | 2.872 | 2.103 |
#
#multiplicadores
mult=ioanalysis::multipliers(mrio_exemplo,multipliers = c("output","input"))
tabela<-rbind(round(mult$L,3),round(mult$M,3))
tabela<-cbind(RS_label, tabela)
tabela
# Total field of influence
fit = f.influence.total(mrio_exemplo)
heatmap.io(fit, RS_label, low = '#00fcef', high = 'blueviolet')
p<-heatmap.io(fit, RS_label, low = '#00fcef', high = 'blueviolet',
FUN = NULL, max = 12)
p
heatmap.io(fit, RS_label)
MILLER, R.E.; BLAIR, P.D. Input–Output Analysis: Foundations and Extensions, 2nd ed. Cambridge: Cambridge University Press, 2009.
PORSSE, A.; VALE, V. Insumo-Produto: Modelos Inter-regionais. Curitiba: NEDUR-UFPR,2020. Disponível em: http://www.nedur.ufpr.br/portal/wp-content/uploads/2020/08/09-insumo-produto-modelos-inter-regionais.pdf.