randomised location on screen does not work properly


Author
Message
Robert Balas
Robert Balas
Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)
Group: Forum Members
Posts: 38, Visits: 85
Dear All,

I have a task that presents two visual stimuli at the same time one above the other. The specific stimulus location should be randomly assigned - at one trial, X should appear above Y, and on the other trial - the other way round.
Below I paste the part that should regulate this, but it doesn't. That means, that on most trials it works fine, but occasionally both X and Y appear in the same location. 

I cannot detect what I did wrong, Please help!

Robert

Now I did smth like this:

<item nonwords>
/1 = "KADIRGA"
/2 = "LOKANTA"
/3 = "NIJARON"
/4 = "FEVKANI"
</item>

<item positive_words>
/1 = "miłość"
/2 = "przyjaźń"
/3 = "uścisk"
/4 = "pokój"
/5 = "radość"
/6 = "uśmiech"
/7 = "kwiaty"
/8 = "muzyka"
/9 = "zabawa"
/10 = "sztuka"
/11= "dobro"
/12= "wakacje"
</item>

<item negative_words>
/1 = "zło"
/2 = "śmierć"
/3 = "choroba"
/4 = "rak"
/5 = "wróg"
/6 = "pistolet"
/7 = "wojna"
/8 = "wróg"
/9 = "przemoc"
/10 = "agresja"
/11 = "nieprzyjaciel"
/12 = "pogarda"
</item>

<text fixation>
/ items = ("X")
/ fontstyle = ("Arial", 5.04%, true, false, false, false, 5, 0)
/ txcolor = (220, 20, 60)
</text>

<text nonwords_pos>
/items = nonwords_pos
/select = noreplace
/position = (50, counter.position.selectedvalue)
/txcolor = (255, 0, 0)
</text>

<text nonwords_neg>
/items = nonwords_neg
/select = noreplace
/position = (50, counter.position.selectedvalue)
/txcolor = (255, 0, 0)
</text>

<text positive_words>
/items = positive_words
/select = noreplace
/position = (50, 30)
/txcolor = (255, 0, 0)
</text>

<text negative_words>
/items = negative_words
/select = noreplace
/position = (50, 30)
/txcolor = (255, 0, 0)
</text>

<counter position>
/ select = replace
/ selectionrate = always
/ items = (70,30)
</counter>

ounter position_affect>
/ select = replacenot(counter.position)
/ selectionrate = always
/ items = (70,30)
</counter>

<item nonwords_pos>
/1 = "KADIRGA"
/2 = "LOKANTA"
</item>

<item nonwords_neg>
/1 = "NIJARON"
/2 = "FEVKANI"
</item>

<trial non_pos>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.positive_words.vposition = 30;if(counter.position.selectedvalue == 30) text.positive_words.vposition = 70 ]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_pos ; 200 = positive_words]
/ validresponse = ("j", "f")
/ correctresponse = ("j")
/ errormessage = (errortext,1500)
</trial>

<trial non_posneg>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.negative_words.vposition = 30; if(counter.position.selectedvalue == 30) text.negative_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_pos ; 200 = negative_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<trial non_neg>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.negative_words.vposition = 30; if(counter.position.selectedvalue == 30) text.negative_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_neg ; 200 = negative_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<trial non_negpos>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.positive_words.vposition = 30; if(counter.position.selectedvalue == 30) text.positive_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_neg ; 200 = positive_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<block condi>
/ preinstructions = (instrukcja_klasyfikacja)
/ trials = [1-40 = noreplace(non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_posneg, non_posneg,
non_neg, non_neg, non_negpos, non_negpos,non_negpos,non_negpos,non_negpos,non_negpos,non_negpos)]
</block>

<text errortext>
/ items = ("XXX")
/ fontstyle = ("Arial Unicode MS", 2.00%, false, false, false, false, 5, 0)
/ color = crimson
</text>


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: 104K
RBalas - Wednesday, October 11, 2017
Dear All,

I have a task that presents two visual stimuli at the same time one above the other. The specific stimulus location should be randomly assigned - at one trial, X should appear above Y, and on the other trial - the other way round.
Below I paste the part that should regulate this, but it doesn't. That means, that on most trials it works fine, but occasionally both X and Y appear in the same location. 

I cannot detect what I did wrong, Please help!

Robert

Now I did smth like this:

<item nonwords>
/1 = "KADIRGA"
/2 = "LOKANTA"
/3 = "NIJARON"
/4 = "FEVKANI"
</item>

<item positive_words>
/1 = "miłość"
/2 = "przyjaźń"
/3 = "uścisk"
/4 = "pokój"
/5 = "radość"
/6 = "uśmiech"
/7 = "kwiaty"
/8 = "muzyka"
/9 = "zabawa"
/10 = "sztuka"
/11= "dobro"
/12= "wakacje"
</item>

<item negative_words>
/1 = "zło"
/2 = "śmierć"
/3 = "choroba"
/4 = "rak"
/5 = "wróg"
/6 = "pistolet"
/7 = "wojna"
/8 = "wróg"
/9 = "przemoc"
/10 = "agresja"
/11 = "nieprzyjaciel"
/12 = "pogarda"
</item>

<text fixation>
/ items = ("X")
/ fontstyle = ("Arial", 5.04%, true, false, false, false, 5, 0)
/ txcolor = (220, 20, 60)
</text>

<text nonwords_pos>
/items = nonwords_pos
/select = noreplace
/position = (50, counter.position.selectedvalue)
/txcolor = (255, 0, 0)
</text>

<text nonwords_neg>
/items = nonwords_neg
/select = noreplace
/position = (50, counter.position.selectedvalue)
/txcolor = (255, 0, 0)
</text>

<text positive_words>
/items = positive_words
/select = noreplace
/position = (50, 30)
/txcolor = (255, 0, 0)
</text>

<text negative_words>
/items = negative_words
/select = noreplace
/position = (50, 30)
/txcolor = (255, 0, 0)
</text>

<counter position>
/ select = replace
/ selectionrate = always
/ items = (70,30)
</counter>

ounter position_affect>
/ select = replacenot(counter.position)
/ selectionrate = always
/ items = (70,30)
</counter>

<item nonwords_pos>
/1 = "KADIRGA"
/2 = "LOKANTA"
</item>

<item nonwords_neg>
/1 = "NIJARON"
/2 = "FEVKANI"
</item>

<trial non_pos>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.positive_words.vposition = 30;if(counter.position.selectedvalue == 30) text.positive_words.vposition = 70 ]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_pos ; 200 = positive_words]
/ validresponse = ("j", "f")
/ correctresponse = ("j")
/ errormessage = (errortext,1500)
</trial>

<trial non_posneg>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.negative_words.vposition = 30; if(counter.position.selectedvalue == 30) text.negative_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_pos ; 200 = negative_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<trial non_neg>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.negative_words.vposition = 30; if(counter.position.selectedvalue == 30) text.negative_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_neg ; 200 = negative_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<trial non_negpos>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.positive_words.vposition = 30; if(counter.position.selectedvalue == 30) text.positive_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_neg ; 200 = positive_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<block condi>
/ preinstructions = (instrukcja_klasyfikacja)
/ trials = [1-40 = noreplace(non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_posneg, non_posneg,
non_neg, non_neg, non_negpos, non_negpos,non_negpos,non_negpos,non_negpos,non_negpos,non_negpos)]
</block>

<text errortext>
/ items = ("XXX")
/ fontstyle = ("Arial Unicode MS", 2.00%, false, false, false, false, 5, 0)
/ color = crimson
</text>


You are oversampling your position <counter>. The selectedvalue property performs a selection from the counter; the counters are set to selectionrate=always. Thus, a selection occurs every time you use it. In other words, you are selecting as many as three times from a given <counter>, per your references to selectedvalue in your /ontrialbegin logic and _additionally_ per the references in the stimuli's /position attributes. It actually does not make sense to use /selectionrate=always in your case. As far as I can see, you want one sample from the counter per trial. Thus you can simply use /selectionrate=trial and your problem should go away.

<counter position>
/ select = replace
/ selectionrate = trial
/ items = (70,30)
</counter>

Robert Balas
Robert Balas
Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)Guru (5.5K reputation)
Group: Forum Members
Posts: 38, Visits: 85
Dave - Wednesday, October 11, 2017
RBalas - Wednesday, October 11, 2017
Dear All,

I have a task that presents two visual stimuli at the same time one above the other. The specific stimulus location should be randomly assigned - at one trial, X should appear above Y, and on the other trial - the other way round.
Below I paste the part that should regulate this, but it doesn't. That means, that on most trials it works fine, but occasionally both X and Y appear in the same location. 

I cannot detect what I did wrong, Please help!

Robert

Now I did smth like this:

<item nonwords>
/1 = "KADIRGA"
/2 = "LOKANTA"
/3 = "NIJARON"
/4 = "FEVKANI"
</item>

<item positive_words>
/1 = "miłość"
/2 = "przyjaźń"
/3 = "uścisk"
/4 = "pokój"
/5 = "radość"
/6 = "uśmiech"
/7 = "kwiaty"
/8 = "muzyka"
/9 = "zabawa"
/10 = "sztuka"
/11= "dobro"
/12= "wakacje"
</item>

<item negative_words>
/1 = "zło"
/2 = "śmierć"
/3 = "choroba"
/4 = "rak"
/5 = "wróg"
/6 = "pistolet"
/7 = "wojna"
/8 = "wróg"
/9 = "przemoc"
/10 = "agresja"
/11 = "nieprzyjaciel"
/12 = "pogarda"
</item>

<text fixation>
/ items = ("X")
/ fontstyle = ("Arial", 5.04%, true, false, false, false, 5, 0)
/ txcolor = (220, 20, 60)
</text>

<text nonwords_pos>
/items = nonwords_pos
/select = noreplace
/position = (50, counter.position.selectedvalue)
/txcolor = (255, 0, 0)
</text>

<text nonwords_neg>
/items = nonwords_neg
/select = noreplace
/position = (50, counter.position.selectedvalue)
/txcolor = (255, 0, 0)
</text>

<text positive_words>
/items = positive_words
/select = noreplace
/position = (50, 30)
/txcolor = (255, 0, 0)
</text>

<text negative_words>
/items = negative_words
/select = noreplace
/position = (50, 30)
/txcolor = (255, 0, 0)
</text>

<counter position>
/ select = replace
/ selectionrate = always
/ items = (70,30)
</counter>

ounter position_affect>
/ select = replacenot(counter.position)
/ selectionrate = always
/ items = (70,30)
</counter>

<item nonwords_pos>
/1 = "KADIRGA"
/2 = "LOKANTA"
</item>

<item nonwords_neg>
/1 = "NIJARON"
/2 = "FEVKANI"
</item>

<trial non_pos>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.positive_words.vposition = 30;if(counter.position.selectedvalue == 30) text.positive_words.vposition = 70 ]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_pos ; 200 = positive_words]
/ validresponse = ("j", "f")
/ correctresponse = ("j")
/ errormessage = (errortext,1500)
</trial>

<trial non_posneg>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.negative_words.vposition = 30; if(counter.position.selectedvalue == 30) text.negative_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_pos ; 200 = negative_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<trial non_neg>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.negative_words.vposition = 30; if(counter.position.selectedvalue == 30) text.negative_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_neg ; 200 = negative_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<trial non_negpos>
/ontrialbegin = [if(counter.position.selectedvalue == 70) text.positive_words.vposition = 30; if(counter.position.selectedvalue == 30) text.positive_words.vposition = 70 ]
/ pretrialpause = 1000]
/ pretrialpause = 1000
/ stimulustimes = [1 = fixation; 50 = nonwords_neg ; 200 = positive_words]
/ validresponse = ("j", "f")
/ correctresponse = ("f")
/ errormessage = (errortext,1500)
</trial>

<block condi>
/ preinstructions = (instrukcja_klasyfikacja)
/ trials = [1-40 = noreplace(non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_pos, non_posneg, non_posneg,
non_neg, non_neg, non_negpos, non_negpos,non_negpos,non_negpos,non_negpos,non_negpos,non_negpos)]
</block>

<text errortext>
/ items = ("XXX")
/ fontstyle = ("Arial Unicode MS", 2.00%, false, false, false, false, 5, 0)
/ color = crimson
</text>


You are oversampling your position <counter>. The selectedvalue property performs a selection from the counter; the counters are set to selectionrate=always. Thus, a selection occurs every time you use it. In other words, you are selecting as many as three times from a given <counter>, per your references to selectedvalue in your /ontrialbegin logic and _additionally_ per the references in the stimuli's /position attributes. It actually does not make sense to use /selectionrate=always in your case. As far as I can see, you want one sample from the counter per trial. Thus you can simply use /selectionrate=trial and your problem should go away.

<counter position>
/ select = replace
/ selectionrate = trial
/ items = (70,30)
</counter>

Dave,

Once again - you saved my... :)

thanks!

Robert
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search