| Type: | Package | 
| Title: | Calculate the Revealed Aggregator of Probability Predictions | 
| Version: | 0.1.1 | 
| Description: | Forecasters predicting the chances of a future event may disagree due to differing evidence or noise. To harness the collective evidence of the crowd, Ville Satopää (2021) "Regularized Aggregation of One-off Probability Predictions" https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3769945 proposes a Bayesian aggregator that is regularized by analyzing the forecasters' disagreement and ascribing over-dispersion to noise. This aggregator requires no user intervention and can be computed efficiently even for a large numbers of predictions. The author evaluates the aggregator on subjective probability predictions collected during a four-year forecasting tournament sponsored by the US intelligence community. The aggregator improves the accuracy of simple averaging by around 20% and other state-of-the-art aggregators by 10-25%. The advantage stems almost exclusively from improved calibration. This aggregator – know as "the revealed aggregator" – inputs a) forecasters' probability predictions (p) of a future binary event and b) the forecasters' common prior (p0) of the future event. In this R-package, the function sample_aggregator(p,p0,...) allows the user to calculate the revealed aggregator. Its use is illustrated with a simple example. | 
| License: | GPL-2 | 
| Copyright: | (c) Ville Satopaa | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.1.1 | 
| LinkingTo: | Rcpp | 
| Imports: | Rcpp | 
| Suggests: | testthat (≥ 3.0.0) | 
| Config/testthat/edition: | 3 | 
| NeedsCompilation: | yes | 
| Packaged: | 2021-05-29 12:57:04 UTC; ville.satopaa | 
| Author: | Ville Satopää [aut, cre, cph] | 
| Maintainer: | Ville Satopää <ville.satopaa@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2021-05-29 13:10:02 UTC | 
Revealed Aggregator
Description
This function allows the user to compute the revealed aggregator from Satopää, V.A. (2021): Regularized Aggregation of One-off Probability Predictions. The current version of the paper is available at https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3769945.
Usage
sample_aggregator(
  p,
  p0 = NULL,
  alpha = NULL,
  beta = NULL,
  a = 1/2,
  b = 1/2,
  num_sample = 1e+06,
  burnin = num_sample/2,
  thin = 1,
  seed = 1
)
Arguments
| p | Vector of  | 
| p0 | The forecasters' common prior. This represents a probability prediction based on some of the forecasters' common evidence and must be strictly between 0 and 1. | 
| alpha,beta | The shape and scale parameters of the prior beta distribution of the common prior.
If omitted, the sampler uses the fixed common prior given by  | 
| a,b | The parameters for the prior distribution of  | 
| num_sample | The number of posterior samples to be drawn. This does not take into account burnin and thinning. | 
| burnin | The number of the initial  | 
| thin | After  | 
| seed | The seed value for random value generation. | 
Value
A data frame with rows representing posterior draws of (p*, \rho, \gamma, \delta, p0). The columns are:
- aggregate: The posterior samples of the oracle aggregator- p*. The average of these values gives the revealed aggregator- p''. The 95% interval of these values gives the 95% credible interval of the oracle aggregator.
- rho: The posterior samples of the forecasters' shared evidence,- \rho.
- gamma: The posterior samples of the forecasters' total evidence,- \gamma. The difference- gamma-- rhogives the posterior samples of the forecasters' rational disagreement.
- delta: The posterior samples of the forecasters' total evidence plus noise,- \delta. The difference- delta-- gammagives the posterior samples of the forecasters' irrational disagreement.
- p0: The posterior samples of the forecasters' common prior. If a beta prior distribution is not specified via the arguments- alphaand- beta, then all elements of this column are equal to the fixed common prior given by the- p0argument.
Examples
# Illustration on Scenario B in Satopää, V.A. (2021).
# Forecasters' probability predictions:
p = c(1/2, 5/16, 1/8, 1/4, 1/2)
# Aggregate with a fixed common prior of 0.5.
# Sample the posterior distribution:
post_sample = sample_aggregator(p, p0 = 0.5, num_sample = 10^6, seed = 1)
# The posterior means of the model parameters:
colMeans(post_sample[,-1])
# The posterior mean of the oracle aggregator, a.k.a., the revealed aggregator:
mean(post_sample[,1])
# The 95% credible interval for the oracle aggregator:
quantile(post_sample[,1], c(0.025, 0.975))
# Aggregate based a uniform distribution on the common prior
# Recall that Beta(1,1) corresponds to the uniform distribution.
# Sample the posterior distribution:
post_sample = sample_aggregator(p, alpha = 1, beta = 1, num_sample = 10^6, seed = 1)
# The posterior means of the oracle aggregate and the model parameters:
colMeans(post_sample)