Choose Language Hide Translation Bar
Which princess has the fastest car?

On a recent vacation day, I had promised my daughter that we would do an experiment together. While we’ve done some experiments from kits that we’ve picked up in retail stores, I’ve been wanting to get back into doing some home experiments with JMP, and was particularly inspired by recent posts from my colleagues @phersh (cycling) and @peter_polito (running).

I had recently set up a 6-lane racetrack for diecast cars that I’ve had tucked away for several years. We decided to have my daughter pick a subset of her favorite cars and try to discover who the fastest racer is. While there may be more sophisticated setups that measure the timing between start to finish, all we have available to us is the lane number of the winner, so our “fastest” is really a measure of which car is most likely to win.

We have 10 cars and a 6-track course. How do we design an experiment to figure out which car is fastest? (Photo by Caroll Co)We have 10 cars and a 6-track course. How do we design an experiment to figure out which car is fastest? (Photo by Caroll Co)


My daughter picked 10 cars that we were going to race with. Her picks also happened to coincide with character cars from a production company, and she was very keen on seeing if a pair of princesses (one with magical ice powers) would be crowned the champion.

With our cars picked, it was time to design an experiment. There are a few different issues to think about in designing this experiment:

  1. We can only use at most 6 of the 10 cars at any time.
  2. The Lane Number may be important, so we want to try to take it into account.
  3. Our response is who the winner was out of a given group of cars.

Thinking about issue 1, it seems reasonable to treat these “race groups” as blocks of size 6. When also accounting for issue 2, we want to spread out the cars to different lanes among the blocks. Ideally, we can also race each pair of cars against each other at some point in the experiment in one of the sets.

To handle the response, we don’t have a continuous response. Treating it as binary (win vs. loss) is not quite right, since we’re not accounting for the block structure. But, if we think of the winner as a “preferred choice” from the group of 6, we can analyze this experiment as a choice experiment, where the car and lane number would be the effects that we want for estimating the utility.

After some thought, it seemed like a balanced incomplete block design (BIBD) analyzed as a choice design would be a reasonable choice. The BIBD platform can be found under:

DOE->Special Purpose->Balanced Incomplete Block Design

Our “Treatment” here is the car, so I change the name to “Car” and enter the 10 different cars we’re using:


If we put in a Block Size of 6 (i.e., 6 cars at a time), we can get a design with 15 blocks. Even if running the same 6 cars multiple times, 15 configurations seemed doable with a 5-year-old. We could have saved a few sets of races by using 9 or 11 different cars, but we already had 10 picked out.


Clicking the “Make Design” button, and looking at the Diagnostics under “Incidence Matrix”, we can get an idea of the properties of the design.

The “Pairwise Treatment Frequencies” indicate that each car will be used 9 times, and will appear in a race against each other car 5 times:


Many of the designs in the BIBD platform have been optimized for the positional frequencies. In this case, the position would reflect the lane number, so we do want to ensure that these are as balanced as possible. We cannot achieve perfect balance, since each car appears 9 times (which is not divisible by 6), but the positional frequencies are as balanced as possible, which is what we want:


Note that way back in the “block size” step, there was a checkbox for “Include Block Multiples.” Since we were planning to run each block multiple times, we could have used this to rearrange the position of the 6 cars in a block for each race. I ultimately decided against this, since it was much simpler to just keep the cars in the same lanes when running replicate races of a block.

Stay tuned for the results. Who are you cheering from our list? Please let me know your favorite in the comments. Thanks for reading!

Article Labels

    There are no labels assigned to this post.


I'm rooting for Olaf.


What a great way to inspire your daughter to think critically about even the mundane. And also, Dumbo is going to crush it.

Community Manager

I am looking forward to the results and to learn if Belle wins.



Great use of BIBD.  I am a little wary of bias toward Elsa.  I will go with Donald.


@arati_mejdal @peter_polito Olaf and Dumbo are very similar in their car form - I would think they'd be nose-to-nose in a head-to-head.


@stan_koprowski A bit of a spoiler... but poor Belle didn't have much of a chance. She was noticeably the last one through the gate in most races she was in.


Thanks @phersh! I was secretly rooting for Anna, since Elsa seems to get all the love from my daughter and her friends. 


Really @phersh? Donald?  He gets such a bad reputation in the 1970's books we read the kids so I just don't pull for him.  I'll go with an underdog, I feel Pinocchio is always in need of a confidence boost.  Go get em Little Man!


Wonderful way to explain BIBDs, @ryan_lekivetz .


You guys forgot about tinkerbell. She will fly thru this!


@dara_hammond I agree with you - Team Pinocchio!


Thanks @phil_kay !


@Melisamuhd One of my daughter's faves too! Sadly, she might have given too much of her pixie dust to Peter Pan.


Would rate for Donald if he would be phantomias or in rage. AS this wasn't said he probably will run into traffic jam or loos wheels or so. Therefore I'll go with Anna, as she got support from the lovely Sven in case she's to slow


@dara_hammond and @martindemel I feel like Donald needs a win.  I think the song goes who gets stuck with all the bad luck?  No one but Donald Duck.


@martindemel I hadn't heard of Phantomias before - that would be a great version for his car!

Community Manager

I love this.  I think Dumbo based on just sight of weight.  But I have serious question here. How could accommodate for car (product) deterioration during multiple runs. i.e. a car fall off track gets damage (but not noticeably to your eye) and has wheel alignment issues.  Could you potentially pull a new car for each run?  Or a test protocol for car damage between runs?  I've notice my products (prototype) get damaged during testing.  Thanks for doing this Ryan!  It''s just Fun. 


@ryandewitt Great comments/questions! If I had a better setup and time, the reliability tools could be handy, particularly if you could measure something like the speed through the gate. Pulling a new car also brings about a new level of variability (at the car level), which would need a separate study. Could also add a time effect, but we don't race them enough here - some of the best racers are still the cars from 50 years ago, and have been run a number of times. 


The damage/wheel alignment issue is one that we could check if we have a model we somewhat trust. I get into the idea of confirmation runs next time, but I could imagine checking if the model still seems to hold after a fall.

Community Manager

Thanks. So wheel alignment (which effects rail ride and partly friction) can be checked on a separate track without lanes between runs. However, this is usually only an issue if you damage the car. My custom soft wood, pinewood Derby cars get damaged easily. An obvious thought on this now, is to take the extra time to carefully handle and design your testing run environment to protect the cars (products) like rail guards on a road on a cliff.  Also finish all of the runs in a short time frame to eliminate in unfortunate damage to the cars or track (assembly line, conveyor, etc.) .  I imagine in a Design where time was an actual factor like paint properties or water based products that are vulnerable to evaporation that controlling total time of the runs is critical.  Fun stuff.