Randomization without replacement | XM Community
Solved

Randomization without replacement

  • 18 April 2019
  • 8 replies
  • 260 views

I have 4 vignettes that I would like each participant to see, in a random order, and then answer one set of questions (from 4 possible sets) after seeing each vignette. I have put all 4 vignettes into a single block and used the randomizer to specify that 1 vignette should be displayed randomly. Then I have the 4 sets of questions in 4 blocks and have used the randomizer to specify that 1 block should be shown. That all works fine, but the problem arises when I go to the next step, with is showing another vignette and another block of questions. My intention is for each of the 4 vignettes and each of the 4 blocks of questions to be shown once, in a random order (for 16 possible combinations) and they should not be repeated once they have been shown. However, once I get to the subsequent sections, it is still just showing any 1 of the 4, including possibly the one they have already seen. Essentially I need randomization without replacement, where each item can only be used once in the survey. Is this possible?
icon

Best answer by JenCX 19 April 2019, 18:31

View original

8 replies

Userlevel 6
Badge +18
Hi hwilliamson ,

You can create couple of randomizers, first randomizer will pick vignettes randomly from 4 of your categories, which should include flag say vignettes1 = XYZ.

In 2nd randomizer
You can add a this flag,
E.g. your branch condition will have something like this:

If condition ABC is selected
And vignettes1 is not equal to XYZ

then vegenite2 =XYZ
Thanks for your response and I'm glad to hear that this is possible to do, but I am not able to follow your instructions. Can you say more about how to create the flag that tracks which vignette was presented?
Userlevel 7
Badge +11
@hwilliamson Hi there! Looks like Saurabh has one idea but I'm curious about how you've got your randomizer set up. Can you show us a screenshot of what it looks like?
!
Here's how I have it set up right now, but I can of course change it if it won't work this way. Participants need to see one of the primes, then one of the question blocks, then it repeats 3 times such that they have seen all 4 primes and all 4 question blocks with no repeats. So I have this same thing repeating 3 more times, but obviously right now the randomizer can pick one of the same ones that a previous rendomizer picked.
Userlevel 7
Badge +11
@hwilliamson Gotcha! Thanks, that helps, I'm a very visual person. To continue the idea about the flags, you'd want to add branches after and before each set (of 2 randomizers). For the after branches, you'd have one for each block to check if a question in that block was answered. If so, you'll set an embedded data variable. This is what it would look like (but I just did 1 question, you'd have 4-one that lives in each question block). Repeat for the images.
!

For the branching bit, you'll do a randomizer but include branches that check for the use of that Embedded data bit:
!
Userlevel 7
Badge +11
@hwilliams Okay hold on...there's an even easier way to do this, with a little less branching. I realized RIGHT after I posted, so forgive me. Will paste in just a sec, didn't want you to see the response and start trying to build this.
Userlevel 7
Badge +11
@hwilliams Sorry about that! Okay, so you can do branches within the randomizer to group items of tasks together. In this case, you'll use a branch with any statement that will always be true (I used RecipientEmail not empty) to group your block with your image together with an embedded data field to capture that you used that image:
!

Then for the remaining 3 sets of randomizers, you'll just double-check that your Embedded Data variable wasn't used for each option, and be sure to set the tag at the end of the branch again:
!
@jpardicusick This worked perfectly, thank you very much for your help!

Leave a Reply