Search code examples
sqlstatisticsranking

assign scores to items which have been placed in a ranking order


Consider five choices of ice cream: vanilla, chocolate, raspberry, strawberry, mango.

People are asked to rank their preferences for flavour. They can rank one or more of the flavours. So some people may rank all five, some may rank only one or two.

The problem is to produce a final ranking of flavours across all the data.

One method is to assign 5 points for position 1 down to 1 point for a position 5. You can then either calculate the average score or use the total score.

However each has its own problems.

Calculating the average means that five people ranking mango fifth has the same weight as one person ranking it first (5*1==1*5).

An alternative is to compare, for each person, the difference in positions between the flavours that have been ranked and assign plus and minus scores based on the position difference.

So someone whose ranking order was chocolate, mango, strawberry would produce:
chocolate v mango=chocolate+1, mango-1
chocolate v strawberry would give chocolate+2, strawberry-2
mango v strawberry would give mango+1, strawberry-1

Result after this one person: chocolate:3, mango:0, strawberry:-3

Then accumulate the scores for each flavour across all the data.

But is there a standard statistical way of doing this?


Solution

  • Must they be in a ranked order? Someone may like 2 flavours equally/have no preference, but like them both strongly.

    A score for each option would be another approach, that could capture this and solve the problems you mentioned. http://en.wikipedia.org/wiki/Net_Promoter may be of interest to you.