2

Practical example: http://dota2.com/leaderboards shows the ~800 best solo ranked match-making scores in an Elo rating system. The lowest possible score is 1. There were 9318362 players last month, but not all of them participate in ranked match-making. From http://dota2toplist.com/statistics we can infer normal distribution; the site shows a self-reported small subset of players who are generally more knowledgeable about the game, so that curve is biased towards the larger scores.

Taking all of this into account, and assuming a participation quota of 5, 10, 15, … 100 percent of players in solo ranked match-making, can we find out what the unbiased global distribution looks like? How accurate would that model be?

daxim
  • 121
  • I'm not sure I fully get the question. You want to take the information about the top 800 to deduce a suitable normal distribution for all 9.3 million player? What should be done with the statistic from http://dota2toplist.com/statistics ? It seems like an interesting problem, but sadly I don't fully get your question. – Thomas Jul 28 '14 at 12:08
  • Okay maybe I get it. We should take the scores of the top 800, assume that 800 equals $x$% of the total number of players and derive the mean and variance for a normal distribution that is matched to the given data? – Thomas Jul 28 '14 at 12:11
  • 1
    You do nothing with with the biased statistic from dota2toplist, it only illustrates that scores are normal distributed. Yes to your latest clarification question. – daxim Jul 28 '14 at 12:25

1 Answers1

0

You can use a truncated maximum likelihood estimate assuming 800=$p\%$ top values of the population and $x_i$ are the 800 observed values:

Let $N=\lceil \frac{800}{p\%}\rceil \;\;x^-=\min\{x_i\},\;\; L(\mu,\sigma)=\left\{\Phi\left(\frac{x^--\mu}{\sigma}\right)^{N-801}\right\}\prod\limits_{i=1}^{800}\phi\left(\frac{x_i-\mu}{\sigma}\right)$, where $\Phi(\cdot)$ and $\phi(\cdot)$ represent the standard normal CDF and pdf, respectively.

Now, you can use a nonlinear optimization package (e.g., Excel Solver, Newtown-Raphson, EM, Matlab) to solve:

$\mu^*,\sigma^*=\max \limits_{\mu,\sigma} \left\{\log L(\mu,\sigma)\right\}$

The values will be your MLEs for left-censored data. Assessing the accuracy of the model will require a bootstrap procedure (I'd first try a parametric bootstrap):

  1. Simulate $N$ values from your fitted normal distribution (i.e. $\mu^*\sigma^*$)
  2. Take the top 800 values and re-calculate the (bootstrap) MLE's of $\mu,\sigma$ from that data
  3. Subtract $\mu^*\sigma^*$ from your bootstrap MLE. Record this difference as a "boostrap error".
  4. Do this 1,000 times or so.
  5. Look at the distribution of of your bootstrap errors. You can use percentile of this distribution to determine the approximate confidence of your results.
  • Can you give me some practical advice on how to calculate this? I am a programmer, not a mathematician, and I have no idea how to translate your formula into PDL::Opt::NonLinear code. – daxim Jul 30 '14 at 15:22
  • @daxim its a constrained optimization problem, per PDL. where you want to minimize $-1\times \log L$ as your function, and you can look up the expressions for the standard normal CDF and pdf. –  Jul 30 '14 at 17:15
  • @daxim Note that $\sigma>0$ –  Jul 30 '14 at 17:15