Randomize order of questions

form-design
#1

Hi All\

I would like to randomly ask questions in one section of the survey in order to avoid bias, but i want to ensure that all questions in that section are asked.

As an example, lets say that this particular section of the survey has 10 questions which should all be asked to each respondent. However, i would like to randomize the order in which they appear.

I do understand i can use the rand()in the constraint field, but not sure how i can build on this in XLSForm environment. I have tried the random-once() but my version of ODK does not support it.

Any ideas? Much appreciated.

Francis

0 Likes

Randomizing Lists or Questions within Groups
#2

This is generally not going to be feasible in ODK Collect.

Does anyone do this and have any recommendations?

··· -------------------- w.r.t. random-once()

ODK Collect 1.4.3 has a once() function. Anything computed within it will
only be computed once.

So, random-once() is simply once(random()) in ODK Collect 1.4.3.

On Sun, Jun 8, 2014 at 11:16 AM, hatchileconsult@gmail.com wrote:

Hi All\

I would like to randomly ask questions in one section of the survey in
order to avoid bias, but i want to ensure that all questions in that
section are asked.

As an example, lets say that this particular section of the survey has 10
questions which should all be asked to each respondent. However, i would
like to randomize the order in which they appear.

I do understand i can use the rand()in the constraint field, but not sure
how i can build on this in XLSForm environment. I have tried the
random-once() but my version of ODK does not support it.

Any ideas? Much appreciated.

Francis

--

Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com

0 Likes

#3

The general strategy we recommend is you put your questions in a group,
then replicate that group x times with x different orderings. Then
randomize which group shows.

If you don't like having to consolidate the responses in your back-end
processing, you can build calculated fields that consolidate answers into a
fixed set of fields, one for each question.

Lots of people do this. The questions don't change order per se, but it
appears that they do for people filling out the surveys -- which is
generally good enough.

Best,

Chris

··· On Mon, Jun 9, 2014 at 1:29 PM, Mitch Sundt wrote:

This is generally not going to be feasible in ODK Collect.

Does anyone do this and have any recommendations?


w.r.t. random-once()

ODK Collect 1.4.3 has a once() function. Anything computed within it will
only be computed once.

So, random-once() is simply once(random()) in ODK Collect 1.4.3.

On Sun, Jun 8, 2014 at 11:16 AM, hatchileconsult@gmail.com wrote:

Hi All\

I would like to randomly ask questions in one section of the survey in
order to avoid bias, but i want to ensure that all questions in that
section are asked.

As an example, lets say that this particular section of the survey has 10
questions which should all be asked to each respondent. However, i would
like to randomize the order in which they appear.

I do understand i can use the rand()in the constraint field, but not sure
how i can build on this in XLSForm environment. I have tried the
random-once() but my version of ODK does not support it.

Any ideas? Much appreciated.

Francis

--

Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com

--

Post: opendatakit@googlegroups.com
Unsubscribe: opendatakit+unsubscribe@googlegroups.com
Options: http://groups.google.com/group/opendatakit?hl=en


You received this message because you are subscribed to the Google Groups
"ODK Community" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to opendatakit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

0 Likes

#4

Can you please be more specific? I don't know where to insert the formula for randomization in the file excel.

··· Il giorno lunedì 9 giugno 2014 19:32:56 UTC+2, Christopher Robert ha scritto: > The general strategy we recommend is you put your questions in a group, then replicate that group x times with x different orderings. Then randomize which group shows. > > > If you don't like having to consolidate the responses in your back-end processing, you can build calculated fields that consolidate answers into a fixed set of fields, one for each question. > > > > > Lots of people do this. The questions don't change order per se, but it appears that they do for people filling out the surveys -- which is generally good enough. > > > Best, > > > > > Chris > > > > > > On Mon, Jun 9, 2014 at 1:29 PM, Mitch Sundt wrote: > > > > > > This is generally not going to be feasible in ODK Collect. > > > Does anyone do this and have any recommendations? > > > > > -------------------- > > w.r.t. random-once() > > > ODK Collect 1.4.3 has a once() function. Anything computed within it will only be computed once. > > So, random-once() is simply once(random()) in ODK Collect 1.4.3. > > > > > > > > > > > > On Sun, Jun 8, 2014 at 11:16 AM, wrote: > > > > Hi All\ > > > > I would like to randomly ask questions in one section of the survey in order to avoid bias, but i want to ensure that all questions in that section are asked. > > > > As an example, lets say that this particular section of the survey has 10 questions which should all be asked to each respondent. However, i would like to randomize the order in which they appear. > > > > I do understand i can use the rand()in the constraint field, but not sure how i can build on this in XLSForm environment. I have tried the random-once() but my version of ODK does not support it. > > > > Any ideas? Much appreciated. > > > > Francis > > > > -- > > -- > > Post: opend...@googlegroups.com > > Unsubscribe: opendatakit...@googlegroups.com > > Options: http://groups.google.com/group/opendatakit?hl=en > > > > --- > > You received this message because you are subscribed to the Google Groups "ODK Community" group. > > To unsubscribe from this group and stop receiving emails from it, send an email to opendatakit...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > > > > -- > Mitch Sundt > Software Engineer > University of Washington > mitche...@gmail.com > > > > > > > > -- > > -- > > Post: opend...@googlegroups.com > > Unsubscribe: opendatakit...@googlegroups.com > > Options: http://groups.google.com/group/opendatakit?hl=en > > > > --- > > You received this message because you are subscribed to the Google Groups "ODK Community" group. > > To unsubscribe from this group and stop receiving emails from it, send an email to opendatakit...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout.
0 Likes

#5
  1. Make an initial calculation field which generates a random number
  2. Work out your block of X questions
  3. Make a group called ORDER 1
    3a) Pu the complete set of questions inside this group
    3b) Set the relevant field for the begin group line to be if the random number is between X and Y
  4. Make a group called ORDER 2
    4a) Put the complete set of questions inside this group in a different order from ORDER1
    4b) Set the relevant field for the begin group line to be if the random number is between Y and Z

REPEAT until you have the desired number of groups.
Obviously the values of the relevant field depend on how many ordering you end up with.

··· On Tuesday, June 14, 2016 at 6:26:58 PM UTC+1, nonni....@studenti.uniroma1.it wrote: > Can you please be more specific? I don't know where to insert the formula for randomization in the file excel. > > > > > > Il giorno lunedì 9 giugno 2014 19:32:56 UTC+2, Christopher Robert ha scritto: > > The general strategy we recommend is you put your questions in a group, then replicate that group x times with x different orderings. Then randomize which group shows. > > > > > > If you don't like having to consolidate the responses in your back-end processing, you can build calculated fields that consolidate answers into a fixed set of fields, one for each question. > > > > > > > > > > Lots of people do this. The questions don't change order per se, but it appears that they do for people filling out the surveys -- which is generally good enough. > > > > > > Best, > > > > > > > > > > Chris > > > > > > > > > > > > On Mon, Jun 9, 2014 at 1:29 PM, Mitch Sundt wrote: > > > > > > > > > > > > This is generally not going to be feasible in ODK Collect. > > > > > > Does anyone do this and have any recommendations? > > > > > > > > > > -------------------- > > > > w.r.t. random-once() > > > > > > ODK Collect 1.4.3 has a once() function. Anything computed within it will only be computed once. > > > > So, random-once() is simply once(random()) in ODK Collect 1.4.3. > > > > > > > > > > > > > > > > > > > > > > > > On Sun, Jun 8, 2014 at 11:16 AM, wrote: > > > > > > > > Hi All\ > > > > > > > > I would like to randomly ask questions in one section of the survey in order to avoid bias, but i want to ensure that all questions in that section are asked. > > > > > > > > As an example, lets say that this particular section of the survey has 10 questions which should all be asked to each respondent. However, i would like to randomize the order in which they appear. > > > > > > > > I do understand i can use the rand()in the constraint field, but not sure how i can build on this in XLSForm environment. I have tried the random-once() but my version of ODK does not support it. > > > > > > > > Any ideas? Much appreciated. > > > > > > > > Francis > > > > > > > > -- > > > > -- > > > > Post: opend...@googlegroups.com > > > > Unsubscribe: opendatakit...@googlegroups.com > > > > Options: http://groups.google.com/group/opendatakit?hl=en > > > > > > > > --- > > > > You received this message because you are subscribed to the Google Groups "ODK Community" group. > > > > To unsubscribe from this group and stop receiving emails from it, send an email to opendatakit...@googlegroups.com. > > > > For more options, visit https://groups.google.com/d/optout. > > > > > > > > > > -- > > Mitch Sundt > > Software Engineer > > University of Washington > > mitche...@gmail.com > > > > > > > > > > > > > > > > -- > > > > -- > > > > Post: opend...@googlegroups.com > > > > Unsubscribe: opendatakit...@googlegroups.com > > > > Options: http://groups.google.com/group/opendatakit?hl=en > > > > > > > > --- > > > > You received this message because you are subscribed to the Google Groups "ODK Community" group. > > > > To unsubscribe from this group and stop receiving emails from it, send an email to opendatakit...@googlegroups.com. > > > > For more options, visit https://groups.google.com/d/optout.
0 Likes

#6

Hi Christopher, thanks for your help through the years on this randomization question. I've successfully used your methods to create 5-10 different randomization blocks, but the back-end processing is quite tedious. Do you have recommendations for using the calculate fields within an XML form to simplify this process?

The issue I'm having is that a basic "sum( )" doesn't work because blanks + 1 will throw an error (or just a blank). And adding in a "default" value doesn't help if the question block isn't shown. Is there an easier way around this than creating a bunch of if(${block1_question1}='',0) statements for each block?

Thanks,
James

0 Likes

#7

Unfortunately, no, there really isn't a less-tedious way right now. We have
a large number of users affected by this, and we have an active discussion
in our SurveyCTO feature-requests forum re: potential designs; we're trying
to find the right balance of ease-of-use and flexibility. I think we're
close to a design that can work, and then we just have to figure out how
quickly we can get it into the product. (As with everything we do, one key
consideration is the effect on components end-to-end: so how does it work
in the online form designer? in Excel form definitions? in data exports?
etc., etc.)

Sorry that I don't have a quicker or better answer for you!

Best,

Chris

0 Likes

#8

Anything new happening in the regard of ordering questions? As far as I know it possible to order options quiet easily. However does one still have to create repeated groups to order questions? If I want to randomise 10 Questions/Items of a Likert-Skale (e.g. measuring attitudes) displayed using a field-list, I would have to create 10! = 3628800 to take into acount every possible order.

0 Likes

#9

@colonus We haven't come up with an easier way to randomize questions, but it is now easier to do likert-scales using the rank widget.

0 Likes

#10

We faced a similar problem and we tried a comparatively simpler way to randomize the order of the question. We used repeat group to make this easier. However, there will be some additional work when the data is downloaded.

There is a sample form here and relevant csv file here.

0 Likes

Random display a subset of question library
#11

Hi Merhab_Ali,

I tried to look at the files you shared and were not able to upload it to our platform because of some errors in the scripting.

I don't understand the code on the repeat_count of the repeat in row 12! It is if condition based on values in a follow up questions which is not correct!

Do you have a working version of this file? Also Could you please elaborate how does this work?

Looking forward to hearing from you.

All the best,

Ali

0 Likes

#12

Hi Yankwa,

Could you please explain how to implement the Randomize order of questions using rank widget?

Thank you in advance.

Ali

0 Likes

#13

Check the XLS form. If it works let us know rank.xlsx (15.4 KB)

1 Like