Select items for a second part of the experiment based upon the ratings in the first part of the...


Author
Message
dimitri_VR
dimitri_VR
Respected Member (481 reputation)Respected Member (481 reputation)Respected Member (481 reputation)Respected Member (481 reputation)Respected Member (481 reputation)Respected Member (481 reputation)Respected Member (481 reputation)Respected Member (481 reputation)Respected Member (481 reputation)
Group: Forum Members
Posts: 6, Visits: 18
Dave - Tuesday, June 27, 2017
dimitri_VR - Tuesday, June 27, 2017
Dave - Tuesday, June 27, 2017
dimitri_VR - Tuesday, June 27, 2017
Dave - Monday, June 26, 2017
Dave - Monday, June 26, 2017
dimitri_VR - Monday, June 26, 2017
Dave - Monday, June 26, 2017
dimitri_VR - Monday, June 26, 2017
I am currently programming a novel task and wondered whether Inquisit allows to include only the pictures in a experiment that have been given the highest rating in an earlier part of the experiment?
To be clear:
in part 1 of the experiment people rate 50 pictures upon negative affect using a VAS scale ranging from 0 -100.
In the second part of the experiment I would like to use the 5 pictures that have gotten the highest score on negative affect.
Can this be done in inquisit?
thanks in advance

Yes, it can be done, see e.g. https://www.millisecond.com/forums/Topic2644.aspx and https://www.millisecond.com/forums/FindPost20743.aspx for an example of one possible approach.

Dear Dave,

thanks for your quick reply. I had a look at these solution. I think I more or less understand the idea.
However, all of these are made for likert scales. Would you have an example using sliders (ranging from 0 -100)?

kind regards

It would work exactly the same. You put the <slider> on a <surveypage>. You run that page via a <block>'s /trials. You sort responses into the respective bins based on the <slider>'s response property instead of a <likert>'s.

Here's the example from https://www.millisecond.com/forums/Topic20721.aspx#bm20743 adapted to <slider>s instead of <likert> elements:

<block myblock>
/ trials = [1-12=noreplace(female_page, male_page);
    13=ratingresults;
    14-15=select_females_high;
    16-17=select_females_low;
    18-19=select_males_high;
    20-21=select_males_low;]
/ postinstructions = (selectionresults)
</block>

<surveypage female_page>
/ ontrialend = [if(slider.female_slider.response=="1")item.female_r1.item=text.female.currentitem]
/ ontrialend = [if(slider.female_slider.response=="2")item.female_r2.item=text.female.currentitem]
/ ontrialend = [if(slider.female_slider.response=="3")item.female_r3.item=text.female.currentitem]
/ ontrialend = [if(slider.female_slider.response=="4")item.female_r4.item=text.female.currentitem]
/ ontrialend = [if(slider.female_slider.response=="5")item.female_r5.item=text.female.currentitem]
/ stimulusframes = [1=female,debug]
/ questions = [1=female_slider]
</surveypage>

<slider female_slider>
/ range = (1,5)
/ slidersize = (50%, 10%)
/ position = (25%, 80%)
</slider>


<text female>
/ items = femaleitems
/ position = (50%, 60%)
</text>

<item femaleitems>
/ 1 = "Female A"
/ 2 = "Female B"
/ 3 = "Female C"
/ 4 = "Female D"
/ 5 = "Female E"
/ 6 = "Female F"
</item>

<surveypage male_page>
/ ontrialend = [if(slider.male_slider.response=="1")item.male_r1.item=text.male.currentitem]
/ ontrialend = [if(slider.male_slider.response=="2")item.male_r2.item=text.male.currentitem]
/ ontrialend = [if(slider.male_slider.response=="3")item.male_r3.item=text.male.currentitem]
/ ontrialend = [if(slider.male_slider.response=="4")item.male_r4.item=text.male.currentitem]
/ ontrialend = [if(slider.male_slider.response=="5")item.male_r5.item=text.male.currentitem]
/ stimulusframes = [1=male,debug]
/ questions = [1=male_slider]
</surveypage>

<slider male_slider>
/ range = (1,5)
/ slidersize = (50%, 10%)
/ position = (25%, 80%)
</slider>

<text male>
/ items = maleitems
/ position = (50%, 60%)
</text>

<item maleitems>
/ 1 = "Male A"
/ 2 = "Male B"
/ 3 = "Male C"
/ 4 = "Male D"
/ 5 = "Male E"
/ 6 = "Male F"
</item>

<text debug>
/ items = ("Female rating results:
R1=<%item.female_r1.itemcount%>|R2=<%item.female_r2.itemcount%>|R3=<%item.female_r3.itemcount%>|R4=<%item.female_r4.itemcount%>|R5=<%item.female_r5.itemcount%>
Male rating results:
R1=<%item.male_r1.itemcount%>|R2=<%item.male_r2.itemcount%>|R3=<%item.male_r3.itemcount%>|R4=<%item.male_r4.itemcount%>|R5=<%item.male_r5.itemcount%>
")
/ size = (90%, 30%)
/ position = (50%, 30%)
/ erase = false
</text>

<item female_r1>
</item>

<item female_r2>
</item>

<item female_r3>
</item>

<item female_r4>
</item>

<item female_r5>
</item>

<item male_r1>
</item>

<item male_r2>
</item>

<item male_r3>
</item>

<item male_r4>
</item>

<item male_r5>
</item>

<trial ratingresults>
/ stimulusframes = [1=debug]
/ validresponse = (57)
/ timeout = 5000
</trial>

<trial select_females_high>
/ ontrialbegin = [if (item.female_r5.itemcount > 0) {item.high.appenditem(item.female_r5.item(1)); item.female_r5.removeitem(1);}
    else if (item.female_r4.itemcount > 0) {item.high.appenditem(item.female_r4.item(1)); item.female_r4.removeitem(1);}
    else if (item.female_r3.itemcount > 0) {item.high.appenditem(item.female_r3.item(1)); item.female_r3.removeitem(1);}
    else if (item.female_r2.itemcount > 0) {item.high.appenditem(item.female_r2.item(1)); item.female_r2.removeitem(1);}
    else if (item.female_r1.itemcount > 0) {item.high.appenditem(item.female_r1.item(1)); item.female_r1.removeitem(1);}; ]
/ trialduration = 0
</trial>

<trial select_females_low>
/ ontrialbegin = [if (item.female_r1.itemcount > 0) {item.low.appenditem(item.female_r1.item(1)); item.female_r1.removeitem(1);}
    else if (item.female_r2.itemcount > 0) {item.low.appenditem(item.female_r2.item(1)); item.female_r2.removeitem(1);}
    else if (item.female_r3.itemcount > 0) {item.low.appenditem(item.female_r3.item(1)); item.female_r3.removeitem(1);}
    else if (item.female_r4.itemcount > 0) {item.low.appenditem(item.female_r4.item(1)); item.female_r4.removeitem(1);}
    else if (item.female_r5.itemcount > 0) {item.low.appenditem(item.female_r5.item(1)); item.female_r5.removeitem(1);}; ]
/ trialduration = 0
</trial>

<trial select_males_high>
/ ontrialbegin = [if (item.male_r5.itemcount > 0) {item.high.appenditem(item.male_r5.item(1)); item.male_r5.removeitem(1);}
    else if (item.male_r4.itemcount > 0) {item.high.appenditem(item.male_r4.item(1)); item.male_r4.removeitem(1);}
    else if (item.male_r3.itemcount > 0) {item.high.appenditem(item.male_r3.item(1)); item.male_r3.removeitem(1);}
    else if (item.male_r2.itemcount > 0) {item.high.appenditem(item.male_r2.item(1)); item.male_r2.removeitem(1);}
    else if (item.male_r1.itemcount > 0) {item.high.appenditem(item.male_r1.item(1)); item.male_r1.removeitem(1);}; ]
/ trialduration = 0
</trial>

<trial select_males_low>
/ ontrialbegin = [if (item.male_r1.itemcount > 0) {item.low.appenditem(item.male_r1.item(1)); item.male_r1.removeitem(1);}
    else if (item.male_r2.itemcount > 0) {item.low.appenditem(item.male_r2.item(1)); item.male_r2.removeitem(1);}
    else if (item.male_r3.itemcount > 0) {item.low.appenditem(item.male_r3.item(1)); item.male_r3.removeitem(1);}
    else if (item.male_r4.itemcount > 0) {item.low.appenditem(item.male_r4.item(1)); item.male_r4.removeitem(1);}
    else if (item.male_r5.itemcount > 0) {item.low.appenditem(item.male_r5.item(1)); item.male_r5.removeitem(1);}; ]
/ trialduration = 0
</trial>

<item high>
</item>

<item low>
</item>

<page selectionresults>
^'High' item set (<%item.high.itemcount%> items):
^<%item.high.item(1)%>, <%item.high.item(2)%>, <%item.high.item(3)%>, <%item.high.item(4)%>
^^
^'Low' item set (<%item.low.itemcount%> items):
^<%item.low.item(1)%>, <%item.low.item(2)%>, <%item.low.item(3)%>, <%item.low.item(4)%>
</page>

Hi,
this great!
I have completely adapted the script and it works fine to report which 4 receive the highest and which  4 receive the lowest values.
However how can I automatically get these in the second part of the experiment? Here I want participants to perform a reaction time task using these particular pictures.
I guess I can not just replace 

<item targetB.item>
/1 = "Bad 1"
/2 = "Bad 2"
/3 = "Bad 3"
/4 = "Bad 4"
</item>

<picture targetA.text>
/ items = targetA.item
/ fontstyle = ("Arial", 6%, true)
/ position = (50%, 50%)
/select = noreplacenorepeat
</picture>


thanks for all your help here






 to show the highest and lowest 

 

The slider script puts the selected items in two <item> elements: <item high> and <item low> in the example. You merely reference / use those <item> elements in your <picture> elements for the 2nd part.
Thanks for your help.
I tried to do it this way. however I get sometimes twice the same picture. I am doing something wrong, but don't seem to find it. 
I would like to see each of the high pictures shown once. 

<picture high_intense1>
/ items = item.high
/ position = (20, 30)
/ size = (200,200)
/ select = noreplace
</picture>

<picture high_intense2>
/ items = item.high
/ position = (40, 30)
/ size = (200,200)
/ select = noreplace
</picture>

<picture high_intense3>
/ items = item.high
/ position = (60, 30)
/ size = (200,200)
/ select = noreplace
</picture>

<picture high_intense4>
/ items = item.high
/ position = (80, 30)
/ size = (200,200)
/ select = noreplace
</picture>

<trial test>
/ stimulustimes = [0= high_intense1, high_intense2, high_intense3, high_intense4]
/ validresponse = (37)
</trial>

You need a <list> in addition if you want all items selected from the same selection pool across multiple <picture> elements:

<picture high_intense1>
/ items = item.high
/ position = (20, 30)
/ size = (200,200)
/ select = list.fouritems.nextindex
</picture>

<picture high_intense2>
/ items = item.high
/ position = (40, 30)
/ size = (200,200)
/ select = list.fouritems.nextindex
</picture>

<picture high_intense3>
/ items = item.high
/ position = (60, 30)
/ size = (200,200)
/ select = list.fouritems.nextindex
</picture>

<picture high_intense4>
/ items = item.high
/ position = (80, 30)
/ size = (200,200)
/ select = list.fouritems.nextindex
</picture>

<list fouritems>
/ poolsize = 4
/ selectionrate = always
</list>

<trial test>
/ stimulustimes = [0= high_intense1, high_intense2, high_intense3, high_intense4]
/ validresponse = (37)
</trial>


thanks!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search