Positive Bias Test (C++ program)

I’ve written a program which tests positive bias using Wason’s procedure from “On the failure to eliminate hypotheses in a conceptual task” (Quarterly Journal of Experimental Psychology, 12: 129-140, 1960). If the user does not discover the correct rule, the program attempts to guess, based on the user’s input, what rule the user did find, and explains the existence of the more general rule. The program then directs the user here.

I’d like to use a better set of triplets, and perhaps include more wrong rules. The program should be fairly flexible in this way.

I’d also like to set up a web-based front-end to the program, but I do not currently know any cgi.

I’m not completely happy with the program’s textual output. It still feels a bit like the program is scolding the user at the end. Not quite sure how to fix this.

Program source

ETA: Here is a macintosh executable version of the program. I do not have any means to make an exe file, but if anyone does, I can host it.

If you’re on Linux, I’m just going to assume you know what to do with a .cpp file =P

Here is a sample run of the program (if you’re unfamiliar with positive bias, or the wason test, I’d really encourage you to try it yourself before reading):

Hi there! We’re going to play a game based on a classic cognitive science experiment first performed by Peter Wason in 1960 (references at the end)

Here’s how it works. I’m thinking of a rule which separates sequences of three numbers into ‘awesome’ triplets, and not-so-awesome triplets. I’ll tell you for free that 2 4 6 is an awesome triplet.

What you need to do is to figure out which rule I’m thinking of. To help you do that, I’m going to let you experiment for a bit. Enter any three numbers, and I’ll tell you whether they are awesome or not. You can do this as many times as you like, so please take your time.

When you’re sure you know what the rule is, just enter 0 0 0, and I’ll test you to see if you’ve correctly worked out what the rule is.

Enter three numbers separated by spaces: 3 6 9

3, 6, 9 is an AWESOME triplet!

Enter three numbers separated by spaces: 10 20 30

10, 20, 30 is an AWESOME triplet!

Enter three numbers separated by spaces: 8 16 24

8, 16, 24 is an AWESOME triplet!

Enter three numbers separated by spaces: 0 0 0

So, you’re pretty sure what the rule is now? Cool. I’m going to give you some sets of numbers, and you can tell me whether they seem awesome to you or not.
Would you say that 3, 6, 9 looks like an awesome triplet? (type y/​n)
y

Would you say that 6, 4, 2 looks like an awesome triplet? (type y/​n)
n

Would you say that 8, 10, 12 looks like an awesome triplet? (type y/​n)
n

Would you say that 1, 17, 33 looks like an awesome triplet? (type y/​n)
n

Would you say that 18, 9, 0 looks like an awesome triplet? (type y/​n)
n

Would you say that 1, 7, 3 looks like an awesome triplet? (type y/​n)
n

Would you say that 3, 5, 7 looks like an awesome triplet? (type y/​n)
n

Would you say that 2, 9, 15 looks like an awesome triplet? (type y/​n)
n

Would you say that 5, 10, 15 looks like an awesome triplet? (type y/​n)
y

Would you say that 3, 1, 4 looks like an awesome triplet? (type y/​n)
n

You thought that 3, 6, 9 was awesome.
In fact it is awesome.

You thought that 6, 4, 2 was not awesome.
In fact it is not awesome.

You thought that 8, 10, 12 was not awesome.
In fact it is awesome.

You thought that 1, 17, 33 was not awesome.
In fact it is awesome.

You thought that 18, 9, 0 was not awesome.
In fact it is not awesome.

You thought that 1, 7, 3 was not awesome.
In fact it is not awesome.

You thought that 3, 5, 7 was not awesome.
In fact it is awesome.

You thought that 2, 9, 15 was not awesome.
In fact it is awesome.

You thought that 5, 10, 15 was awesome.
In fact it is awesome.

You thought that 3, 1, 4 was not awesome.
In fact it is not awesome.

It looks as though you thought the rule was that awesome triplets contained three successive multiples of the same number, like 3,6,9, or 6,12,18. In fact, awesome triplets are simply triplets in which each number is greater than the previous one.

The rule for awesomeness was a fairly simple one, but you invented a more complicated, more specific rule, which happened to fit the first triplet you saw. In experimental tests, it has been found that 80% of subjects do just this, and then never test any of the triplets that *don’t* fit their rule. If they did, they would immediately see the more general rule that was applying. This is a case of what psychologists call ‘positive bias’. It is one of the many biases, or fundamental errors, which beset the human mind.

There is a thriving community of rationalists at the website Less Wrong (http://​​www.lesswrong.com) who are working to find ways to correct these fundamental errors. If you’d like to learn how to perform better with the hardware you have, you may want to pay them a visit.

If you’d like to learn more about positive bias, you may enjoy the article ‘Positive Bias: Look Into the Dark’: http://​​www.overcomingbias.com/​​2007/​​08/​​positive-bias-l.html
If you’d like to learn more about the experiment which inspired this test, look for a paper titled ‘On the failure to eliminate hypotheses in a conceptual task’ (Quarterly Journal of Experimental Psychology, 12: 129-140, 1960)