Millisecond Forums

summary data - trial number, trial object, trial response

https://forums.millisecond.com/Topic20038.aspx

By LoPu - 11/2/2016

Hey, 
in my experiment I have 30 objects, which are shown to each participant in random order. They have to react to it either with a right click or left click.
My code for each trial is:
<trial trialxy>
/ pretrialpause = 300
/ validresponse = ("J", "L")
/ stimulustimes = [0=objecttarget]
/ posttrialpause = 100
</trial>

My code for the block is:
<block playground>
/ bgstim = (reminder1, reminder2, reminder3)
/ trials = [1-30 = noreplace(trialxy)]
</block>

So far I have for summary data:
<summarydata>
/columns = [script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime,
trial.trialxy.typename, values.completed]
/ separatefiles = false
</summarydata>

The experiment works perfectly, the only thing that gives me a headache is the report of the data. I would like to have a summarydatafile, where i can see for each participant:
subjectid; group number; object given in trial #1 (can be number or name of object); response of participant (right or left click); latency for this trial; object given in trial #2, response, latency, object trial #3 and so on.

I tried all possible codes that I can come up with (e.g. trial.trialxy.response1, but so far none of them did the trick :).
Does anyone have an idea what to request for the summary data?

Thanks in advance!
LoPu
By Dave - 11/2/2016

This information is in the *raw* "long-format" data file. It provides a trial-by-trial record of the stimulus show, the response submitted, the response's latency, etc.

The summary data file is solely for recording a single-line of *summary* statistics per subject, e.g. if you wanted to record the mean latency of certain trials, or the overall percentage of correct responses, etc.
By LoPu - 11/2/2016

Hey,
thanks for the response and yes, I see that this information is in the raw-data file. 
It's just that after the trials, there is a survey and then trials again, so I would love to have one summary file where all parts of the experiment kind of go together - including the trials...

Is there a way to do that? Or does your answer basically mean that there is no code for that?!
Thanks
LoPu


By Dave - 11/3/2016

If you want the data from your survey to end up in the same data file as the rest (<block>s, <trial>s), the way to do that is to run your <surveypage>s via a <block>'s /trials attribute instead of using a <survey> element.

As for the summary format you outlined, it is possible to obtain, but it would be (a) very cumbersome and (b) usually that kind of format would not be particularly useful for data analysis.

Hope this helps.
By LoPu - 11/3/2016

Hey,
yes that's a neat option and that's exactly how I designed my experiment so far = running the survey pages as a trial. It creates different datafiles for each survey, but that's fine. Interestingly, for the surveys I had no problem 
including them in the summary data over commands like radiobutton.xy.response, textbox.abc.response, dropdown.name.response and so on.

I believe you that getting a command for the different trials to be in the summary data as one line would be very cumbersome, especially for 30 trials... so for now, I am fine with just having one file with all surveys (that's the summary data file) and one file with the experimental data. Then I will just have to spend some time later to reorganize them into my format, as SPSS seems to work so much easier with one line per participant...
either way will be cumbersome.

Without going too much into detail:
How would the commands for putting specific trials in the summary data look like? Would it work with the "values" command, determined and specified at the end of each trial?
Not that I would want to program it, but after wondering and searching for a solution so long, I am kind of curious about the solution - even if I decide not to pursue it :). 
At least it would make me feel like I cracked the code...

Thanks
LoPu




By Dave - 11/3/2016

Your original question suggests you wanted a summary file in the form of

subjectid, ... ,stimulus_in_1st_trial, response_in_1st_trial, latency_in_1st_trial, stimulus_in_2nd_trial, response_in_2nd_trial, latency_in_2nd_trial, ..., stimulus_in_30th_trial, response_in_30th_trial, latency_in_30th_trial

i.e., a single row and >90 columns: 3 pieces of info (stimulus, response, latency) * 30 trials.

You would set up three empty <item> elements.

<item stimulus>
</item>

<item response>
</item>

<item latency>
</item>

You'd then append a given trial's stimulus #, response & latency to the respective <item> elements at runtime /ontrialend.

<trial trialxy>
/ ontrialend = [item.stimulus.appenditem(picture.objecttarget.currentitemnumber);
     item.response.appenditem(trial.trialxy.response);
     item.latency.appenditem(trial.trialxy.latency);]
/ pretrialpause = 300
/ validresponse = ("J", "L")
/ stimulustimes = [0=objecttarget]
/ posttrialpause = 100
</trial>

You'd then log the respective items to the summary file:

<summarydata>
/ columns = [..., item.stimulus.item.1, item.response.item.1, item.latency.item.1, ..., item.stimulus.item.30, item.response.item.30, item.latency.item.30]
...
</summarydata>
By LoPu - 11/7/2016

Dave - Thursday, November 03, 2016
Your original question suggests you wanted a summary file in the form of

subjectid, ... ,stimulus_in_1st_trial, response_in_1st_trial, latency_in_1st_trial, stimulus_in_2nd_trial, response_in_2nd_trial, latency_in_2nd_trial, ..., stimulus_in_30th_trial, response_in_30th_trial, latency_in_30th_trial

i.e., a single row and >90 columns: 3 pieces of info (stimulus, response, latency) * 30 trials.

You would set up three empty <item> elements.

<item stimulus>
</item>

<item response>
</item>

<item latency>
</item>

You'd then append a given trial's stimulus #, response & latency to the respective <item> elements at runtime /ontrialend.

<trial trialxy>
/ ontrialend = [item.stimulus.appenditem(picture.objecttarget.currentitemnumber);
     item.response.appenditem(trial.trialxy.response);
     item.latency.appenditem(trial.trialxy.latency);]
/ pretrialpause = 300
/ validresponse = ("J", "L")
/ stimulustimes = [0=objecttarget]
/ posttrialpause = 100
</trial>

You'd then log the respective items to the summary file:

<summarydata>
/ columns = [..., item.stimulus.item.1, item.response.item.1, item.latency.item.1, ..., item.stimulus.item.30, item.response.item.30, item.latency.item.30]
...
</summarydata>

Yay, I tried in on a small scale and it worked!!
Thanks so much! I definitely feel a little less stupid and helpless in front of all these numbers and codes.
Thanks.