Scoring a Quiz

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • empiresolutions
    New Member
    • Apr 2006
    • 162

    #1

    Scoring a Quiz

    I making a personality quiz that goes like the following.

    User takes a test to determine which type of person they are more like. So there will be say 5 types, each given a percentage of 100 that they are closest to at quiz end. The test has 50 questions, plus a age question and a sex question. Each test has 5 possible answers. The user clicks through radio button to fill out the quiz. No sweat so far.

    My issue is in the test scoring, this is were i get confused. When making a test, each answer is weighted to fit a specific personality type. The weights are shown on screen as +6 thru 0 thru -6. (In code as 1-13, zero the default get 7 points). I have tried a few different scoring algos but non seem to be accurate. One other thing, I have to assume that a value other than zero WILL NOT be chosen when building a quiz.

    1st try - Multiple count of all questions times 7 (7 is middle or 0 on scale), then divide by total points gotten from weighted answers. This ends up being something like 350/372 = 94%. This is all good till you get a score like 350/352 = 99%. In percentage you can assume that the second score is higher, but in reality the first score had the greater point spread.

    2nd try - Add the highest value (up to 13) from each questions answers together for each personality type, then divide by total points gotten from weighted answers. This ends up something similar to the above try, but with higher percentages going to those personality types with answers that have no weights attached to them.

    OK so now that i have written this Im really thinking that the quizzes will not work if weights are not set to other than zero (aka 7 points). Am I totally off here? Can anyone lead me in a proper direction. Thanks much for helping my keep what hair is left on my head.

    Cesar
  • pbmods
    Recognized Expert Expert
    • Apr 2007
    • 5821

    #2
    Heya, Cesar.

    For 'personality type' quizzes, you want to create a number of variables to track and then give each variable points depending on how the User answers each question.

    For example, suppose you wanted to test Users on what kind of nerd they are (http://bytes.com/forum/thread655265.html).

    So we have three variables: nerdiness, geekiness and dorkiness.

    Let's take a sample question. I'm not feeling too creative right now, so we'll pick an easy one:

    Which of the following best describes you:
    1. Nerd
    2. Geek
    3. Dork
    Depending on how heavily we want to weigh this question, if the User answers 'A', he gets 1, 5, 10 or maybe 100 nerd points. If he answers 'B', he gets geek points instead. And likewise for 'C' with dork points.

    At the end of the quiz, you add up all the User's points for each variable and compare them to the total number of possible points for that variable.

    In the same vein as the non-creative example above, let's assume that we had a 5-question quiz. Each question had 3 choices, and each choice was associated with one of the three choices. Let's say that each choice was worth two points (means that there are 5 questions x 1 choice per question x 2 point per choice = 10 total possible points per variable) .

    So the User answers something like this:
    1. A (+2 Nerd Point)
    2. C (+2 Dork Point)
    3. C (+2 Dork Point)
    4. B (+2 Geek Point)
    5. C (+2 Dork Point)


    The User accumulated 2 Nerd Points, 2 Geek Points and 6 Dork Points, which means he got 20% of the Nerd Points, 20% of the Geek Points and 60% of the Dork Points.

    Note that in this case, it also means that he's 20% Nerd, 20% Geek and 60% Dork. However, that's not always true.

    Here's another example. We're going to do a 10-question quiz, and here's how we're scoring each answer:

    1.
    1. 5 Nerd Points
    2. 3 Geek Points
    3. 1 Dork Point


    2.
    1. 10 Nerd Points
    2. 5 Nerd Points
    3. 0 Nerd Points


    3.
    1. 5 Dork Points
    2. 3 Geek Points
    3. 1 Nerd Point


    4.
    1. 5 Geek Points
    2. 10 Geek Points
    3. -5 Geek Points


    5.
    1. 1 Dork Point
    2. 1 Dork Point
    3. 1 Dork Point


    6.
    1. 10 Geek Points
    2. 3 Nerd Points
    3. 3 Dork Points


    7.
    1. 0 Points
    2. 2 Nerd Points
    3. -2 Nerd Points


    8.
    1. 5 Nerd Points
    2. 5 Geek Points
    3. 5 Dork Points


    9.
    1. -1 Nerd Point
    2. -1 Geek Point
    3. -1 Dork Point


    10.
    1. 15 Geek Points
    2. 15 Dork Points
    3. 15 Nerd Points


    If you add them up, that means the User can get up to 46 Nerd Points, 51 Geek Points and 32 Dork Points (only count the positive values here; negatives don't count towards total possible points).

    So let's say the User answered:
    1. A (+5 Nerd Points)
    2. C (+0 Points)
    3. A (+5 Dork Points)
    4. A (+5 Geek Points)
    5. B (+1 Dork Point)
    6. B (+3 Nerd Points)
    7. A (+0 Points)
    8. C (+5 Nerd Points)
    9. A (-1 Nerd Point)
    10. B (+15 Dork Points)


    If we add up the User's totals, we get 12/46 = 26% (0.26) Nerd Points, 5/51 = 10% (0.10) Geek Points, 15/32 = 47% (0.47) Dork Points.

    Note that we're more concerned with the percentage than with the number of points; this is because there are a different number of total possible points for each category, so we have to use percentages to avoid skewing our result data.

    He scored higher in Dork than the other two categories, so he's probably a dork. It's up to you to determine what thresholds you want to use. As an example, if the User is 20% more dorky than either of the other two, he's just a Dork, but if his dork score is 40% higher, he's a *SuperDork*! If his dork score is less than 20% higher than either of the other two, he's kinda normal.

    You can also do fun things like compare his results to other test takers (you scored higher than 85% of all test takers in Nerdiness!) and provide important statistics about the test-taking community (64% of all test takers scored at least 40% in Geekiness!) and so on.

    Comment

    • empiresolutions
      New Member
      • Apr 2006
      • 162

      #3
      pbmods-

      thanks for your suggestion and examples. can you explain why negative values are counted? my current system as coded doesnt do negative numbers so i would have to make adjustments, but curious why no negatives.

      Comment

      • pbmods
        Recognized Expert Expert
        • Apr 2007
        • 5821

        #4
        A negative is a measure of negation; that is, it denotes that a User does *not* have a particular quality. The significance of this is that negative scores act as "penalties" rather than a part of the User's score.

        You *can* count negative numbers towards the total score; just be aware that it is then possible to score over 100% for a variable.

        Of course, it is also possible to make it impossible to score 100% for a given variable if negatives are *not* counted.

        I generally go for the latter over the former since it usually makes sense to the User *not* to score 100% in more than one category, and a score of > 100% would be confusing.

        Of course, you can also do away with negatives entirely if you so choose (:

        Comment

        Working...