Problem in the database when using a Stroop Task


Author
Message
vpillaud
vpillaud
Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)
Group: Forum Members
Posts: 26, Visits: 93
Hello,

I've downloaded and modified the Stroop script that is provided by your website for an experiment. I've noticed an important problem in the database and would like to know if there is a simple way to fix it.

As a reminder, a Stroop task randomly displays congruent and incongruent trials. You can see in the screenshot below that, instead of reporting a blank in the congruent column when displaying an incongruent trial, it copies the value of the previous congruent column. The highlighted cases are the problematic ones.


http://q4demos.free.fr/Canada/asitis.png

Copying the previous value is actually creating false means (as it duplicates values) and hence, completely messes up the data. I'd like it to report a blank in the congruent column when displaying an incongruent trail (as shown below). Is there a way to do this ??
http://q4demos.free.fr/Canada/asiwantittobe.png

Thanks for your help.

Regards, Vincent.


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
No, nothing is duplicated here and no means are distorted in any way either. These expressions *are* the respective means given the data up to the given point in time. And since the mean for congruent trials does not change during incongruent trials the value remains the same.

vpillaud
vpillaud
Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)
Group: Forum Members
Posts: 26, Visits: 93
wished it was the case but unfortunately it is not. The reported mean does not correspond to the average of the separated latencies...

I can give you the data if you want me too.

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
Please do.

vpillaud
vpillaud
Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)
Group: Forum Members
Posts: 26, Visits: 93
ok. By now, there are two control trials and twelve trials (either congruent or incongruent) in the script. It'll be modified later on.

The two zeros at the beginning are thus due to the control trials.


http://q4demos.free.fr/Canada/pb.png

In its summary, Inquisit reports a mean of 1099 for the congruent items and 740.66 for the incongruent in this example. However, when i compute the mean myself, including or excluding the two zeros, I never obtain the same value (as shown in the screenshot).

The means displayed in the summary are computed as:
expressions.congruentRT = meanlatency(trial.bluecongruent, trial.redcongruent)

I cannot find the values of the trial.bluecongruent and trial.redcongruent in the raw datafile (they are not saved). Hence, I couldnt check if something was wrong at this level. Am I computing the means in a wrong way ? (such as not using the right values for it for instance).

Thanks for your help, really appreciate.

Vincent




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
Vincent,
expressions.congruentRT = meanlatency(trial.bluecongruent, trial.redcongruent)

means whatever the expression in your data file contains in a given line *is the mean at this given point in time*. What you are calculating manually is thus the "mean of means", which of course does not make any sense.

If you want to manually check the results of the expressions, you ought to sum up the raw latencies in the data file's 'latency' column by trial type (sum up latencies for congruent trials, sum up latencies for incongruent trials) and divide the respective sums by the appropriate number of trials (i.e., number of congruent trials, number of incongruent trials).

In a nutshell:

<block myblock>
/ trials = [1-20=noreplace(a1,a2,b1,b2)]
</block>

<values>
/ a_rtsum = 0
/ a_ntrials = 0
/ b_rtsum = 0
/ b_ntrials = 0
</values>

<expressions>
/ a_meanrt = (values.a_rtsum / values.a_ntrials)
/ a_meanrt2 = meanlatency(trial.a1, trial.a2)
/ b_meanrt = (values.b_rtsum / values.b_ntrials)
/ b_meanrt2 = meanlatency(trial.b1, trial.b2)
</expressions>

<trial a1>
/ ontrialend = [values.a_ntrials += 1; values.a_rtsum += trial.a1.latency]
/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<trial a2>
/ ontrialend = [values.a_ntrials += 1; values.a_rtsum += trial.a2.latency]
/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<trial b1>
/ ontrialend = [values.b_ntrials += 1; values.b_rtsum += trial.b1.latency]
/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<trial b2>
/ ontrialend = [values.b_ntrials += 1; values.b_rtsum += trial.b2.latency]
/ stimulusframes = [1=mytext]
/ validresponse = (57)
</trial>

<text mytext>
/ items = ("<%script.currenttrial%>")
</text>
 
<data>
/ columns = [trialnum, trialcode, response, latency,
    values.a_rtsum, values.a_ntrials, expressions.a_meanrt, expressions.a_meanrt2,
    values.b_rtsum, values.b_ntrials, expressions.b_meanrt, expressions.b_meanrt2,
    ]
</data>


vpillaud
vpillaud
Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)
Group: Forum Members
Posts: 26, Visits: 93
I see. Thanks for this clear explanation.


Best,

Vincent.

vpillaud
vpillaud
Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)Guru (5K reputation)
Group: Forum Members
Posts: 26, Visits: 93
btw, is there a possibility to print the latencies per stimuli in the raw data file ?



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
All that's already in the data file. You have the latency column and you have stimulusitem columns (unless you've explicitly excluded them)

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search