README.md

econagent

Lifecycle:
experimental

econagent provides utility functions and composite goods in economics.

Installation

You can install the development version of econagent from GitHub with:

# install.packages("devtools")
devtools::install_github("UchidaMizuki/econagent")

Examples for utility functions

library(econagent)
library(tidyverse)

Calibrate utility functions

# Sample data
prices <- c(4, 2)
income <- 12

quantity_x <- 2
quantity_y <- util_2goods_budget(prices, income)(quantity_x)
quantities <- c(quantity_x, quantity_y)
cobb_douglas <- util_cobb_douglas() |> 
  util_calibrate(prices, quantities)
cobb_douglas
#> <Cobb-Douglas>
#> function (quantities, efficiency, weights) 
#> {
#>     efficiency * prod(quantities^weights, na.rm = TRUE)
#> }
#> (
#>   efficiency = 6
#>   weights    = [1] 0.6666667 0.3333333
#>   ...
#> )
leontief <- util_leontief() |> 
  util_calibrate(prices, quantities)
leontief
#> <Leontief>
#> function (quantities, efficiency, weights) 
#> {
#>     efficiency * min(quantities/weights, na.rm = TRUE)
#> }
#> (
#>   efficiency = 3
#>   weights    = [1] 0.5 0.5
#>   ...
#> )
ces_minus_1_5 <- util_ces(substitution = -1.5) |> 
  util_calibrate(prices, quantities)
ces_minus_1_5
#> <CES(-1.5)>
#> function (quantities, substitution, homogeneity, efficiency, 
#>     weights) 
#> {
#>     efficiency * sum(weights * quantities^substitution, na.rm = TRUE)^(homogeneity/substitution)
#> }
#> (
#>   substitution = -1.5
#>   homogeneity  = 1
#>   efficiency   = 6
#>   weights      = [1] 0.6666667 0.3333333
#>   ...
#> )

Indifference curve and budget line for two goods

util_2goods_indifference(cobb_douglas, cobb_douglas(quantities))(1:6)
#> [1] 8.0000000 2.0000000 0.8888889 0.5000000 0.3200000 0.2222222
util_2goods_budget(prices, income)(1:6)
#> [1]  4  2  0 -2 -4 -6

Sample plots

Marginal utility for two goods

# Total utility
util_2goods_utility(cobb_douglas, quantities[[2]])(1:6)
#> [1]  7.559526 12.000000 15.724448 19.048813 22.104189 24.961006
# Marginal utility
util_2goods_utility(cobb_douglas, quantities[[2]], gradient = TRUE)(1:6)
#> [1] 5.039684 4.000000 3.494322 3.174802 2.947225 2.773445

Sample plots

Price effect for two goods

prices_new <- c(2, 2)

# Price effect
quantities_new <- util_demand(cobb_douglas, prices_new,
                              income = income)
quantities_new
#> [1] 4 2
# Substitution effect
quantities_substitution <- util_demand(cobb_douglas, prices_new,
                                       utility = cobb_douglas(quantities))
quantities_substitution
#> [1] 2.519842 1.259921
# Income effect
quantities_new - quantities_substitution
#> [1] 1.480158 0.740079

Sample plots

Examples for composite goods



UchidaMizuki/econgoods documentation built on Oct. 23, 2024, 8:10 a.m.