fully randomized conditional presentation of three stimuli


Author
Message
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 107K
Re #1: That cannot happen *if* you run <block relation> only once. It can happen if you run it repeatedly in your full script. You sample 6 random items from <list allitems> /onblockbegin. After that, 4 unsampled items are left in that list. If you run <block relations> (or another block sampling from the list) again -- again taking 6 samples -- the list has to reset after 4 items, returning all 10 items back into the pool, and you may end up with the same item(s) sampled again. The solution is to make use of a list reset() before you do that, i.e.

/ onblockbegin = [list.allitems.reset(); ]

Similarly, you'll want to call the clearitems() function on the source and target lists before you assign any new items to them.

/ onblockbegin = [list.sourceitemsdislike.clearitems(); ...]


Re. #2: Yes. You need to link your source and target lists and set up the desired combinations via /onblockbegin.
<block relation>
/ onblockbegin = [list.sourceitemslike.appenditem(list.allitems.nextindex); list.sourceitemslike.appenditem(list.allitems.currentindex);
    list.sourceitemslike.appenditem(list.allitems.nextindex); list.sourceitemslike.appenditem(list.allitems.currentindex);
  
    list.sourceitemsdislike.appenditem(list.allitems.nextindex); list.sourceitemsdislike.appenditem(list.allitems.currentindex);
    list.sourceitemsdislike.appenditem(list.allitems.nextindex); list.sourceitemsdislike.appenditem(list.allitems.currentindex);

    list.targetitemslike.appenditem(list.allitems.nextindex); list.targetitemslike.appenditem(list.allitems.nextindex);
    list.targetitemslike.appenditem(list.targetitemslike.item(1)); list.targetitemslike.appenditem(list.targetitemslike.item(2));

    list.targetitemsdislike.appenditem(list.targetitemslike.item(1)); list.targetitemsdislike.appenditem(list.targetitemslike.item(2));
    list.targetitemsdislike.appenditem(list.targetitemslike.item(1)); list.targetitemsdislike.appenditem(list.targetitemslike.item(2));
]
/ trials = [1-8 = noreplace(relationlike, relationdislike)]
</block>

<trial relationlike>
/ stimulusframes = [1=sourcelike; 2=targetlike; 3=like]
/timeout = 5000
/pretrialpause= 1000
</trial>

<trial relationdislike>
/ stimulusframes = [1=sourcedislike; 2=targetdislike; 3=dislike]
/timeout = 5000
/pretrialpause= 1000
</trial>

<text like>
/items = ("mag")
/position= (50,50)
/fontstyle= ("ARIAL", 40, true, false, false, false, 5, 0)
/ select = replace
</text>

<text dislike>
/items = ("mag nicht")
/position= (50,50)
/fontstyle= ("ARIAL", 40, true, false, false, false, 5, 0)
/ select = replace
</text>

<text sourcelike>
/items = kollegen
/ select = list.sourceitemslike.nextvalue
/ position= (25,50)
/ size = (30%, 30%)
</text>

<text sourcedislike>
/items = kollegen
/ select = list.sourceitemsdislike.nextvalue
/ position= (25,50)
/ size = (30%, 30%)
</text>

<text targetlike>
/items = kollegen
/ select = list.targetitemslike.nextvalue
/ position= (75,50)
/ size = (30%, 30%)
</text>

<text targetdislike>
/items = kollegen
/ select = list.targetitemsdislike.nextvalue
/ position= (75,50)
/ size = (30%, 30%)
</text>

<item kollegen>
/1 = "2.jpg"
/2 = "3.jpg"
/3 = "4.jpg"
/4 = "5.bmp"
/5 = "6.jpg"
/6 = "7.jpg"
/7 = "8.jpg"
/8 = "9.bmp"
/9 = "10.jpg"
/10 = "11.bmp"
</item>

<list allitems>
/ poolsize = 10
/ selectionrate = always
</list>

<list sourceitemslike>
</list>

<list targetitemslike>
/ selectionmode = list.sourceitemslike.currentindex
</list>


<list sourceitemsdislike>
</list>

<list targetitemsdislike>
/ selectionmode = list.sourceitemsdislike.currentindex
</list>


EDITED TO FIX MISTAKE IN ABOVE SCRIPT.

Edited 10 Years Ago by Dave
Christina F
Christina F
Partner Member (849 reputation)Partner Member (849 reputation)Partner Member (849 reputation)Partner Member (849 reputation)Partner Member (849 reputation)Partner Member (849 reputation)Partner Member (849 reputation)Partner Member (849 reputation)Partner Member (849 reputation)
Group: Forum Members
Posts: 5, Visits: 23
Concerning the previous post, there are some questions left.
The relevant part of our script is attached.

1. Most of the time, sources
and targets are presented correctly.
But in some tri
als the target-picture appears as source and target at the same time.
C
an you detect the error?

2. In the current version, sources and targets are randomly combined.
In our experiment
each source should be presented with each target once:
Source 1 + Target 1
Source 1 + Target 2
Source 2 + Target 1
Source 2 + Target 2
Source 3 + Target 1
Source 3 + Target 2
Source 4 + Target 1
Source 4 + Target 2
Is there
any way to control this combination?

Th
anks,
Christin
a

<block relation>
/ onblockbegin = [list.sourceitemslike.appenditem(list.allitems.nextindex); list.sourceitemslike.appenditem(list.allitems.nextindex);
    list.sourceitemsdislike.appenditem(list.allitems.nextindex); list.sourceitemsdislike.appenditem(list.allitems.nextindex);
    list.targetitems.appenditem(list.allitems.nextindex); list.targetitems.appenditem(list.allitems.nextindex);]
/ trials = [1-8 = noreplace(relationlike, relationdislike)]
</block>

<trial relationlike>
/ stimulusframes = [1=sourcelike; 2=target; 3=like]
/timeout = 5000
/pretrialpause= 1000
</trial>

<trial relationdislike>
/ stimulusframes = [1=sourcedislike; 2=target; 3=dislike]
/timeout = 5000
/pretrialpause= 1000
</trial>

<text like>
/items = ("mag")
/position= (50,50)
/fontstyle= ("ARIAL", 40, true, false, false, false, 5, 0)
/ select = replace
</text>

<text dislike>
/items = ("mag nicht")
/position= (50,50)
/fontstyle= ("ARIAL", 40, true, false, false, false, 5, 0)
/ select = replace
</text>

<picture sourcelike>
/items = kollegen
/ select = list.sourceitemslike.nextvalue
/ position= (25,50)
/ size = (30%, 30%)
</picture>

<picture sourcedislike>
/items = kollegen
/ select = list.sourceitemsdislike.nextvalue
/ position= (25,50)
/ size = (30%, 30%)
</picture>

<picture target>
/items = kollegen
/ select = list.targetitems.nextvalue
/ position= (75,50)
/ size = (30%, 30%)
</picture>

<item kollegen>
/1 = "2.jpg"
/2 = "3.jpg"
/3 = "4.jpg"
/4 = "5.bmp"
/5 = "6.jpg"
/6 = "7.jpg"
/7 = "8.jpg"
/8 = "9.bmp"
/9 = "10.jpg"
/10 = "11.bmp"
</item>

<list allitems>
/ poolsize = 10
/ selectionrate = always
</list>

<list sourceitemslike>
</list>

<list sourceitemsdislike>
</list>

<list targetitems>
</list>

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 107K
Yes, that's perfectly possible. You can dynamically fill e.g. <list> elements at the beginning of the procedure. Suppose you have 6 items A-F. You want to randomly assign 4 of them as "source", 2 as "target".

<block myblock>
/ onblockbegin = [list.sourceitems.appenditem(list.allitems.nextindex); list.sourceitems.appenditem(list.allitems.nextindex);
    list.sourceitems.appenditem(list.allitems.nextindex); list.sourceitems.appenditem(list.allitems.nextindex);
    list.targetitems.appenditem(list.allitems.nextindex); list.targetitems.appenditem(list.allitems.nextindex);]
/ trials = [1-4=showsources; 5-6=showtargets]
</block>

<trial showsources>
/ stimulusframes = [1=sourcetxt]
/ validresponse = (57)
</trial>

<trial showtargets>
/ stimulusframes = [1=targettxt]
/ validresponse = (57)
</trial>

<text sourcetxt>
/items = myitems
/ select = list.sourceitems.nextvalue
/ txcolor = blue
</text>

<text targettxt>
/items = myitems
/ select = list.targetitems.nextvalue
/ txcolor = red
</text>

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

<list allitems>
/ poolsize = 6
/ selectionrate = always
</list>

<list sourceitems>
</list>

<list targetitems>
</list>

Assigning the like / dislike dimension etc. works analogously.

René Kopietz
René Kopietz
Partner Member (915 reputation)Partner Member (915 reputation)Partner Member (915 reputation)Partner Member (915 reputation)Partner Member (915 reputation)Partner Member (915 reputation)Partner Member (915 reputation)Partner Member (915 reputation)Partner Member (915 reputation)
Group: Forum Members
Posts: 5, Visits: 167
Hello,

we're currently programming a study using based on Gawronski & Walther (2008) TAR effect, in which there are 60 trials presenting three stimuli each.
Each trial involves a picture of a person (LEFT) as source of an evaluation (likes/dislikes; MIDDLE) about another person (RIGHT). 
In the original paradigm 12 pictures are chosen as source (picture on the left side) and 5 as targets (pictures on the right side).
Each source is then presented with five different targets, always liking OR disliking them. Ideally, we would like to randomize who is source and who is target for each participant, so that at the beginning of each session two temporary lists (one with the 12 targets, one with the 5 sources) is generated. Additionally, Inquest would need to chose whether sources like or dislike their 5 targets and REMEMBER that, so that each source consistently dis/likes their target.

Is that possible? We couldn't find any obvious way of programming this. If not, what would be the best possible compromise?


Thanks,
Rene


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search