I'm not a statician/mathematician, so please be gentle with me

This is a cross-post from Stack Overflow. I'm working with a site that lets the users create 'sections'. Each section have multiple items which are voted. The best ones are shown in the main page.

I found that a simplistic approach to rank would be bad idea. positive_votes - negative_votes will rank the recent ones with less votes higher (100%, two votes) than the older ones that have way more votes but lower percentage (93%, 300 votes). The average isn't a solution either. I found one article that explains these concepts, why they are a bad idea and how to fix it.

So I'm using the lower bound of Wilson score confidence interval for a Bernoulli parameter and it seems to be working just fine. However, I'd like to discard items that rank way too bad in that particular section.

I think I require two things:

  • The minimum votes required to discard an item in each section
  • The score's threshold that decides if an item will be discarded or not

It has to consider that while one section might have hundreds of items with thousands of votes, another might have less than 10 items with 50 or 60 votes, so while the minimum votes required for the popular one might be 100, it might be too high for the less popular ones.

In the original question, somebody suggested to use the same formula. However, it seems that the Ruby implementation is missing some parts: the alpha/2 is not present anywhere. Also, the original formula has a +/- sign, while the implementation has just a minus sign.


  • $\begingroup$ Note I suggested using the upper bound from the same formula. $\endgroup$ – Aniko May 17 '11 at 2:47
  • $\begingroup$ @mp Reading over the SO version and the article it references makes it clear the question belongs here: I think we would have quite a few things to say about the idea of ranking data by means of LCLs! I do not believe that CV mods can migrate a question from another site, but if the SO mods migrate it here we can do the merge easily. It might be best for @metro to flag the SO question and request the merge. $\endgroup$ – whuber May 17 '11 at 5:18

Perhaps you could extend the idea of using the lower bound of the confidence interval for sorting: you could throw away items that have a low upper bound. The items with only a few votes will have pretty high upper bounds; the lowest upper bounds will correspond to the lowest "quality" items.

| cite | improve this answer | |
  • $\begingroup$ I'm sorry, I'm not mathematician. How can I determine this lower bound? Also, could you expand this low upper bound concept? It seems a little too much for me hehe. Thanks for your response. $\endgroup$ – metrobalderas May 16 '11 at 19:09
  • $\begingroup$ The formula you linked to has a +/- in it. Using the - gives you the lower bound which you are using to sort the items if I understand you correctly. I am suggesting using the +, which gives you the upper bound of the interval, and throw away items that have a low value for it. $\endgroup$ – Aniko May 16 '11 at 19:37
  • $\begingroup$ Uh, maybe I'm missing something, but yes, the original formula has a +/- sign, however the Ruby implementation only has a minus sign, and, with further examination, there's some other things missing from the original formula; for instance, the alpha/2 is not present in any form in the whole formula. $\endgroup$ – metrobalderas May 17 '11 at 1:07
  • $\begingroup$ alpha is there, it is just called power for some reason. $\endgroup$ – Aniko May 17 '11 at 2:41
  • 1
    $\begingroup$ The formula defines a confidence interval: it has two ends. One is obtained by using the + and one is by using the -. The lower end (the lower bound of your title) is obtained by using the -. $\endgroup$ – Aniko May 17 '11 at 2:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.