Feedback for "too fast" or "too slow" response


Author
Message
Zinaidat
Zinaidat
Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)
Group: Forum Members
Posts: 13, Visits: 1

Hi! How can we let our participants know that they are responding too fast or too slow on each trial during an IAT test?


I appreciate any help, thanks!


- Zina


Zinaidat
Zinaidat
Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)Partner Member (518 reputation)
Group: Forum Members
Posts: 13, Visits: 1

To partly answer my own question, I found the following link helpful. I am going to try to adapt this information for what I am trying to do. - Z


http://www.millisecond.com/forums/Topic2118.aspx


Dave
Dave
Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)
Group: Administrators
Posts: 10K, Visits: 59K
I believe you're on the right track. However, I don't think that the '/ responsemessage' attribute will be enough in this case. I'd suggest adding two <trial> elements to your script -- one that presents the 'Too fast' message and the other one to display the 'Too slow' prompt. Then you'd define some '/ branch' commands in your main <trial> elements that call these trials if the condition is met:

<text tooslow_msg>
/ items = ("Too slow!")
[...]
</text>

<text toofast_msg>

/ items = ("Too fast!")

[...]

</text>

<trial tooslow>
/ stimulusframes = [tooslow_msg]
/ validresponse = (noresponse)
/ trialduration = 500
/ recorddata = false
[...]
</trial>

<trial toofast>

/ stimulusframes = [toofast_msg]

/ validresponse = (noresponse)

/ trialduration = 500
/ recorddata = false
[...]

</trial>

<trial maintrial>
[...]
/ branch = [if(trial.maintrial.latency<300)trial.toofast]
/ branch = [if(trial.maintrial.latency>2000)trial.tooslow]
</trial>


Alternatively you may want to consider using Inquisit's response window facilities (see documentation on the <response> element) to do something like this.

Best wishes from a fellow Inquisit user,
~Dave

pops
pops
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Forum Members
Posts: 43, Visits: 36

Hi Inquisit users,


I've been spending all day trying to get this trial branching thing to work but to no avail. I first tried it as in the example above i.e. have the branching within my trial called Pavquerytrial, but that wasn't working - it would just ignore the branching. Now I have tried to create a separate trial called feedbacktrial and within the block I am presenting alternating Pavquerytrials and feedbacktrials, but it is just showing a black screen inbetween the Pavquery trials. Any ideas why? Thanks!


<trial 1creditFB>
/ stimulustimes=[1=1point]
/ timeout = 1000
/ validresponse = (noresponse)
/ recorddata = false
</trial>

<trial 10creditsFB>
/ stimulustimes=[1=10points]
/ timeout = 1000
/ validresponse = (noresponse)
/ recorddata = false
</trial>

<trial toolateFB>
/ stimulustimes=[1=toolate]
/ validresponse = (noresponse)
/ recorddata = false
/ timeout=1000
</trial>

<trial Pavquerytrial>
/ stimulustimes = [1=Queryshape1, Queryshape2]
/ timeout=2000
/ validresponse=(72,80)
</trial>

<trial feedbacktrial>
/ branch = [ if (trial.Pavquerytrial.latency>2000) trial.toolateFB]
/ branch= [ if (trial.Pavquerytrial.response=="72") trial.1creditFB]
/ branch= [ if (trial.Pavquerytrial.response=="80") trial.10creditsFB]
/ timeout = 1000
</trial>


Dave
Dave
Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)
Group: Administrators
Posts: 10K, Visits: 59K

<trial Pavquerytrial>
/ stimulustimes = [1=Queryshape1, Queryshape2]
/ timeout=2000
/ validresponse=(72,80)
</trial>


See https://www.millisecond.com/forums/Topic1004.aspx#1004 for the correct scan codes for the keyboard's arrow keys (200 & 208). That's why your branches wouldn't work.


<trial feedbacktrial>
/ branch = [ if (trial.Pavquerytrial.latency>2000) trial.toolateFB]
/ branch= [ if (trial.Pavquerytrial.response=="72") trial.1creditFB]
/ branch= [ if (trial.Pavquerytrial.response=="80") trial.10creditsFB]
/ timeout = 1000
</trial>


First /branch doesn't make too much sense. With a 2000ms timeout on <trial Pavquerytrial>, the condition latency > 2000 will never evaluate to true, thus the "too late" feedback trial will never be run. Not sure about your actual intention, but how about checking for no response instead, i.e. if(trial.Pavquerytrial.response==0)... ? Of course, you need to adjust the scan codes in the other branches. Also, you can move the branches back to <trial Pavquerytrial>, there is no need for <trial feedbacktrial>.


Regards,


~Dave


pops
pops
Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)Expert (1.4K reputation)
Group: Forum Members
Posts: 43, Visits: 36

Thanks a million - it is now working beautifully. Of course now it seems completely obvious that my first branching was illogical! On to the next section of code!


France
France
Associate Member (136 reputation)Associate Member (136 reputation)Associate Member (136 reputation)Associate Member (136 reputation)Associate Member (136 reputation)Associate Member (136 reputation)Associate Member (136 reputation)Associate Member (136 reputation)Associate Member (136 reputation)
Group: Forum Members
Posts: 1, Visits: 6
I tried to do the same but my problem is that the "too fast"- message appears always although I defined it to appear if the subjects respond earlier than 300 ms. It doesn't matter for how long I wait, and even if I wait 2000 ms which is the point when the "too slow"-message should appear, the "too fast"- message appears instead. How can it be?
Dave
Dave
Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)
Group: Administrators
Posts: 10K, Visits: 59K
> How can it be?

It's a mistake in your code -- what that mistake is and where is impossible to tell without you providing the relevant code.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search