Millisecond Forums

Summary data for likert scale version of UPPS

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

By becgwin - 3/20/2017

Hi,

I have developed a script for the UPPS using a likert scale so that only one item appears at a time on screen (as versus using radiobuttons).  I am trying to work out how to create a summary data file that adds the responses but can't get it to work.  I have looked at a number of other scripts and they often seem to use expressions such as:

<data>
/ columns = [date time subject trialcode trialnum blockcode blocknum response latency totalmeanlatency totalsdlatency correct error totalnumcorrect
totalpercentcorrect stimulusitem stimulusitem stimulusitem]
</data>

They haven't defined properties such as totalmeanlatency or totalnnumcorrrect previously  - they just seem to be terms understood by Inquisit.  If this is the case, where might I find the correct properties that would allow me to do as per above for a likert type script whose raw data file includes response and latency. I have tried to do this as follows but it doesn't work (perhaps sum is not the right terminology):

<summarydata>
/ columns = [script.subjectid, script.startdate, script.starttime, totalsumlatency, totalsumresponse]
</summarydata>

Does anyone have a suggestion as how to do this?

Also, despite my specifying exactly how I want my raw data file to be, I seem to always get the defaults including such items as pretrialpause, posttrialpause windowcenter etc. which I don't need.  Any suggestions as to what I am doing wrong?

Thanks,
Rebecca


By Dave - 3/20/2017

becgwin - Monday, March 20, 2017
Hi,

I have developed a script for the UPPS using a likert scale so that only one item appears at a time on screen (as versus using radiobuttons).  I am trying to work out how to create a summary data file that adds the responses but can't get it to work.  I have looked at a number of other scripts and they often seem to use expressions such as:

<data>
/ columns = [date time subject trialcode trialnum blockcode blocknum response latency totalmeanlatency totalsdlatency correct error totalnumcorrect
totalpercentcorrect stimulusitem stimulusitem stimulusitem]
</data>

They haven't defined properties such as totalmeanlatency or totalnnumcorrrect previously  - they just seem to be terms understood by Inquisit.  If this is the case, where might I find the correct properties that would allow me to do as per above for a likert type script whose raw data file includes response and latency. I have tried to do this as follows but it doesn't work (perhaps sum is not the right terminology):

<summarydata>
/ columns = [script.subjectid, script.startdate, script.starttime, totalsumlatency, totalsumresponse]
</summarydata>

Does anyone have a suggestion as how to do this?

Also, despite my specifying exactly how I want my raw data file to be, I seem to always get the defaults including such items as pretrialpause, posttrialpause windowcenter etc. which I don't need.  Any suggestions as to what I am doing wrong?

Thanks,
Rebecca



For the default data columns (these apply to *raw* data files / the <data> element only) see https://www.millisecond.com/support/docs/v4/html/language/datarecording.htm

Available properties for any given element are listed in the respective element's language reference entry under "Properties", e.g. https://www.millisecond.com/support/docs/v4/html/language/elements/likert.htm

There is no such thing as a "totalsumresponse" property. The way to do this is with global variables (<values> entries), i.e. you sum the responses up /ontrialend, store the result in a value, and log that value to the (summary) data file. Example:

<values>
/ sumratings = 0
</values>

<block myblock>
/ trials = [1-4 = mylikert]
</block>

<likert mylikert>
/ ontrialend = [values.sumratings += likert.mylikert.response]
/ stimulusframes = [1=mytext]
</likert>

<text mytext>
/ items = ("A", "B", "C", "D")
/ position = (50%, 40%)
</text>

<summarydata>
/ columns = [script.startdate script.starttime script.subjectid script.groupid likert.mylikert.totalsumlatency likert.mylikert.totalcount values.sumratings]
/ separatefiles = true
</summarydata>

By becgwin - 3/23/2017

Dave - Monday, March 20, 2017
becgwin - Monday, March 20, 2017
Hi,

I have developed a script for the UPPS using a likert scale so that only one item appears at a time on screen (as versus using radiobuttons).  I am trying to work out how to create a summary data file that adds the responses but can't get it to work.  I have looked at a number of other scripts and they often seem to use expressions such as:

<data>
/ columns = [date time subject trialcode trialnum blockcode blocknum response latency totalmeanlatency totalsdlatency correct error totalnumcorrect
totalpercentcorrect stimulusitem stimulusitem stimulusitem]
</data>

They haven't defined properties such as totalmeanlatency or totalnnumcorrrect previously  - they just seem to be terms understood by Inquisit.  If this is the case, where might I find the correct properties that would allow me to do as per above for a likert type script whose raw data file includes response and latency. I have tried to do this as follows but it doesn't work (perhaps sum is not the right terminology):

<summarydata>
/ columns = [script.subjectid, script.startdate, script.starttime, totalsumlatency, totalsumresponse]
</summarydata>

Does anyone have a suggestion as how to do this?

Also, despite my specifying exactly how I want my raw data file to be, I seem to always get the defaults including such items as pretrialpause, posttrialpause windowcenter etc. which I don't need.  Any suggestions as to what I am doing wrong?

Thanks,
Rebecca



For the default data columns (these apply to *raw* data files / the <data> element only) see https://www.millisecond.com/support/docs/v4/html/language/datarecording.htm

Available properties for any given element are listed in the respective element's language reference entry under "Properties", e.g. https://www.millisecond.com/support/docs/v4/html/language/elements/likert.htm

There is no such thing as a "totalsumresponse" property. The way to do this is with global variables (<values> entries), i.e. you sum the responses up /ontrialend, store the result in a value, and log that value to the (summary) data file. Example:

<values>
/ sumratings = 0
</values>

<block myblock>
/ trials = [1-4 = mylikert]
</block>

<likert mylikert>
/ ontrialend = [values.sumratings += likert.mylikert.response]
/ stimulusframes = [1=mytext]
</likert>

<text mytext>
/ items = ("A", "B", "C", "D")
/ position = (50%, 40%)
</text>

<summarydata>
/ columns = [script.startdate script.starttime script.subjectid script.groupid likert.mylikert.totalsumlatency likert.mylikert.totalcount values.sumratings]
/ separatefiles = true
</summarydata>


Thanks so much again Dave for your ongoing help. Worked a treat.  But I have another scenario with Likerts and I'm not surehow to apply this!  I think it may need another solution.  I’m notsure what to do if you need to generate a number of separate scores when usinga scale in which you have subscales. How would you  generate separate sumscores for each subscale?  I understand you could create different valuesfor each, i.e.

<values>
/ sumratingsscale1 = 0
/ sumratingsscale2 = 0
</values>

but then how would you specify which particular items within the likert scalewere in which subscale (or sumratings).  This is relevant as I have allthe questions in a particular order (as specified by the author) and thus haveput all of them under one item i.e. <item UPPS>.  I can't break theminto separate items for each subscale because of the item order required. Is there anyway to select questions from within one item (according to theirnumber?).   For example I tried the following withlikert.attitude.response1 (where response 1 is meant to be the first questionin the item UPPS) etc, but it didn't work:

<likert Attitude>
/ anchors = [1="Strongly Agree"; 2 = "Agree some"; 3 ="Disagree some"; 4="Strongly Disagree"]
/ stimulusframes = [1 = scalequestions]
/ mouse=true
/ numpoints=4
/ position= (50%, 70%)
/ anchorwidth = 20%
/ ontrialend = [values.sumratingsscale1 += (likert.attitude.response1 +likert.attitude.response4 + likert.attitude.response5)]
/ ontrialend = [ [values.sumratingsscale2 += (likert.attitude.response2 +likert.attitude.response3 + likert.attitude.response6)]
</likert>

Can you help me with this?  It would be fantastic and would make analysisso much easier.

Thanks so much,

Rebecca


By Dave - 3/24/2017

becgwin - Thursday, March 23, 2017
Dave - Monday, March 20, 2017
becgwin - Monday, March 20, 2017
Hi,

I have developed a script for the UPPS using a likert scale so that only one item appears at a time on screen (as versus using radiobuttons).  I am trying to work out how to create a summary data file that adds the responses but can't get it to work.  I have looked at a number of other scripts and they often seem to use expressions such as:

<data>
/ columns = [date time subject trialcode trialnum blockcode blocknum response latency totalmeanlatency totalsdlatency correct error totalnumcorrect
totalpercentcorrect stimulusitem stimulusitem stimulusitem]
</data>

They haven't defined properties such as totalmeanlatency or totalnnumcorrrect previously  - they just seem to be terms understood by Inquisit.  If this is the case, where might I find the correct properties that would allow me to do as per above for a likert type script whose raw data file includes response and latency. I have tried to do this as follows but it doesn't work (perhaps sum is not the right terminology):

<summarydata>
/ columns = [script.subjectid, script.startdate, script.starttime, totalsumlatency, totalsumresponse]
</summarydata>

Does anyone have a suggestion as how to do this?

Also, despite my specifying exactly how I want my raw data file to be, I seem to always get the defaults including such items as pretrialpause, posttrialpause windowcenter etc. which I don't need.  Any suggestions as to what I am doing wrong?

Thanks,
Rebecca



For the default data columns (these apply to *raw* data files / the <data> element only) see https://www.millisecond.com/support/docs/v4/html/language/datarecording.htm

Available properties for any given element are listed in the respective element's language reference entry under "Properties", e.g. https://www.millisecond.com/support/docs/v4/html/language/elements/likert.htm

There is no such thing as a "totalsumresponse" property. The way to do this is with global variables (<values> entries), i.e. you sum the responses up /ontrialend, store the result in a value, and log that value to the (summary) data file. Example:

<values>
/ sumratings = 0
</values>

<block myblock>
/ trials = [1-4 = mylikert]
</block>

<likert mylikert>
/ ontrialend = [values.sumratings += likert.mylikert.response]
/ stimulusframes = [1=mytext]
</likert>

<text mytext>
/ items = ("A", "B", "C", "D")
/ position = (50%, 40%)
</text>

<summarydata>
/ columns = [script.startdate script.starttime script.subjectid script.groupid likert.mylikert.totalsumlatency likert.mylikert.totalcount values.sumratings]
/ separatefiles = true
</summarydata>


Thanks so much again Dave for your ongoing help. Worked a treat.  But I have another scenario with Likerts and I'm not surehow to apply this!  I think it may need another solution.  I’m notsure what to do if you need to generate a number of separate scores when usinga scale in which you have subscales. How would you  generate separate sumscores for each subscale?  I understand you could create different valuesfor each, i.e.

<values>
/ sumratingsscale1 = 0
/ sumratingsscale2 = 0
</values>

but then how would you specify which particular items within the likert scalewere in which subscale (or sumratings).  This is relevant as I have allthe questions in a particular order (as specified by the author) and thus haveput all of them under one item i.e. <item UPPS>.  I can't break theminto separate items for each subscale because of the item order required. Is there anyway to select questions from within one item (according to theirnumber?).   For example I tried the following withlikert.attitude.response1 (where response 1 is meant to be the first questionin the item UPPS) etc, but it didn't work:

<likert Attitude>
/ anchors = [1="Strongly Agree"; 2 = "Agree some"; 3 ="Disagree some"; 4="Strongly Disagree"]
/ stimulusframes = [1 = scalequestions]
/ mouse=true
/ numpoints=4
/ position= (50%, 70%)
/ anchorwidth = 20%
/ ontrialend = [values.sumratingsscale1 += (likert.attitude.response1 +likert.attitude.response4 + likert.attitude.response5)]
/ ontrialend = [ [values.sumratingsscale2 += (likert.attitude.response2 +likert.attitude.response3 + likert.attitude.response6)]
</likert>

Can you help me with this?  It would be fantastic and would make analysisso much easier.

Thanks so much,

Rebecca



> but then how would you specify which particular items within the likert scalewere in which subscale
 
Generally speaking, you either need to make your /ontrialend logic *conditional*

/ ontrialend = [if (text.scalequestions.currentitemnumber == 1 ||  ext.scalequestions.currentitemnumber == 4 || ... )values.sumratingsscale1 += likert.attitude.response]

or set up separate <likert> for each subscale.