gemPersistentTechnologicalProgress: Some Examples of Spot Equilibrium Paths with Persistent...

View source: R/gemPersistentTechnologicalProgress.R

gemPersistentTechnologicalProgressR Documentation

Some Examples of Spot Equilibrium Paths with Persistent Technological Progress

Description

Some examples of spot equilibrium paths with persistent technological progress. Technological progress starts from the fifth period.

Usage

gemPersistentTechnologicalProgress(...)

Arguments

...

arguments to be passed to the function sdm2.

See Also

gemCapitalAccumulation

Examples


#### a 2-by-2 example with labor-saving technological progress
tpr <- 0.03 # technological progress rate

dst.firm <- node_new(
  "prod",
  type = "SCES",
  es = 0.5, alpha = 1,
  beta = c(0.5, 0.5),
  "prod", "cc1"
)
node_set(dst.firm, "cc1",
         type = "Leontief", a = 1,
         "lab"
)

dst.consumer <- node_new(
  "util",
  type = "Leontief", a = 1,
  "prod"
)

dstl <- list(dst.firm, dst.consumer)

ge <- sdm2(
  A = dstl,
  B = matrix(c(
    1, 0,
    0, 0
  ), 2, 2, TRUE),
  S0Exg = matrix(c(
    NA, NA,
    NA, 100
  ), 2, 2, TRUE),
  names.commodity = c("prod", "lab"),
  names.agent = c("firm", "consumer"),
  numeraire = "prod",
  ts = TRUE,
  policy = list(
    function(time, A) {
      if (time >= 5) {
        node_set(A[[1]], "cc1",
                 a = (1 + tpr)^-(time - 4)
        )
      }
    },
    policyMarketClearingPrice
  ),
  numberOfPeriods = 40,
  maxIteration = 1,
  z0 = c(200, 100),
  p0 = c(1, 1)
)

matplot(growth_rate(ge$ts.z), type = "o", pch = 20)
matplot(growth_rate(ge$ts.p), type = "o", pch = 20)

#### a 3-by-3 example with labor-saving technological progress
tpr <- 0.03 # technological progress rate

dst.manu <- node_new("manu",
                     type = "SCES", es = 0.5, alpha = 1,
                     beta = c(0.6, 0.4),
                     "manu", "cc1"
)
node_set(dst.manu, "cc1",
         type = "Leontief", a = 1,
         "lab"
)

dst.serv <- node_new("serv",
                     type = "SCES", es = 0.5, alpha = 1,
                     beta = c(0.4, 0.6),
                     "manu", "lab"
)

dst.consumer <- node_new("util",
                         type = "SCES", es = 0.5, alpha = 1,
                         beta = c(0.4, 0.6),
                         "manu", "serv"
)

dstl <- list(dst.manu, dst.serv, dst.consumer)

ge <- sdm2(
  A = dstl,
  B = matrix(c(
    1, 0, 0,
    0, 1, 0,
    0, 0, 0
  ), 3, 3, TRUE),
  S0Exg = {
    S0Exg <- matrix(NA, 3, 3)
    S0Exg[3, 3] <- 100
    S0Exg
  },
  names.commodity = c("manu", "serv", "lab"),
  names.agent = c("manu", "serv", "consumer"),
  numeraire = c("manu"),
  ts = TRUE,
  policy = list(
    function(time, A) {
      if (time >= 5) {
        node_set(A[[1]], "cc1",
                 a = (1 + tpr)^-(time - 4)
        )
      }
    },
    policyMarketClearingPrice
  ),
  numberOfPeriods = 40,
  maxIteration = 1,
  z0 = c(160, 60, 100),
  p0 = c(1, 1, 1)
)

matplot(ge$ts.z, type = "o", pch = 20)
matplot(growth_rate(ge$ts.z), type = "o", pch = 20)
matplot(growth_rate(ge$ts.p), type = "o", pch = 20)

#### a 3-by-3 example with labor-saving technological
#### progress and capital accumulation
dst.firm1 <- node_new(
  "prod",
  type = "CD",
  alpha = 2, beta = c(0.5, 0.5),
  "cap", "cc1"
)
node_set(dst.firm1, "cc1",
         type="Leontief", a=1,
         "lab")

dst.consumer <- dst.firm2 <- node_new(
  "util",
  type = "Leontief",
  a= 1,
  "prod"
)

ge <- sdm2(
  A = list(dst.firm1, dst.consumer, dst.firm2),
  B = matrix(c(
    1, 0, 0.5,
    0, 0, 1,
    0, 0, 0
  ), 3, 3, TRUE),
  S0Exg = matrix(c(
    NA, NA, NA,
    NA, NA, NA,
    NA, 100,NA
  ), 3, 3, TRUE),
  names.commodity = c("prod", "cap", "lab"),
  names.agent = c("firm1", "laborer","firm2"),
  numeraire = "prod",
  z0=c(400,200,400),
  policy = list(
    function(time, A) {
      if (time >= 5) {
        node_set(A[[1]],"cc1", a = (1 + 0.03)^-(time - 4))
      }
    },
    policyMarketClearingPrice
  ),
  maxIteration = 1,
  numberOfPeriods = 30,
  ts=TRUE
)

matplot(growth_rate(ge$ts.z), type="l")


GE documentation built on April 4, 2025, 5:33 a.m.