Millisecond Forums

Randomization of input device and pictures in PSE

https://forums.millisecond.com/Topic26477.aspx

By Motto - 2/21/2019

Hello,

I want to adapt a version of the Picture Story Exercise (Schultheiss & Pang ,2008) in a study.
I want my participants to first see a picture for about 10 seconds and afterwards tell a story about this picture. My plan is to change the input device throughout the participant's answers. So you could say I have 3 conditions. I will use the word condition in the following to make it easier to understand.

Condition 1: Participants type a story using the keyboard in open text format. After a while they are told that time is up and they should click on forward. Then the next picture is presented. And so on.
Condition 2: Participants write their stories on a sheet of paper that is on the table next to the desktop. This means, that there should be no text box on the screen (maybe there will be a note telling them to use the sheet of paper). After a while they are told that time is up (maybe accompanied by a sound signal) and they should click on forward.Then the next picture is presented. And so on.
Condition 3: Participants tell their stories into a microphone. After a while they are told that time is up (maybe accompanied by a sound signal) and they should click on forward. After a while they are told that time is up (maybe accompanied by a sound signal) and they should click on forward. Then the next picture is presented. And so on.
Now I plan to have a stimuli pool of 3 pictures per condition. This means that I have 9 pictures (3 pools with 3 pictures) in total.

What I want Inquisit to do, is to randomly select one condition in the beginning without replacement. This condition stays the same until the participant has typed/written/spoken the 3 stories for this condition. Afterwards Inquisit should randomly pick one condition of the remaining. This stays the same for the next 3 stories and then it should choose the remaining condition.
The next part I want to randomize is the picture pool. So in a first step Inquisit should randomly select a condition without replacement and then randomly select a picture pool without replacement. The chosen pool stays the same for the chosen condition and when Inquisit randomly selects the next condition it should randomly select the next picture pool. And so on.

I wanted to ask you if you have an elegant idea to realize this experiment, because I am a little stuck.
It would be very helpful, if you could help me.
Thank you in advance for your time and brainwork.
Dominik
By Dave - 2/21/2019

Motto - Friday, February 22, 2019
Hello,

I want to adapt a version of the Picture Story Exercise (Schultheiss & Pang ,2008) in a study.
I want my participants to first see a picture for about 10 seconds and afterwards tell a story about this picture. My plan is to change the input device throughout the participant's answers. So you could say I have 3 conditions. I will use the word condition in the following to make it easier to understand.

Condition 1: Participants type a story using the keyboard in open text format. After a while they are told that time is up and they should click on forward. Then the next picture is presented. And so on.
Condition 2: Participants write their stories on a sheet of paper that is on the table next to the desktop. This means, that there should be no text box on the screen (maybe there will be a note telling them to use the sheet of paper). After a while they are told that time is up (maybe accompanied by a sound signal) and they should click on forward.Then the next picture is presented. And so on.
Condition 3: Participants tell their stories into a microphone. After a while they are told that time is up (maybe accompanied by a sound signal) and they should click on forward. After a while they are told that time is up (maybe accompanied by a sound signal) and they should click on forward. Then the next picture is presented. And so on.
Now I plan to have a stimuli pool of 3 pictures per condition. This means that I have 9 pictures (3 pools with 3 pictures) in total.

What I want Inquisit to do, is to randomly select one condition in the beginning without replacement. This condition stays the same until the participant has typed/written/spoken the 3 stories for this condition. Afterwards Inquisit should randomly pick one condition of the remaining. This stays the same for the next 3 stories and then it should choose the remaining condition.
The next part I want to randomize is the picture pool. So in a first step Inquisit should randomly select a condition without replacement and then randomly select a picture pool without replacement. The chosen pool stays the same for the chosen condition and when Inquisit randomly selects the next condition it should randomly select the next picture pool. And so on.

I wanted to ask you if you have an elegant idea to realize this experiment, because I am a little stuck.
It would be very helpful, if you could help me.
Thank you in advance for your time and brainwork.
Dominik

Make three scripts of the PSE, one per condition. Then randomize their order using a <batch> script. That would be the easiest way. Otherwise, you can make a <block> for each condition, and sample the three  blocks randomly without replacement via your script's <expt> element's /blocks attribute.
By Motto - 3/5/2019

Thank you for your fast answer.
Using the <batch> way would randomize the scripts, but the randomization of the stimuli pools would not be possible. Is my asumption right? Or is there a way to randomize the same stimuli pools for different scripts.
At the moment I see the same problem for using <block>. I think that I am missing something. I will post a PSE-file we are using and maybe you can help me to realize where I am stuck.
In the file you can see the structure that we use at the moment. Every <block> consist of a <trial> showing a picture and after that an <openended>.  I can't wrap my head around the right way to program my experiment. I try to explain again what I want and what problems I see.

Requirements: 3 blocks (1=speech, 2=Keyboard, 3=pen&paper), 3 picture lists (I, II, III), every list consists of 3 pictures (a, b, c) 

In the following I will describe a possible sequence for one subject in the experiment:

experiment starts: experiment randomly selects block 2 -> instructions to use the Keyboard for the following 3 stories -> randomly selects picture list III -> randomly shows picture IIIc for 10 seconds -> <openended> for 4 minutes -> now randomly shows picture IIIa for 10 seconds ->  <openended> for 4 minutes -> now randomly shows picture IIIb -> <openended> for 4 minutes   --------> now random selection of block 1 -> instruchtion to use the microphone for the following 3 stories -> randomly selects picture list I -> randomly shows pic Ia for 10 seconds -> voice reording with a prompt to go on after 4 min -> randomly pic Ic for 10 sec -> voice recording with a prompt to go on after 4 min -> randomly pic Ib for 10 sec -> voce recording with a prompt to go on after 4 min  --------------> now selection of block 3 -> instruction to use pen&paper -> selection of picture list II -> randomly pic IIb for 10 sec -> black Screen with prompt to use pen&paper after 4 min prompt to go on -> randomly pic IIa for 10 sec .... and so on

With the current structure of the PSE I don't know how to program blocks that randomly select a picture list (with noreplace) and then randomly show the three pictures of the list with the same Input device.

Dominik
By Dave - 3/5/2019

Motto - Wednesday, March 6, 2019
Thank you for your fast answer.
Using the <batch> way would randomize the scripts, but the randomization of the stimuli pools would not be possible. Is my asumption right? Or is there a way to randomize the same stimuli pools for different scripts.
At the moment I see the same problem for using <block>. I think that I am missing something. I will post a PSE-file we are using and maybe you can help me to realize where I am stuck.
In the file you can see the structure that we use at the moment. Every <block> consist of a <trial> showing a picture and after that an <openended>.  I can't wrap my head around the right way to program my experiment. I try to explain again what I want and what problems I see.

Requirements: 3 blocks (1=speech, 2=Keyboard, 3=pen&paper), 3 picture lists (I, II, III), every list consists of 3 pictures (a, b, c) 

In the following I will describe a possible sequence for one subject in the experiment:

experiment starts: experiment randomly selects block 2 -> instructions to use the Keyboard for the following 3 stories -> randomly selects picture list III -> randomly shows picture IIIc for 10 seconds -> <openended> for 4 minutes -> now randomly shows picture IIIa for 10 seconds ->  <openended> for 4 minutes -> now randomly shows picture IIIb -> <openended> for 4 minutes   --------> now random selection of block 1 -> instruchtion to use the microphone for the following 3 stories -> randomly selects picture list I -> randomly shows pic Ia for 10 seconds -> voice reording with a prompt to go on after 4 min -> randomly pic Ic for 10 sec -> voice recording with a prompt to go on after 4 min -> randomly pic Ib for 10 sec -> voce recording with a prompt to go on after 4 min  --------------> now selection of block 3 -> instruction to use pen&paper -> selection of picture list II -> randomly pic IIb for 10 sec -> black Screen with prompt to use pen&paper after 4 min prompt to go on -> randomly pic IIa for 10 sec .... and so on

With the current structure of the PSE I don't know how to program blocks that randomly select a picture list (with noreplace) and then randomly show the three pictures of the list with the same Input device.

Dominik

You can implement that kind of selection using nested <list> elements. In a nutshell, suppose you have 9 items, i.e. three sets of three items belonging together:

<text example>
/ items = exampleitems
/ select = values.itemnum
</text>

<item exampleitems>
/ 1 = "1a.jpg"
/ 2 = "1b.jpg"
/ 3 = "1c.jpg"

/ 4 = "2a.jpg"
/ 5 = "2b.jpg"
/ 6 = "2c.jpg"

/ 7 = "3a.jpg"
/ 8 = "3b.jpg"
/ 9 = "3c.jpg"
</item>

List 1 is comprised of items 1 to 3, list 2 is comprised of items 4 to 6, and list 3 is comprised of items 7 to 9:

<list 1>
/ items = (1,2,3)
</list>

<list 2>
/ items = (4,5,6)
</list>

<list 3>
/ items = (7,8,9)
</list>

Then you can put those in a list of lists, and randomly select  a list number to use for a given <block> /onblockbegin:

<list mainlist>
/ items = (list.1.nextvalue, list.2.nextvalue, list.3.nextvalue)
/ selectionmode = values.listnum
</list>

<list listnumber>
/ items = (1,2,3)
</list>

<trial mytrial>
/ ontrialbegin = [
values.itemnum = list.mainlist.nextvalue;
]
/ stimulusframes = [1=example]
/ validresponse = (57)
</trial>


<block X>
/ preinstructions = (intro)
/ onblockbegin = [
values.listnum = list.listnumber.nextvalue;
]
/ trials = [1-3 = mytrial]
</block>

<block Y>
/ preinstructions = (intro)
/ onblockbegin = [
values.listnum = list.listnumber.nextvalue;
]
/ trials = [1-3 = mytrial]
</block>

<block Z>
/ preinstructions = (intro)
/ onblockbegin = [
values.listnum = list.listnumber.nextvalue;
]
/ trials = [1-3 = mytrial]
</block>

<expt>
/ blocks = [1-3 = noreplace(x,y,z)]
</expt>

<page intro>
^This is block <%script.currentblock%>.
^We'll be using items from list #<%values.listnum%> in this block.
</page>

<values>
/ listnum = 1
/ itemnum = 1
</values>

By Motto - 3/5/2019

Thank you again for your fast answer Dave.
It looks beautiful. I try it and I will tell you how it worked.


By Motto - 3/19/2019

It worked!
Thank you very much for your help.