Lexical Decision Task & Randomization


Author
Message
npalt123
npalt123
Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)
Group: Forum Members
Posts: 6, Visits: 25
Hello,

I have a question regarding the randomization for a primed lexical decision task.

For the task I have:
- 5 different types of primes (selected from large banks of images)
- 4 different types of words/nonwords for the lexical decision task (Word Group 1, Word Group 2, Word Group 3, Word Group 4)
& each Word Group contains 10 different words (40 words total)

Ideally, in this experiment there would be 200 trials with each trial being 1 of the 5 prime types and then a unique word.  

Currently, my code is able to correctly randomize and present the prime types (40 of each type) and the different categories of words (50 from Group 1, Group, 2, etc.)  yet when I look at the precise words/nonwords being presented they vary in amount across the different primes.  

For instance, Prime 1 has the nonword "angrop" presented 2 times, Prime 2 has it presented 0 time, Prime 3 -  0 times, Prime 4 - 1 times and Prime 5 - 0 times.  In total that means "angrop" was presented 5 times however it is uneven across the different Prime types. 

Is there a way to get "angrop" to be presented just once per Prime?  Ideally it would be Prime 1 - 1 "angrop", Prime 2 - 1 "angrop", Prime 3 - 1 "angrop", etc.

A shorted modified version of my code:

<item Prime1>
/1 = "stimuli\1"
/2 = "stimuli\2"
...
</item>
*repeated for Prime2-5

<item WordGroup1>
/1 = word1
/2 = word2
...
</item>
*repeated for WordGroup2-4

<text WG1>
/ items = WordGroup1
/ select = noreplace
</text>
*repeated for WordGroup2-4

<picture P1>
/ items = Prime1
/ select = noreplace
</picture> 
*repeated for Prime2-5

<trial nonword_P1>
/ stimulustimes = [0=ready; 200=P1; 700=WG1; 950=blank]
/ beginresponsetime = 700
</trial>

<trial wordG2_P1>
/ stimulustimes = [0=ready; 200=P1; 700=WG2; 950=blank]
/ beginresponsetime = 700
</trial> *repeated for each Prime (1-4) and Word Group(1-5), in total 20 types of trials for each combination

<block LDT>
/ trials = [1 = instructions; 2-201=noreplace(the 20 different types of trials...thus each is presented 10 times)

Thank you so much for your help.






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: 12K, Visits: 98K
Yes, you need to pair your primes and target -- i.e., encode the desired combinations using e.g. <list> elements -- and then sample from those combinations. You'll find pairing stimuli covered in the "How to present stimulus pairs topic" in the Inquisit documentation.

For the sake of example, suppose you have 2 primes, 4 words and 4 nonwords. You want each prime to precede each word and nonword exactly once (16 combinations):

<values>
/ primeitem = 1
/ worditem = 1
/ nonworditem = 1
</values>

<block myblock>
/ trials = [1-16 = noreplace(wordtrial, nonwordtrial)]
</block>

<trial wordtrial>
/ ontrialbegin = [values.primeitem=list.wordprimelist.nextvalue; values.worditem=list.wordlist.nextvalue; ]
/ stimulustimes = [0=prime; 200=word]
/ validresponse = (57)
/ timeout = 500
</trial>

<trial nonwordtrial>
/ ontrialbegin = [values.primeitem=list.nonwordprimelist.nextvalue; values.nonworditem=list.wordlist.nextvalue; ]
/ stimulustimes = [0=prime; 200=nonword]
/ validresponse = (57)
/ timeout = 500
</trial>

<text prime>
/ items = ("Prime 1", "Prime 2")
/ select = values.primeitem
</text>

<text word>
/ items = ("Word 1", "Word 2", "Word 3", "Word 4")
/ select = values.worditem
</text>

<text nonword>
/ items = ("Nonword 1", "Nonword 2", "Nonword 3", "Nonword 4")
/ select = values.nonworditem
</text>

*** combinations of prime and word ***

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

<list wordlist>
/ items = (1,2,3,4,1,2,3,4)
/ selectionmode = list.wordprimelist.currentindex
</list>

*** combinations of prime and nonword ***

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

<list nonwordlist>
/ items = (1,2,3,4,1,2,3,4)
/ selectionmode = list.nonwordprimelist.currentindex
</list>


npalt123
npalt123
Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)
Group: Forum Members
Posts: 6, Visits: 25
Thank you so much for your help!
npalt123
npalt123
Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)
Group: Forum Members
Posts: 6, Visits: 25
Hi Dave,

I am trying to scale the example you gave up to experiment I am working on.  I am running into a couple of problems.

I think the main one is that my stimuli for the prime come from a bank of images that all fall into discrete categories, however we would like to randomize the exact image being presented.  I have attached a scaled down code and essentially the banks consist of 300 images.  When I run the code I think the number selection formatting means it selects the same image and presents it 10 times.

Is the fix to list out all 1-100 numbers in the list so that a unique image is selected each time?

I also am still not getting the precise randomization (1 unique word to 1 unique image per condition) to work out fully.

Thank you for your help with this.

Best,
Nicholas
Attachments
test.iqx (818 views, 102.00 KB)
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: 12K, Visits: 98K
I can see that you have 10 category words (serving as targets), 10 neutral word targets, 10 nonword targets, and 10 nonword2 targets. It is unclear to me how you want those paired or otherwise combined with the various prime-categories (consisting of 300 items per prime category) in your script.

> When I run the code I think the number selection formatting means it selects the same image and presents it 10 times.

Yes, because that's exactly what you specified.

<list categoryprimelist>
/items =   (1,1,1,1,1,1,1,1,1,1,
            2,2,2,2,2,2,2,2,2,2,
            3,3,3,3,3,3,3,3,3,3,
            4,4,4,4,4,4,4,4,4,4,
            5,5,5,5,5,5,5,5,5,5,
            6,6,6,6,6,6,6,6,6,6,
            7,7,7,7,7,7,7,7,7,7,
            8,8,8,8,8,8,8,8,8,8,
            9,9,9,9,9,9,9,9,9,9,
            10,10,10,10,10,10,10,10,10,10)
</list>

<list categorylist>
/items = (1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10,
          1,2,3,4,5,6,7,8,9,10)
/selectionmode = list.categoryprimelist.currentindex
</list>

You're only ever selecting items 1-10 for the "category" primes. You've paired those 10 items to the 10 category *targets*.

It seems to me that you actually want something like this, taking just two of your <trial>s as example:

<trial ldtcategory_0men>
/ ontrialbegin = [values.primeitem=list.0MFaceItemnumbers.nextindex; values.categoryitem=list.category_0M.nextindex;]
/ stimulustimes = [0=ready; 200=0MFace; 659=blank2; 700=category; 950=blank]
/ validresponse = ("E", "I")
/ correctresponse = ("I")
/beginresponsetime = 700
</trial>

with

<list 0MFaceItemnumbers>
/ poolsize = 300
</list>

<list category_0M>
/ poolsize = 10
</list>

and

<trial ldtcategory_3men>
/ ontrialbegin = [values.primeitem=list.3MFaceItemnumbers.nextindex; values.categoryitem=list.category_0M.nextindex;]
/ stimulustimes = [0=ready; 200=3MFace; 659=blank2; 700=category; 900=blank]
/ validresponse = ("E", "I")
/ correctresponse = ("I")
/beginresponsetime = 700
</trial>

<list 3MFaceItemnumbers>
/ poolsize = 300
</list>

<list category_0M>
/ poolsize = 10
</list>

and so forth.

In case I'm still misunderstanding your setup, it would be great if you could scale things down further to, say, only two or three categories with fewer items per category. Also, since I obviously don't have the images you'll be using, use only <text> elements in the example if possible (the type of stimulus you'll be using eventually -- <text>, <picture>, <video> and/or any combination thereof -- is immaterial to the randomization issue).

Thanks.
npalt123
npalt123
Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)Expert (1.2K reputation)
Group: Forum Members
Posts: 6, Visits: 25
Hi Dave,

That worked wonderfully.  Thank you so much for your help with this!

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search