| fpa_density | R Documentation |
Two-step estimation of the density f of independent private values.
The first step recovers pseudo-values \hat v_i from the bids (by
default with the Hickman–Hubbard boundary-corrected GPV inversion, or
with any [fpa_values()] fit); the second step estimates the density of
the pseudo-values by
* '"wavelet_ll"': linear wavelet estimator followed by local-linear
smoothing (the best performer in Doosti, Dewan and Sbai 2026);
* '"wavelet_linear"', '"wavelet_hard"', '"wavelet_block"': linear,
hard-thresholded and block-thresholded wavelet estimators;
* '"wavelet_theory"': the hard-thresholding estimator of Theorem 2 of
Doosti, Dewan and Sbai (2026) on a periodised basis, with coefficients
\hat\beta_{j,k} = N^{-1}\sum_i \psi_{j,k}(\Pi\hat v_i), coarsest level
\tau = 3, finest level 2^{j_1} \approx \sigma_N^{-1} and
level-dependent thresholds \eta_j = \kappa\,2^{j/2}\sigma_N,
\sigma_N = N^{-2/5}(\log N)^{1/2}; by default \kappa is set so that
the threshold at the finest level is the universal threshold
\hat s\sqrt{2\log N} (\hat s: median absolute finest-level
coefficient / 0.6745); pass 'kappa' to override;
* '"kde_hh"': the boundary-corrected kernel estimator of Hickman and
Hubbard (2015), i.e. GPV with boundary correction at both stages;
* '"kde"': Gaussian kernel with Sheather–Jones bandwidth;
* '"empirical_quantile"': finite-difference density from the empirical
quantile function of the pseudo-values;
* '"marmer_shneyerov"': the quantile-based estimator of Marmer and
Shneyerov (2012), computed directly from the bids (no first stage).
Because the wavelet basis lives on [0,1], bids and pseudo-values are
mapped to the unit interval by a monotone map ('scale'): with '"auto"' the
identity when the bids lie in [0,1] (pseudo-values outside are
projected onto [0,1] for the wavelet coefficients), otherwise x \mapsto (\log x - a)/(b-a)
('"log"', which handles the heavy right tail of the GPV ratio) or a linear
map ('"minmax"'). Densities are reported on the original scale through the
Jacobian.
fpa_density(
bids,
n = NULL,
method = c("wavelet_ll", "wavelet_linear", "wavelet_hard", "wavelet_block",
"wavelet_theory", "kde_hh", "kde", "empirical_quantile", "marmer_shneyerov"),
first_stage = "gpv_hh",
x = NULL,
j0 = 5L,
h = 0.15,
scale = c("auto", "log", "minmax", "none"),
filter = "db3",
dwt_filter = "coif1",
levels = 3L,
kernel = "triweight",
side = c("lower", "both"),
...
)
bids |
pooled bids (vector) or an 'L' by 'n' matrix. |
n |
bidders per auction (from 'ncol(bids)' for a matrix). |
method |
second-stage estimator; see Description. |
first_stage |
'"gpv_hh"' (default), '"gpv"', an [fpa_values()] object, or the name of a [qdf()] method to use through [fpa_values()]. |
x |
evaluation grid on the value scale. Defaults to 200 points spanning the pseudo-values (excluding the extreme 0.5 percent at each end). |
j0 |
resolution level, or '"cv"' to choose 'j0' (and 'h') by cross-validated held-out log-likelihood ([select_fpa_density()]). |
h |
local-linear bandwidth for '"wavelet_ll"' (ignored if 'j0 = "cv"'). |
scale |
'"auto"', '"log"', '"minmax"' or '"none"'. |
filter, dwt_filter, levels |
wavelet settings; see [qdf_wavelet()]. |
kernel, side |
kernel and correction side for [kde_hh()] (used in the '"gpv_hh"' first stage and the '"kde_hh"' second stage). |
... |
for 'first_stage' given as a [qdf()] method name, further arguments to [fpa_values()]; for '"wavelet_block"', arguments to [threshold_coefficients()]; for 'j0 = "cv"', 'j0_grid', 'h_grid', 'folds', 'criterion'. |
An object of class '"fpa_density"': a list with 'x', 'f' (density on the value scale), 'values' (pseudo-values), 'values_u' (on the unit scale), 'map', 'method', 'j0', 'h', 'first_stage', 'n', and 'fun', a function returning the density at arbitrary values.
Doosti, H., Dewan, I. and Sbai, E. (2026). Adaptive wavelet estimation of private-value densities in first-price auctions. SSRN preprint. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.2139/ssrn.7618223")}
Hickman, B. R. and Hubbard, T. P. (2015). *Journal of Applied Econometrics*, 30, 739–762.
Marmer, V. and Shneyerov, A. (2012). *Journal of Econometrics*, 167, 345–357.
set.seed(1)
sim <- fpa_simulate(40, 5, Q = function(u) qbeta(u, 2, 2))
fd <- fpa_density(sim$bids, method = "wavelet_ll", j0 = 5, h = 0.1)
plot(fd, true = function(v) dbeta(v, 2, 2))
# timber auctions, three bidders, log scale
data(timber)
fd3 <- fpa_density(timber$n3, method = "wavelet_ll", j0 = 4, h = 0.15)
plot(fd3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.