gemTax_5_5 {GE} | R Documentation |
A General Equilibrium Model with Tax
Description
A general equilibrium model with tax. The model contains 5 types of commodities (i.e. prod1, prod2, labor, capital and tax payment receipts) and 5 agents (i.e. firm1, firm2, laborer, capital owner and government).
Usage
gemTax_5_5(...)
Arguments
... |
arguments to be passed to the function sdm2. |
Examples
tax.rate.cap1 <- 0.25
tax.rate.lab1 <- 0.25
tax.rate.cap2 <- 0.25
tax.rate.lab2 <- 0.25
es.prod <- 0.5
es.cap.lab <- 0.5
beta.firm1 <- c(0.2, 0.8)
beta.firm2 <- c(0.8, 0.2)
beta.laborer <- c(0.5, 0.5)
beta.capitalOwner <- c(0.5, 0.5)
beta.government <- c(0.8, 0.2)
dst.firm1 <- node_new("prod",
type = "SCES",
alpha = 1, beta = beta.firm1, es = es.cap.lab,
"cc1", "cc2"
)
node_set(dst.firm1, "cc1",
type = "FIN",
rate = c(1, tax.rate = tax.rate.lab1),
"lab", "tax"
)
node_set(dst.firm1, "cc2",
type = "FIN",
rate = c(1, tax.rate = tax.rate.cap1),
"cap", "tax"
)
node_plot(dst.firm1, TRUE)
dst.firm2 <- node_new("prod",
type = "SCES",
alpha = 1, beta = beta.firm2, es = es.cap.lab,
"cc1", "cc2"
)
node_set(dst.firm2, "cc1",
type = "FIN",
rate = c(1, tax.rate = tax.rate.lab2),
"lab", "tax"
)
node_set(dst.firm2, "cc2",
type = "FIN",
rate = c(1, tax.rate = tax.rate.cap2),
"cap", "tax"
)
dst.laborer <- node_new("util",
type = "SCES",
alpha = 1, beta = beta.laborer, es = es.prod,
"prod1", "prod2"
)
dst.capitalOwner <- node_new("util",
type = "SCES",
alpha = 1, beta = beta.capitalOwner, es = es.prod,
"prod1", "prod2"
)
dst.government <- node_new("util",
type = "SCES",
alpha = 1, beta = beta.government, es = es.prod,
"prod1", "prod2"
)
ge <- sdm2(
A = list(dst.firm1, dst.firm2, dst.laborer, dst.capitalOwner, dst.government),
B = diag(c(1, 1, 0, 0, 0)),
S0Exg = matrix(c(
NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA,
NA, NA, 100, NA, NA,
NA, NA, NA, 100, NA,
NA, NA, NA, NA, 100
), 5, 5, TRUE),
names.commodity = c("prod1", "prod2", "lab", "cap", "tax"),
names.agent = c("firm1", "firm2", "laborer", "capitalOwner", "government"),
numeraire = "lab"
)
ge$p
ge$z
ge$D
ge$S
addmargins(ge$DV)
addmargins(ge$SV)
[Package GE version 0.4.5 Index]