Este taller convierte la inversa de Leontief en medidas de impacto. Cada multiplicador se presenta con la misma estructura: qué pregunta responde, cómo se define, cómo se calcula en R y cómo se interpreta. El ejemplo numérico es el de Miller y Blair (2009), sección 6.4.3: una economía de tres sectores con los hogares separados en dos grupos de ingreso.

Referencia Bibliográfica: La referencia para la formulación es Miller, R. y Blair, P. (2009), Input-Output Analysis: Foundations and Extensions, 2.ª ed., Cambridge University Press, capítulo 6 (secciones 6.1 a 6.2.5 y 6.4.3) y sección 2.5.


Modelo abierto y modelo cerrado respecto de los hogares [en clase]

En el modelo abierto los hogares son parte de la demanda final. Compran a los sectores (la columna de consumo de hogares) y venden trabajo a los sectores (la fila de remuneraciones; recordar pago a los factores productivos), pero el modelo no conecta las dos cosas: si sube la producción, suben las remuneraciones, y ahí termina la historia. El consumo de los hogares es un dato exógeno, como las exportaciones o el gasto de gobierno.

\[\mathbf{x} = \mathbf{A}\mathbf{x} + \mathbf{f} \quad\Longrightarrow\quad \mathbf{x} = (\mathbf{I}-\mathbf{A})^{-1}\mathbf{f} = \mathbf{L}\,\mathbf{f}\]

En el modelo cerrado respecto de los hogares se traslada a los hogares al interior de la matriz, como si fueran un sector más: se transforma en el modelo en el sector \(n+1\). Su “producción” es el ingreso que reciben por su trabajo y sus “insumos” son los bienes que consumen. La fila de remuneraciones se convierte en una fila de coeficientes, \(h_R\), y la columna de consumo en una columna de coeficientes, \(h_C\) (Miller y Blair, sección 2.5):

\[h_{R,j} = a_{n+1,j} = \frac{z_{n+1,j}}{x_j} \;\;(\text{ingreso de los hogares por peso producido en } j), \qquad h_{C,i} = a_{i,n+1}=\frac{z_{i,n+1}}{x_{n+1}} \;\;(\text{consumo del bien } i \text{ por peso de ingreso de los hogares})\]

\[\bar{\mathbf{A}} = \begin{pmatrix}\mathbf{A} & h_C\\ h_R & h\end{pmatrix}, \qquad \bar{\mathbf{L}} = (\mathbf{I}-\bar{\mathbf{A}})^{-1} = \begin{pmatrix}\bar{\mathbf{L}}_{11} & \bar{\mathbf{L}}_{12}\\ \bar{\mathbf{L}}_{21} & \bar{\mathbf{L}}_{22}\end{pmatrix}\]

El elemento \(h\) (pagos de hogares a hogares, por ejemplo servicio doméstico) suele fijarse en cero o un valor muy bajo. La demanda final que queda fuera, \(\mathbf{f}^{*}\), ya no incluye el consumo de hogares.

Lo que cambia es la cadena de efectos. Un peso adicional de demanda final en el sector \(j\) produce:

Efecto Qué es Dónde está
Inicial El peso que el sector \(j\) debe producir \(\mathbf{I}\)
Directo Los insumos que \(j\) compra a los demás sectores para producir ese peso \(\mathbf{A}\)
Indirecto Los insumos que esos proveedores compran a su vez, ronda tras ronda \(\mathbf{A}^2 + \mathbf{A}^3 + \cdots\)
Inducido El consumo que financian las remuneraciones generadas en todas las rondas anteriores, y las rondas que ese consumo desata Solo en \(\bar{\mathbf{L}}\)

El modelo abierto captura inicial, directo e indirecto: todo lo que está en \(\mathbf{L}\). El modelo cerrado agrega el efecto inducido: la diferencia entre \(\bar{\mathbf{L}}_{11}\) y \(\mathbf{L}\). Los multiplicadores que se presentan a continuación hacen la distinción entre el modelo abierto y el modelo cerrado. Desde esta diferencia se derivan los multiplicadores tipo I y uno tipo II.


Datos del ejemplo [en clase]

Usaremos el ejemplo propuesto por Miller y Blair (2009, p. 275). Como puede notar, se proponen directamente los coeficientes técnicos \(\mathbf{A}\), los coeficientes de ingreso de los dos grupos de hogares \(\mathbf{V}\) y los coeficientes de consumo de los hogares \(\mathbf{C}\). También, para el calculo de los multiplicadores de empleo usaremos información que no aparece en el texto sobre la producción \(\mathbf{x}\) y el empleo \(\mathbf{e}\) (la asumiremos).

Con tres sectores y dos grupos de hogares la matriz aumentada es de \(5 \times 5\).

n <- 3
sectores <- c("S1", "S2", "S3")
hogares  <- c("Hogares_1", "Hogares_2")

# Coeficientes técnicos a_ij = z_ij / x_j (columna j: lo que compra j por peso producido)
A <- matrix(c(0.15, 0.20, 0.30,
              0.25, 0.05, 0.25,
              0.05, 0.40, 0.05), nrow = n, byrow = FALSE,
            dimnames = list(sectores, sectores))
print(A)
#>      S1   S2   S3
#> S1 0.15 0.25 0.05
#> S2 0.20 0.05 0.40
#> S3 0.30 0.25 0.05
# Coeficientes de ingreso/salarios: v_gj = ingreso del grupo g por peso producido en j (2 x 3)
V <- matrix(c(0.05, 0.10, 0.08,
              0.12, 0.05, 0.10), nrow = 2, byrow = TRUE,
            dimnames = list(hogares, sectores))
print(V)
#>             S1   S2   S3
#> Hogares_1 0.05 0.10 0.08
#> Hogares_2 0.12 0.05 0.10
# Coeficientes de consumo: c_ig = consumo del bien i por peso de ingreso del grupo g (3 x 2)
C <- matrix(c(0.10, 0.05,
              0.20, 0.10,
              0.01, 0.10), nrow = n, byrow = TRUE,
            dimnames = list(sectores, hogares))
print(C)
#>    Hogares_1 Hogares_2
#> S1      0.10      0.05
#> S2      0.20      0.10
#> S3      0.01      0.10
# Supuestos (no están en el libro): producción en millones de pesos y empleo en personas (se usarán posteriormente para calcular los multiplicadores de empleo)
x <- c(S1 = 1000, S2 = 2000, S3 = 1000)
e <- c(S1 = 2000, S2 = 3200, S3 = 5000)

RECORDAR LECTURA DEL COEFICIENTE: A["S2","S1"] \(= 0{,}20\) dice que por cada peso que produce el sector 1 compra 0,20 al sector 2. V["Hogares_2","S1"] \(= 0{,}12\) dice que de cada peso producido en el sector 1, 12 centavos son ingreso de los hogares del grupo 2. C["S2","Hogares_1"] \(= 0{,}20\) dice que de cada peso de ingreso del grupo 1, 20 centavos se gastan en el bien del sector 2.

# Construimos matriz A aumentada, incluyendo los hogares como sector adicional
A_bar <- rbind(cbind(A, C), cbind(V, matrix(0, 2, 2)))   # matriz aumentada 5 x 5
dimnames(A_bar) <- list(c(sectores, hogares), c(sectores, hogares))
print(A_bar)
#>             S1   S2   S3 Hogares_1 Hogares_2
#> S1        0.15 0.25 0.05      0.10      0.05
#> S2        0.20 0.05 0.40      0.20      0.10
#> S3        0.30 0.25 0.05      0.01      0.10
#> Hogares_1 0.05 0.10 0.08      0.00      0.00
#> Hogares_2 0.12 0.05 0.10      0.00      0.00

OPCIONAL: Para los multiplicadores de ingreso necesitamos el ingreso total de los hogares por peso producido, que es la fila \(h_R\) del modelo con un solo sector de hogares. Se obtiene sumando los dos grupos:

h_R <- colSums(V) # a_{n+1,j} en la notación del libro
h_R
#>   S1   S2   S3 
#> 0.17 0.15 0.18

Las dos matrices inversas de Leontief [en clase]

I_n <- diag(n) 
L <- solve(I_n - A) # Modelo abierto
dimnames(L) <- dimnames(A)

L_bar <- solve(diag(n + 2) - A_bar) # Modelo cerrado
dimnames(L_bar) <- dimnames(A_bar)

# Matriz Inversa de Leontief Modelo Abierto
round(L, 4)
#>        S1     S2     S3
#> S1 1.3651 0.4253 0.2509
#> S2 0.5273 1.3481 0.5954
#> S3 0.5698 0.4890 1.2885
# Matriz Inversa de Leontief Modelo Cerrado (aumentada; sin truncar)
round(L_bar, 4)
#>               S1     S2     S3 Hogares_1 Hogares_2
#> S1        1.4445 0.4994 0.3234    0.2476    0.1545
#> S2        0.6496 1.4609 0.7062    0.3642    0.2492
#> S3        0.6577 0.5644 1.3648    0.1923    0.2258
#> Hogares_1 0.1898 0.2162 0.1960    1.0642    0.0507
#> Hogares_2 0.2716 0.1894 0.2106    0.0671    1.0536

Un peso de demanda final en el sector 1, efecto por efecto

j <- 1
inicial   <- I_n[, j]
directo   <- A[, j]
indirecto <- L[, j] - I_n[, j] - A[, j]
inducido  <- L_bar[1:n, j] - L[, j]
descomp <- cbind(inicial, directo, indirecto, inducido, total_abierto = L[, j], total_cerrado = L_bar[1:n, j])
round(descomp, 4)
#>    inicial directo indirecto inducido total_abierto total_cerrado
#> S1       1    0.15    0.2151   0.0794        1.3651        1.4445
#> S2       0    0.20    0.3273   0.1223        0.5273        0.6496
#> S3       0    0.30    0.2698   0.0878        0.5698        0.6577
colSums(descomp)
#>       inicial       directo     indirecto      inducido total_abierto 
#>       1.00000       0.65000       0.81226       0.28952       2.46226 
#> total_cerrado 
#>       2.75178

Un peso de demanda final en el sector 1 exige 1 peso de producción en el sector 1 (inicial), 0,65 de compras directas repartidas en los tres sectores (directo), 0,81 más en las rondas sucesivas (indirecto) y, si los hogares gastan lo que ganan, otros 0,29 (inducido). El modelo abierto se queda en 2,46; el cerrado llega a 2,75. Los números de la última línea son los multiplicadores de producto, ya revisado en clases, pero distinguiendo entre el modelo abierto y el modelo cerrado.


Multiplicador de producto [en clase]

Pregunta que responde. Si la demanda final del sector \(j\) sube en un peso, ¿cuánto tiene que subir la producción de toda la economía?

Definición. El multiplicador de producto del modelo abierto es la suma de la columna \(j\) de la inversa de Leontief (6.4). El del modelo cerrado es la suma de la columna \(j\) de la inversa cerrada (6.9); como la fila \(n+1\) de \(\bar{\mathbf{L}}\) es ingreso de hogares, no producción, Miller y Blair definen además la versión truncada, que suma solo sobre los \(n\) sectores.

\[m(o)_j = \sum_{i=1}^{n} l_{ij}, \qquad \bar{m}(o)_j = \sum_{i=1}^{n+1} \bar{l}_{ij}, \qquad \bar{m}[o(t)]_j = \sum_{i=1}^{n} \bar{l}_{ij}\]

En forma matricial, con \(\mathbf{i}\) el vector de unos: \(\mathbf{m}(o) = \mathbf{i}'\mathbf{L}\).

m_o <- colSums(L) # modelo abierto opción A (6.4)

vector_fila <- matrix(rep(1, 3), nrow = 1, ncol = 3)
m_o_b <- vector_fila%*%L # modelo abierto opción B (6.4)
  
m_o_total <- colSums(L_bar[, 1:n])   # modelo cerrado (6.9): incluye las filas de hogares
m_o_trunc <- colSums(L_bar[1:n, 1:n])# modelo cerrado, truncado: solo filas de sectores

mult_producto <- rbind(abierto = m_o, cerrado = m_o_total, cerrado_truncado = m_o_trunc)
round(mult_producto, 4)
#>                      S1     S2     S3
#> abierto          2.4623 2.2624 2.1348
#> cerrado          3.2132 2.9303 2.8010
#> cerrado_truncado 2.7518 2.5247 2.3945
par(mar = c(4, 4.5, 3, 1))
barplot(mult_producto[c("abierto", "cerrado_truncado"), ], beside = TRUE, border = NA,
        col = c("#6E7F66", "#A85C32"), ylim = c(0, 3.2), ylab = "Pesos de producción por peso de demanda final",
        legend.text = c("Modelo abierto", "Modelo cerrado (truncado)"),
        args.legend = list(x = "topright", bty = "n", cex = 0.9),
        main = "Multiplicadores de producto")
abline(h = 1, lty = 3)

Interpretación. Un peso de demanda final del sector 1 genera 2,46 pesos de producción en la economía si los hogares no se incluyen como sector, y 2,75 si gastan su ingreso adicional. El sector 1 es el que más arrastra; el 3, el que menos. La diferencia entre las dos barras de cada sector es el efecto inducido sobre la producción.

Qué significa la versión cerrada no truncada. Los 3,21 del sector 1 suman producción (2,75) e ingreso de hogares (0,46). Mezcla dos cosas distintas y por eso en la práctica se informa la versión truncada cuando se habla de producción. Hay que decir cuál de las dos se está reportando.


Multiplicador de ingreso [en clase]

Pregunta que responde. Si la demanda final del sector \(j\) sube en un peso, ¿cuánto ingreso adicional reciben los hogares en toda la economía?

La respuesta se construye en dos pasos. La columna \(j\) de \(\mathbf{L}\) dice cuánto produce cada sector; la fila \(h_R\) dice cuánto ingreso genera cada peso producido. El producto de ambos es el ingreso generado en todas las rondas.

Multiplicador de ingreso en el modelo abierto y en el modelo cerrado

\[m(h)_j = \sum_{i=1}^{n} a_{n+1,i}\, l_{ij} \;\;(6.11), \qquad \bar{m}(h)_j = \sum_{i=1}^{n+1} a_{n+1,i}\, \bar{l}_{ij} \;\;(6.12)\]

En forma matricial, \(\mathbf{m}(h) = h_R'\,\mathbf{L}\). En el modelo cerrado el libro muestra que el multiplicador es el elemento de la fila de hogares de \(\bar{\mathbf{L}}\), \(\bar{m}(h)_j = \bar{l}_{n+1,j}\). Con dos grupos de hogares, es la suma de las dos filas.

# MODELO ABIERTO
m_h <- as.vector(h_R %*% L) # usando sumatoria del ingreso de los hogares
print(m_h) 
#> [1] 0.41374 0.36253 0.36390
m_h_1 <- V %*% L # usando matriz V y sumamos por sector
colSums(m_h_1)
#>      S1      S2      S3 
#> 0.41374 0.36253 0.36390
# MODELO CERRADO
m_h_total <- as.vector(h_R %*% L_bar[sectores, sectores]) # usando sumatoria del ingreso de los hogares
print(m_h_total)
#> [1] 0.46139 0.40562 0.40658
m_h_total_1 <- V %*% L_bar[sectores, sectores] # usando matriz V y sumamos por sector
colSums(m_h_total_1)
#>      S1      S2      S3 
#> 0.46139 0.40562 0.40658
print(m_h_total)
#> [1] 0.46139 0.40562 0.40658
m_h_total_2 <- colSums(L_bar[hogares, sectores]) # modelo cerrado por el atajo (6.13): filas de hogares de L_bar
print(m_h_total_2)
#>      S1      S2      S3 
#> 0.46139 0.40562 0.40658
names(m_h) <- names(m_h_total) <- sectores

round(rbind(h_R, abierto = m_h, cerrado = m_h_total), 4)
#>             S1     S2     S3
#> h_R     0.1700 0.1500 0.1800
#> abierto 0.4137 0.3625 0.3639
#> cerrado 0.4614 0.4056 0.4066

Interpretación. Un peso de demanda final del sector 1 genera 0,17 pesos de ingreso en el propio sector 1 (efecto inicial, \(h_{R,1}\)), 0,41 pesos contando a todos los proveedores (modelo abierto) y 0,46 pesos si además se cuenta el consumo que ese ingreso financia (modelo cerrado). Las unidades son pesos de ingreso por peso de demanda final; por eso todos son menores que uno.

Multiplicadores de ingreso tipo I y tipo II

Los multiplicadores anteriores miden ingreso por peso de demanda final. Muchas veces el dato de partida es otro: una empresa que llega a la región anuncia una planilla de remuneraciones, no una demanda final. Para ese caso se cambia el denominador: el efecto inicial pasa a ser el ingreso que el propio sector \(j\) paga por peso producido, \(a_{n+1,j}\).

\[m(h)^{I}_j = \frac{\sum_{i=1}^{n} a_{n+1,i}\, l_{ij}}{a_{n+1,j}} = \frac{m(h)_j}{a_{n+1,j}} \;\;(6.14), \qquad m(h)^{II}_j = \frac{\sum_{i=1}^{n+1} a_{n+1,i}\, \bar{l}_{ij}}{a_{n+1,j}} = \frac{\bar{m}(h)_j}{a_{n+1,j}} = \frac{\bar{l}_{n+1,j}}{a_{n+1,j}} \;\;(6.15, 6.16)\]

El tipo I usa el modelo abierto; el tipo II, el cerrado. Los dos son adimensionales: pesos de ingreso en toda la economía por peso de ingreso pagado inicialmente en el sector \(j\).

m_h_I  <- m_h / h_R
m_h_II <- m_h_total / h_R
round(rbind(tipo_I = m_h_I, tipo_II = m_h_II), 4)
#>             S1     S2     S3
#> tipo_I  2.4337 2.4169 2.0216
#> tipo_II 2.7140 2.7041 2.2588

Interpretación. Cada peso de remuneraciones que paga el sector 1 se convierte en 2,43 pesos de ingreso en toda la economía si los hogares no gastan (tipo I) y en 2,71 si gastan (tipo II). Si una empresa del sector 1 anuncia una planilla de 100 millones, el modelo estima entre 243 y 271 millones de ingreso total. Probablemente, el impacto puede estar dentro del rango.

par(mar = c(4, 4.5, 3, 1))
barplot(rbind(m_h_I, m_h_II), beside = TRUE, border = NA, col = c("#6E7F66", "#A85C32"),
        ylim = c(0, 3), ylab = "Pesos de ingreso por peso de ingreso inicial",
        legend.text = c("Tipo I (modelo abierto)", "Tipo II (modelo cerrado)"),
        args.legend = list(x = "topright", bty = "n", cex = 0.9),
        main = "Multiplicadores de ingreso tipo I y tipo II")
abline(h = 1, lty = 3)


Multiplicador de empleo [en clase]

Pregunta que responde. Si la demanda final del sector \(j\) sube en una unidad, ¿cuántos puestos de trabajo se necesitan en toda la economía?

La lógica es idéntica a la del ingreso, con un cambio en la unidad de medición. En lugar de pesos de ingreso por peso producido se usa una medida física de trabajo por unidad producida.

\[w_{n+1,i} = \frac{e_i}{x_i} \;\;(\text{personas ocupadas por unidad monetaria de producción del sector } i)\]

\[m(e)_j = \sum_{i=1}^{n} w_{n+1,i}\, l_{ij}, \qquad \bar{m}(e)_j = \sum_{i=1}^{n+1} w_{n+1,i}\, \bar{l}_{ij}, \qquad m(e)^{I}_j = \frac{m(e)_j}{w_{n+1,j}}, \qquad m(e)^{II}_j = \frac{\bar{m}(e)_j}{w_{n+1,j}}\]

Miller y Blair no numeran estas fórmulas: la tabla 6.3 (p. 258) indica que basta reemplazar \(z_{n+1,j}\) por el empleo del sector medido en unidades físicas. Un punto delicado: en el modelo cerrado el término \(i = n+1\) requiere un coeficiente de empleo para el sector hogares, \(w_{n+1,n+1}\), que en general no existe. Lo usual es fijarlo en cero, con lo que el multiplicador de empleo del modelo cerrado queda \(\bar{m}(e)_j = \sum_{i=1}^{n} w_{n+1,i}\,\bar{l}_{ij}\) (la versión truncada de la tabla 6.4). Así se calcula aquí.

w <- e / x # personas por mil de pesos producido
print(w)
#>  S1  S2  S3 
#> 2.0 1.6 5.0
m_e <- as.vector(w %*% L) # modelo abierto
print(m_e)
#> [1] 6.4231 5.4527 7.8971
m_e_total <- as.vector(w %*% L_bar[sectores, sectores]) # modelo cerrado
print(m_e_total)
#> [1] 7.2168 6.1581 8.6010
names(m_e) <- names(m_e_total) <- sectores
m_e_I  <- m_e / w
m_e_II <- m_e_total / w

round(rbind(w, abierto = m_e, cerrado = m_e_total, tipo_I = m_e_I, tipo_II = m_e_II), 4)
#>             S1     S2     S3
#> w       2.0000 1.6000 5.0000
#> abierto 6.4231 5.4527 7.8971
#> cerrado 7.2168 6.1581 8.6010
#> tipo_I  3.2116 3.4079 1.5794
#> tipo_II 3.6084 3.8488 1.7202

Interpretación, con cuidado en las unidades. Como \(x\) está en millones de pesos, \(w_1 = 2\) significa dos personas por millón producido en el sector 1. Entonces un millón de pesos de demanda final del sector 1 sostiene 6,4 puestos en toda la economía (modelo abierto) o 7,2 si los hogares gastan (modelo cerrado). Por cada puesto creado directamente en el sector 1 aparecen 3,2 puestos en la economía (tipo I) o 3,6 (tipo II).

El sector 3 es el más intensivo en trabajo (\(w_3 = 5\)) y por eso tiene el multiplicador abierto más alto (7,9 puestos por millón), pero el tipo I más bajo (1,58): como casi todo el empleo está en el propio sector, los proveedores agregan poco. Los dos multiplicadores ordenan los sectores de manera distinta porque responden a preguntas distintas.

Supuestos y limitaciones. Los coeficientes \(w\) suponen que el empleo es proporcional a la producción: sin economías de escala, sin capacidad ociosa, sin cambio de productividad. Son coeficientes promedio, no marginales.


Una sola función para todos los multiplicadores [en clase]

Los multiplicadores en realidad son el mismo cálculo con tres vectores distintos: unos, ingreso por unidad, empleo por unidad. Miller y Blair lo resumen en la tabla 6.4 (aquí solo veremos una tabla reducida) con una fila genérica \(\mathbf{z}_c' = \mathbf{z}'\hat{\mathbf{x}}^{-1}\):

Multiplicador Fórmula matricial
Modelo abierto \(\mathbf{m}(z) = \mathbf{z}_c'\,\mathbf{L}\)
Modelo cerrado (truncado) \(\bar{\mathbf{m}}[z(t)] = \mathbf{z}_c'\,\bar{\mathbf{L}}_{11}\)
Tipo I \(\mathbf{m}(z)^{I} = \mathbf{z}_c'\,\mathbf{L}\,(\hat{\mathbf{z}}_c)^{-1}\)
Tipo II \(\mathbf{m}(z)^{II} = \bar{\mathbf{L}}_{21}\,(\hat{\mathbf{z}}_c)^{-1}\)

Con \(\mathbf{z}_c' = \mathbf{i}'\) salen los multiplicadores de producto (y el tipo I y II coinciden con el abierto y el cerrado, por lo que no tienen sentido como tales). Con \(\mathbf{z}_c' = h_R'\), los de ingreso; con \(\mathbf{z}_c' = \mathbf{w}'\), los de empleo; con el valor agregado por unidad, los de valor agregado.

# Multiplicadores de Miller y Blair, tabla 6.4
#   L      : inversa de Leontief del modelo abierto (n x n)
#   L_bar  : inversa del modelo cerrado ((n+q) x (n+q)); las n primeras filas y columnas son los sectores
#   z_c    : fila de coeficientes por unidad de producción (largo n); NULL para producto
#   tipo   : etiqueta para la tabla de salida
multiplicadores <- function(L, L_bar, z_c = NULL, tipo = "producto") {
  n <- nrow(L)
  stopifnot(nrow(L_bar) >= n, is.null(z_c) || length(z_c) == n)
  L_bar_11 <- L_bar[1:n, 1:n]
  if (is.null(z_c)) {
    return(data.frame(tipo = tipo, sector = colnames(L),
                      abierto = colSums(L), cerrado_truncado = colSums(L_bar_11),
                      cerrado = colSums(L_bar[, 1:n]), row.names = NULL))
  }
  abierto <- as.vector(z_c %*% L)
  cerrado <- as.vector(z_c %*% L_bar_11)
  data.frame(tipo = tipo, sector = colnames(L), coef_inicial = z_c,
             abierto = abierto, cerrado = cerrado,
             tipo_I = abierto / z_c, tipo_II = cerrado / z_c, row.names = NULL)
}

tabla_producto <- multiplicadores(L, L_bar)
tabla_ingreso  <- multiplicadores(L, L_bar, h_R, "ingreso")
tabla_empleo   <- multiplicadores(L, L_bar, w,   "empleo")

# La función reproduce todo lo calculado a mano
stopifnot(all.equal(tabla_producto$abierto, unname(m_o)),
          all.equal(tabla_ingreso$tipo_II, unname(m_h_II)),
          all.equal(tabla_empleo$tipo_I, unname(m_e_I)))

tabla_producto
rbind(tabla_ingreso, tabla_empleo)

Para el ingreso, con un solo sector de hogares, cerrado coincide con \(\bar{\mathbf{L}}_{21}\), como manda (6.13). Con varios grupos coincide con la suma de sus filas.