DCES: Displaced CES Utility Function and Displaced CES Demand...

View source: R/DCES.R

DCESR Documentation

Displaced CES Utility Function and Displaced CES Demand Function

Description

The displaced CES utility function and the displaced CES demand function (Fullerton, 1989).

Usage

DCES(es, beta, xi, x)

DCES_demand(es, beta, xi, w, p)

DCES_compensated_demand(es, beta, xi, u, p)

DCES_indirect(es, beta, xi, w, p)

Arguments

es

a scalar indicating the elasticity of substitution.

beta

an n-vector consisting of the marginal expenditure share coefficients. The sum of all components of beta should be 1.

xi

an n-vector or a scalar. If xi is a scalar, it will be recycled to an n-vector. Each element of xi parameterizes whether the particular good is a necessity for the household (Acemoglu, 2009, page 152). For example, xi[i] > 0 may mean that the household needs to consume at least a certain amount of good i to survive.

x

an n-vector consisting of the inputs.

w

a scalar indicating the income.

p

an n-vector indicating the prices.

u

a scalar indicating the utility level.

Value

The return values of these functions are as follows:
DCES: A scalar indicating the utility level.
DCES_demand: An n-vector indicating the demands.
DCES_compensated_demand: An n-vector indicating the compensated demands.
DCES_indirect: A scalar indicating the utility level.

Functions

  • DCES: Compute the displaced CES utility function (Fullerton, 1989), e.g. (beta1 ^ (1 / es) * (x1 - xi1) ^ (1 - 1 / es) + beta2 ^ (1 / es) * (x2 - xi2) ^ (1 - 1 / es)) ^ (es / (es - 1) wherein beta1 + beta2 == 1.

    When es==1, the DCES utility function becomes the Stone-Geary utility function.

  • DCES_demand: The displaced CES demand function (Fullerton, 1989).

  • DCES_compensated_demand: The displaced CES compensated demand function (Fullerton, 1989).

  • DCES_indirect: The displaced CES indirect utility function (Fullerton, 1989).

References

Acemoglu, D. (2009, ISBN: 9780691132921) Introduction to Modern Economic Growth. Princeton University Press.

Fullerton, D. (1989) Notes on Displaced CES Functional Forms. Available at: https://works.bepress.com/don_fullerton/39/

Examples


es <- 0.99
beta <- prop.table(1:5)
xi <- 0
w <- 500
p <- 2:6

x <- DCES_demand(
  es = es,
  beta = beta,
  xi = xi,
  w = w,
  p = p
)

DCES_demand(
  es = es,
  beta = prop.table(0:4),
  xi = 5:1,
  w = w,
  p = p
)

u <- DCES(
  es = es,
  beta = beta,
  xi = xi,
  x = x
)

SCES(
  es = es,
  alpha = 1,
  beta = beta,
  x = x
)

DCES_compensated_demand(
  es = es,
  beta = beta,
  xi = xi,
  u = u,
  p = p
)

DCES_compensated_demand(
  es = es,
  beta = beta,
  xi = seq(10, 50, 10),
  u = u,
  p = p
)

#### A 2-by-2 general equilibrium model
#### with a DCES utility function.
ge <- sdm2(
  A = function(state) {
    a.consumer <- DCES_demand(
      es = 2, beta = c(0.2, 0.8), xi = c(1000, 500),
      w = state$w[1], p = state$p
    )
    a.firm <- c(1.1, 0)
    cbind(a.consumer, a.firm)
  },
  B = diag(c(0, 1)),
  S0Exg = matrix(c(
    3500, NA,
    NA, NA
  ), 2, 2, TRUE),
  names.commodity = c("corn", "iron"),
  names.agent = c("consumer", "firm"),
  numeraire = "corn"
)

ge$p
ge$z
ge$A
ge$D

#### a 2-by-2 pure exchange economy
sdm2(
  A = function(state) {
    a1 <- CD_A(1, rbind(1 / 3, 2 / 3), state$p)
    a2 <- DCES_demand(
      es = 1, beta = c(0.4, 0.6), xi = c(0.1, 0.2),
      w = state$w[2], p = state$p
    )
    cbind(a1, a2)
  },
  B = matrix(0, 2, 2),
  S0Exg = matrix(c(
    3, 4,
    7, 0
  ), 2, 2, TRUE),
  names.commodity = c("fish", "banana"),
  names.agent = c("Annie", "Ben"),
  numeraire = "banana"
)

#### A 3-by-3 general equilibrium model
#### with a DCES utility function.
lab <- 1 # the amount of labor supplied by each laborer
n.laborer <- 100 # the number of laborers
ge <- sdm2(
  A = function(state) {
    a.firm.corn <- CD_A(alpha = 1, Beta = c(0, 0.5, 0.5), state$p)
    a.firm.iron <- CD_A(alpha = 5, Beta = c(0, 0.5, 0.5), state$p)
    a.laborer <- DCES_demand(
      es = 0, beta = c(0, 1, 0), xi = c(0.1, 0, 0),
      w = state$w[3] / n.laborer, p = state$p
    )

    cbind(a.firm.corn, a.firm.iron, a.laborer)
  },
  B = matrix(c(
    1, 0, 0,
    0, 1, 0,
    0, 0, 0
  ), 3, 3, TRUE),
  S0Exg = matrix(c(
    NA, NA, NA,
    NA, NA, NA,
    NA, NA, lab * n.laborer
  ), 3, 3, TRUE),
  names.commodity = c("corn", "iron", "lab"),
  names.agent = c("firm.corn", "firm.iron", "laborer"),
  numeraire = "lab",
  priceAdjustmentVelocity = 0.1
)

ge$z
ge$A
ge$D



GE documentation built on May 29, 2024, 2:52 a.m.

Related to DCES in GE...