@@ -4,28 +4,103 @@ jupytext:
4
4
extension : .md
5
5
format_name : myst
6
6
format_version : 0.13
7
- jupytext_version : 1.14.4
7
+ jupytext_version : 1.14.5
8
8
kernelspec :
9
9
display_name : Python 3 (ipykernel)
10
10
language : python
11
11
name : python3
12
12
---
13
13
14
+ +++ {"user_expressions": [ ] }
15
+
14
16
(input_output)=
15
17
16
18
In this lecture, we will need the following library.
17
19
18
- +++
20
+ +++ {"user_expressions": [ ] }
19
21
20
22
# Input-Output Models
21
23
22
24
## Overview
23
25
24
- We adopt notation in chapters 8 and 9 of the classic book {cite}` DoSSo ` .
26
+ The following figure illustrates a network of linkages between 71 sectors obtained from the US Bureau of Economic Analysis’s
27
+ 2019 Input-Output Accounts Data.
28
+
29
+ ``` {code-cell} ipython3
30
+ ---
31
+ jupyter:
32
+ outputs_hidden: true
33
+ source_hidden: true
34
+ ---
35
+ pip install --upgrade quantecon_book_networks
36
+ pip install quantecon
37
+ ```
38
+
39
+ ``` {code-cell} ipython3
40
+ import numpy as np
41
+ import pandas as pd
42
+ import networkx as nx
43
+ ```
44
+
45
+ ``` {code-cell} ipython3
46
+ #hide
47
+
48
+ import quantecon as qe
49
+ import quantecon_book_networks
50
+ import quantecon_book_networks.input_output as qbn_io
51
+ import quantecon_book_networks.plotting as qbn_plt
52
+ import quantecon_book_networks.data as qbn_data
53
+ ch2_data = qbn_data.production()
54
+ import matplotlib.pyplot as plt
55
+ import matplotlib.cm as cm
56
+ import matplotlib.colors as plc
57
+ from matplotlib import cm
58
+ quantecon_book_networks.config("matplotlib")
59
+ import matplotlib as mpl
60
+ mpl.rcParams.update(mpl.rcParamsDefault)
61
+
62
+ codes_71 = ch2_data['us_sectors_71']['codes']
63
+ A_71 = ch2_data['us_sectors_71']['adjacency_matrix']
64
+ X_71 = ch2_data['us_sectors_71']['total_industry_sales']
65
+
66
+ centrality_71 = qbn_io.eigenvector_centrality(A_71)
67
+ color_list_71 = qbn_io.colorise_weights(centrality_71,beta=False)
68
+
69
+ fig, ax = plt.subplots(figsize=(10, 12))
70
+ plt.axis("off")
71
+
72
+ qbn_plt.plot_graph(A_71, X_71, ax, codes_71,
73
+ node_size_multiple=0.0005,
74
+ edge_size_multiple=4.0,
75
+ layout_type='spring',
76
+ layout_seed=5432167,
77
+ tol=0.01,
78
+ node_color_list=color_list_71)
79
+
80
+ plt.show()
81
+ ```
82
+
83
+ +++ {"user_expressions": [ ] }
84
+
85
+ An arrow from $i$ to $j$ implies that sector $i$ supplies some of its output as raw material to sector $j$.
86
+
87
+ Economies are characterised by many such complex and interdependent multisector production networks.
88
+
89
+ A basic framework for their analysis is [ Leontief's] ( https://en.wikipedia.org/wiki/Wassily_Leontief ) input-output model.
90
+
91
+ This model's key aspect is its simplicity.
92
+
93
+ In this lecture, we introduce the standard input-ouput model and approach it as a [ linear programming] (link to lpp lecture) problem.
94
+
95
+ +++ {"user_expressions": [ ] }
25
96
26
- We let
97
+ ## Input Output Analysis
27
98
28
- * $X_0$ be the amount of a single exogenous input to production. We'll call this input labor
99
+ We adopt notation from chapters 9 and 10 of the classic book {cite}` DoSSo ` .
100
+
101
+ Let
102
+
103
+ * $X_0$ be the amount of a single exogenous input to production, say labor
29
104
* $X_j, j = 1,\ldots n$ be the gross output of final good $j$
30
105
* $C_j, j = 1,\ldots n$ be the net output of final good $j$ that is available for final consumption
31
106
* $x_ {ij} $ be the quantity of good $i$ allocated to be an input to producing good $j$ for $i=1, \ldots n$, $j = 1, \ldots n$
@@ -43,9 +118,45 @@ X_j = \min_{i \in \{0, \ldots , n \}} \left( \frac{x_{ij}}{a_{ij}}\right)
43
118
$$
44
119
45
120
46
- To illustrate ideas, we'll begin by setting $n =2$.
121
+ To illustrate ideas, we begin by setting $n =2$.
122
+
123
+ The following is a simple illustration of this network.
124
+
125
+ ``` {code-cell} ipython3
126
+ ---
127
+ jupyter:
128
+ source_hidden: true
129
+ ---
130
+ G = nx.DiGraph()
131
+
132
+ nodes= (1,2)
133
+ edges = ((1,1),(1,2),(2,1),(2,2))
134
+ G.add_nodes_from(nodes)
135
+ G.add_edges_from(edges)
136
+
137
+ pos_list = ([0,0],[2,0])
138
+ pos = dict(zip(G.nodes(), pos_list))
139
+ labels = (f'a_{11}',f'a_{12}',r'$a_{21}$',f'a_{22}')
140
+ edge_labels = dict(zip(G.edges(), labels))
141
+
142
+ plt.axis("off")
143
+
144
+ nx.draw_networkx_nodes(G, pos=pos,node_size=800,node_color = 'white', edgecolors='black')
145
+ nx.draw_networkx_labels(G, pos=pos)
146
+ nx.draw_networkx_edges(G,pos = pos,node_size=300,connectionstyle='arc3,rad=0.2',arrowsize=10,min_target_margin=15)
147
+ #nx.draw_networkx_edge_labels(G, pos=pos, edge_labels = edge_labels)
148
+ plt.text(0.055,0.125, r'$x_{11}$')
149
+ plt.text(1.825,0.125, r'$x_{22}$')
150
+ plt.text(0.955,0.075, r'$x_{21}$')
151
+ plt.text(0.955,-0.05, r'$x_{12}$')
152
+
153
+
154
+ plt.show()
155
+ ```
156
+
157
+ +++ {"user_expressions": [ ] }
47
158
48
- Feasible allocations must satisfy
159
+ #### Feasible allocations must satisfy
49
160
50
161
$$
51
162
\begin{aligned}
182
293
183
294
where $^*$'s denote optimal choices for the primal and dual problems.
184
295
185
- +++
296
+ ```{code-cell} ipython3
297
+
298
+ ```
186
299
187
300
## Exercise
188
301
231
344
232
345
where $L$ is a vector of labor services used in each industry.
233
346
234
-
235
-
236
-
237
-
238
-
239
-
240
347
```{code-cell} ipython3
241
348
242
349
```
0 commit comments