knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

Introduction

The iomodeltobalc package conducts input-output (IO) modelling of the effects of changes in demand in a given sector(s) on the economy as a whole. The specific sectors modelled by the package are those relating to sales of alcohol and tobacco, estimating the changes in demand which result from a range of policy scenarios. Using the input-output framework, these changes in sectoral level demand are translated into resulting changes in output across all sectors, as well as changes in gross value added (GVA) and employment.

Some basic assumptions of IO models:

Input-Output Tables

Input-Output tables are part of a countrys national accounts, disaggregating production into a set of sectors. Firms are assigned to one of a number of sectors based on their principal product. The allocation conforms to the Standard Industrial Classification (SIC). The key feature of IO tables is that columns represent purchases, and rows represent sales.

The analysis is based on an input output table, which has a number of components:

All elements of the IO table are expressed in monetary units.

Using these elements of the IO table, we produce an economic model that can translate the impact of changes in one sector on the rest of the economy.

Input-Output Modelling Framework

The mathematical framework for IO analysis is based on a system of linear equations.

$y = Ay + f$

In the framework, total production, or output ($y$), is determined by intermediate demand by sectors for each others' output ($Ay$) and final demand ($f$). $A$ is the matrix of technical coefficients. This is obtained by dividing each element of the flow table described in the previous section by total output in the sector. The technical coefficients therefore capture the amount of output from each selling sector goes into producing one unit of the output of the purchasing sector.

In order to model the effect of changes in demand, this expression needs to be rearranged to collect the $y$ terms on the left-hand side as the outcome variable which is expressed in terms of exogenous variables and parameters.

$f = (I-A)y$ - collect like terms and factorise, where $I$ is the identity matrix.

$y = (I-A)^{-1}f$ - multiply through by the inverse of the parameter matrix to isolate $y$.

This is the primary equation used in input-output modelling. The matrix given by $(I-A)^{-1}$ is known as the Leontief Inverse Matrix. Using this matrix, the effect of any change in demand on total output can be recovered simply by re-writting the above expression in differences:

$\Delta y = (I-A)^{-1} \Delta f$

The key to the modelling is then to determine the value of $\Delta f$ which results from a given policy change.

Using the iomodeltobalc Package for Policy Analysis

The rest of this vignette demonstrates the use of the package by producing an example piece of analysis using a simplified, artificial IO table to simulate different potential policies.

First, load the package and its dependencies.

library(iomodeltobalc)

1. Modelling the Change in Final Demand.

The first stage in the analysis is to identify the change in the final demand vector which we are modelling.

1a. An Exogenous Fall in Demand.

For a proportionate change, $p$, in demand the change in final demand in the sector is given by the proportion multiplied by the sum of spending on all relevant products:

$\Delta f_i = p \sum^{n}_{j=1}Ae_j$

1b. An Increase in Taxation.

With a tax increase, there are both price and quantity effects which need to be accounted for. The price of good $j$ in sector $i$ is given by the sum of unit costs $PC_{ij}$, profit margins $PF_{ij}$, and duty $T_{ij}$.

$P_{ij} = PC_{ij} + PF_{ij} + T_{ij}$

This equation in terms of changes:

$\Delta P_{ij} = \Delta PC_{ij} + \Delta PF_{ij} + \Delta T_{ij}$

In terms of proportionate changes, where $\alpha$ and $\beta$ are share parameters:

$\dot{P}{ij} = \alpha\dot{PC}{ij} + \beta\dot{PF}{ij} + (1-\alpha-\beta)\dot{T}{ij}$

To examine the change in tax ceteris paribus, the terms $\dot{PF}{ij}$ and $\dot{PC}{ij}$ are set equal to 0, giving the expression for the change in price as a result of the tax change.

$\dot{P}{ij} = (1-\alpha-\beta)\dot{T}{ij}$

This equation is used to model the change in price for a given change in taxation. The change in quantity consumed due to the tax change can be derived using the modelled change in price combined with the price elasticity of demand for the product.

$\dot{C}{ij} = \epsilon{ij}\dot{P}_{ij}$

Substituting in the change in price:

$\dot{C}{ij} = \epsilon{ij}(1-\alpha-\beta)\dot{T}_{ij}$

Converting from a proportionate change to an absolute change by multiplying through by the level of consumption:

$\Delta C_{ij} = \epsilon_{ij}(1-\alpha-\beta)\dot{T}{ij}C{ij}$

Using this resulting expression for the change in consumption for good $j$ allows us to construct an expression for the change in final demand for sector $i$ as a whole:

$\Delta f_i = \sum^{n}{j}(P{ij}\Delta C_{ij})$

1c. An Increase in the Minimum Unit Price (MUP).

A MUP increase is modelled similarly to a tax increase. The exception is that the price increase for a particular good is calculated directly as the amount by which the unit price of the good must increase to comply with the new MUP. For goods priced below the MUP, these will increase by an amount equal to the difference between the MUP and the original price. Goods already priced at or above the MUP will not change in price. From this, the proportionate change in price can be calculated.

Having derived the proportionate change in price, the eventual change in final demand can then be calculated in the same way as for an increase in taxation - using the elasticity of demand and the proportionate change in price to derive the proportionate change in consumption, and the change in total consumption expenditure for each product. These product-level consumption expenditure changes are in turn summed up to give a total change in consumption expenditure for each relevant sector.

2. Reading in the IO Table.

Having produced the vector of changes in final demand, the next stage is to use the flow table and the demand changes derived in the first stage to translate the changes in final demand into changes in economic outcomes. The flow table from the example IO table included in the package is shown below, along with the corresponding vector of total output:

  flowtable <- as.matrix(data_example_iotable[,1:dim(data_example_iotable)[1] ]) # flowtable
  total.output <- as.vector(matrix(data_example_iotable[,"Total Output"]))
  hhold.output <- as.vector(matrix(data_example_iotable[,"Household Output"]))
  hhold.demand <- as.vector(matrix(data_example_iotable[,"Household Demand"]))


  print("Flow Table")
  flowtable

  print("Total Output")
  total.output

This output shows that sector A uses £150 of its own output, £200 of sector B output, and £400 of sector C output. This intermediate output of £750 is used to produce a total output of £2,550. The difference between total and intermediate output is taxes and gross value added (profits, employee wages).

The aim of the second stage is to produce the Leontief matrix $L = (I - A)^{-1}$. The technical coefficients matrix $A$ is derived from the flow table by dividing each element of a column by its total output, to produce a matrix where the elements describe how much of one sectors production is required per unit of total output:

  ### Create the type 1 matrix

  ## Calculate coefficient matrix:
  A <- flowtable %*% ((total.output )^-1 * diag(length(total.output)))
  # Show A
  round(A,3)

The Leontief matrix is then given by:

  # Identity matrix minus A
  IminusA <- diag(length(total.output)) - A

  # Calculate the Leontief Inverse matrix
  L <- solve(IminusA)

  # Print the Leontief Inverse
  round(L,3)

The elements of the Leontief matrix are multipliers, showing how a unit change in final demand will affect output. The elements on the lead diagonal are own-sector multipliers. They show the total increase in a given sectors output if that sectors demand increases by one. The off-diagonal multipliers show the impact of a change in final demand for one sector on the intermediate demand for another sector.

The figure of 0.120 in the Sector A columns shows that for every unit increase in final demand for Sector A, there will be a 0.120 unit increase in demand for Sector B products. This is due to the inter-dependence of sectors - to meet the increase in demand, Sector A will increase its intermediate demand for Sector B output.

As Sector B also depends on Sector A output for its production, there will be an additional increase in demand for Sector A output. For this reason, the multipliers on the lead diagonal of the Leontief matrix will always exceed one. Because the increase in final demand for Sector A products triggers increased intermediate demand for other sectors, which in turn use Sector A products as inputs, the increase in final demand will always be accompanied by an increase in intermediate demand for Sector A output. The lead-diagonal multipliers reflect that the total increase in output will always be greater than one-for-one. In this case, the value of 1.126 means that for every unit change in final demand for Sector A, there will be a total change in Sector A output of 1.126.

Note that, in theory, the lead diagonal elements could equal one, but this will not occur in practice as it would imply that the respective sector uses no inputs from other sectors in production. In this case, output would only change in direct response to the change in final demand. The elements can never be less than one, as output will change at least as much as the change in final demand requires.

3. Producing the Policy Analysis.

3a. Output.

3b. Gross Value Added.

3c. Employment.



djmorris1989/iomodeltobalc documentation built on June 11, 2020, 12:16 a.m.