fpa_bid_function: Equilibrium bid function of a symmetric first-price auction

View source: R/simulate.R

fpa_bid_functionR Documentation

Equilibrium bid function of a symmetric first-price auction

Description

Computes the symmetric equilibrium bid function in quantile space, \beta(u) = Q(u) - m(u) with the markup solving m'(u) = q(u) - m(u)/\psi(u), m(u_0) = 0 (Milgrom and Weber 1982; Doosti 2026a). Under independence \psi(u) = u/(n-1) and this is the Guerre–Perrigne–Vuong bid function \beta(v) = v - \int_0^v F(t)^{n-1}dt / F(v)^{n-1}. A reserve price at quantile 'p0' sets m(p_0) = 0. For CRRA bidders with utility U(t) = t^{1-\eta} the first-order condition is v = b + (1-\eta)\psi(u) q(u) (Guerre, Perrigne and Vuong 2009), so the markup solves the same ODE with \psi replaced by (1-\eta)\psi; under independence this gives Zincenko's (2024) risk-averse bid function \beta(v) = e_1 \int_0^v x F(x)^{e_2} f(x)\,dx / F(v)^{e_1}, e_1 = (n-1)/(1-\eta), e_2 = (n+\eta-2)/(1-\eta).

Usage

fpa_bid_function(
  Q,
  q = NULL,
  n,
  family = "independence",
  theta = NULL,
  p0 = 0,
  eta = 0,
  U = fpa_ugrid()
)

Arguments

Q

quantile function of private values (a function of 'u').

q

quantile density of private values (a function of 'u'); if 'NULL' it is obtained by numerical differentiation of 'Q'.

n

number of bidders.

family

'"independence"', '"clayton"', '"gumbel"' or '"frank"'.

theta

copula parameter (ignored for independence).

p0

screening quantile of the reserve price (default 0, no reserve).

eta

CRRA risk-aversion parameter in [0, 1) (0: risk neutral).

U

quantile grid; see [fpa_ugrid()].

Value

a list with 'U', 'bid' (\beta(U)), 'value' (Q(U)), 'markup' and a function 'beta(v)' interpolating the bid at value 'v'.

Examples

bf <- fpa_bid_function(Q = function(u) qgamma(u, 2, 10),
                       q = function(u) 1 / dgamma(qgamma(u, 2, 10), 2, 10), n = 5)
bf$beta(c(0.1, 0.2, 0.5))
# compare with the direct integral form for IPV
v <- 0.2; v - integrate(function(t) pgamma(t, 2, 10)^4, 0, v)$value / pgamma(v, 2, 10)^4

qdfauction documentation built on Nov. 10, 2026, 5:07 p.m.