Scaling
The build stream produces state-level (regionally) model parameters at the summary-level (sectorally).
Regional Scaling
Aggregation
By default, the SLiDE build stream produces regional data at the state level.
BEA and Census Bureau used to produce shares via SLiDE.share_region
and applied via SLiDE.disaggregate_region
is aggregated to the desired level immediately upon being read into the build stream.
Disaggregation
Regional disaggregation will be tackeled during future development phases Source data is regional-specific and available for a variety of regional divisions: state, CBSA, CSA.
Source | Data | Region | State | County | CSA | CBSA |
---|---|---|---|---|---|---|
BEA | Supply/Use | N/A | N/A | N/A | N/A | N/A |
GSP | ✅ | ✅ | ✅ | ❌ | ✅ | |
PCE | ✅ | ✅ | ❌ | ❌ | ❌ | |
Census | CFS | ❌ | ✅ | ❌ | ✅ | ✅ |
SGF | ||||||
UTD | ||||||
NASS | ❌ | ✅ | ❌ | ❌ | ❌ | |
The regional level identifiers used are consistent with those from the 2010 Census Summary File 1. Codes listed in the Census Delineation Files are used to identify regions.
Sectoral Scaling
By default, there are 73 summary-level goods/sectors. These can be disaggregated into 409 detail-level goods/sectors using the blueNOTE sectoral scaling map.
Scaling features enable the following options:
- Select a subset of summary-level or detail-level goods/sectors to examine.
- Select a combination of summary- and detail-level goods/sectors.
- Aggregate summary- and/or detail-level goods/sectors into those specified in a user-defined map.
SLiDE.scale_sector
— Functionscale_sector(dataset::Dataset, d::Dict, set::Dict; kwargs...)
This function scales model parameters defined over 73 summary-level sectors to a user-defined scheme.
Arguments
dataset::Dataset
identifierd::Dict
of model parametersset::Dict
of Arrays describing parameter indices (years, regions, goods, sectors, etc.)
Returns
d::Dict
of model parametersset::Dict
of Arrays describing parameter indices (years, regions, goods, sectors, etc.)
Aggregation
SLiDE.aggregate_sector!
— Functionaggregate_sector!(d::Dict, set::Dict, mapping::Mapping; kwargs...)
This function performs the sectoral aggregation for all model parameters.
- Taxes ($ta$, $tm$, $ty$) are aggregated using
SLiDE.aggregate_tax_with!
. - All other parameters are disaggregated using
SLiDE.scale_with
.
SLiDE.aggregate_tax_with!
— Functionaggregate_tax_with!(d::Dict, set::Dict, mapping::Mapping, tax::Symbol, key::Symbol)
This function is applied to the following tax rates, which are scaled by a the corresponding parameters. It returns the aggregated tax rate as well as the aggregated scaling parameter.
ta(yr,r,g)
, absorption taxes, scaled by domestic absorption,a(yr,r,g)
:
\[\begin{aligned} \bar{a}_{yr,r,g} &= \bar{a}_{yr,r,gg} \circ map_{gg\rightarrow g} \\ \bar{ta}_{yr,r,g} &= \dfrac {\left(\bar{ta}_{yr,r,gg} \cdot \bar{a}_{yr,r,gg} \right) \circ map_{gg\rightarrow g}} { \bar{a}_{yr,r,g}} \end{aligned}\]
tm(yr,r,g)
, import taxes, scaled by foreign imports,m(yr,r,g)
:
\[\begin{aligned} \bar{m}_{yr,r,g} &= \bar{m}_{yr,r,gg} \circ map_{gg\rightarrow g} \\ \bar{tm}_{yr,r,g} &= \dfrac {\left(\bar{tm}_{yr,r,gg} \cdot \bar{m}_{yr,r,gg} \right) \circ map_{gg\rightarrow g}} { \bar{m}_{yr,r,g}} \end{aligned}\]
ty(yr,r,s)
, production taxes, scaled by total regional sectoral output,ys(yr,r,s,g)
:
\[\begin{aligned} \bar{ys}_{yr,r,s,g} &= \bar{ys}_{yr,r,ss,gg} \circ map_{ss\rightarrow s, gg\rightarrow g} \\ \bar{ty}_{yr,r,s} &= \dfrac {\left(\bar{ty}_{yr,r,ss} \cdot \sum_{gg} \bar{ys}_{yr,r,ss,gg} \right) \circ map_{ss\rightarrow s}} { \sum_{g} \bar{ys}_{yr,r,s ,g}} \end{aligned}\]
where $gg$, $ss$ represent disaggregate-level goods and sectors and $g$, $s$ represent aggregate-level goods and sectors.
Arguments
d::Dict
of model parametersset::Dict
of Arrays describing parameter indices (years, regions, goods, sectors, etc.)mapping::Mapping
defining $map_{gg\rightarrow g}$tax::Symbol
: tax parameter keykey::Symbol
: scaling parameter key
Returns
d[tax]::DataFrame
: mapped tax parameterd[key]::DataFrame
: mapped scaling parameter
Disaggregation
SLiDE.disaggregate_sector!
— Functiondisaggregate_sector!(d::Dict, set::Dict; kwargs...)
disaggregate_sector!(d::Dict, set::Dict, weighting::Weighting; kwargs...)