How to display a feedback to the participants' choices in a questionnaire


Author
Message
Aleksander Kocaj
Aleksander Kocaj
Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)
Group: Forum Members
Posts: 7, Visits: 1

Dear all,


I have created a questionnaire to assess personality variables (extraversion, neuroticism). Therefore I used the 'surveypage' - command, where participants have to evaluate statements via a Likert- Scale (therefore I used the 'radiobuttons' command).


Now I would like to integrate a personal feedback at the end, where the participants get a personalized feedback based on there ratings. Something like "Your mean score of extraversion is 3.2 (on a 5-point-scale)" How can I do this in Inquisit?


Thanks for your help and kind regards,


Aleks



PS: Is it also possible to adjust the scoring- algorithm due to inverted items?


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: 12K, Visits: 98K

Hi Aleks,


to do this, you must make use of Inquisit's <values> and <expressions> features as well as some '/ ontrialend' scoring logic. For the sake of simplicity, let's assume we have an extraversion scale consisting of four items. Values for each item range from 1-5, while two of the four items are reversed. We define some <radiobuttons> to do this:


<radiobuttons ev01>
/ caption = "Extraversion Scale Item 01"
/ options = ("1", "2", "3", "4", "5")
/ optionvalues = ("1", "2", "3", "4", "5")
/ orientation = horizontal
</radiobuttons>

<radiobuttons ev02>
/ caption = "Extraversion Scale Item 02 (Reversed)"
/ options = ("1", "2", "3", "4", "5")
/ optionvalues = ("5", "4", "3", "2", "1")
/ orientation = horizontal
</radiobuttons>

<radiobuttons ev03>
/ caption = "Extraversion Scale Item 03"
/ options = ("1", "2", "3", "4", "5")
/ optionvalues = ("1", "2", "3", "4", "5")
/ orientation = horizontal
</radiobuttons>

<radiobuttons ev04>
/ caption = "Extraversion Scale Item 04 (Reversed)"
/ options = ("1", "2", "3", "4", "5")
/ optionvalues = ("5", "4", "3", "2", "1")
/ orientation = horizontal
</radiobuttons>


Note that the reversal of scores for scale items ev02 and ev04 is implemented via the '/ optionvalues' attribute. Now, we need to create a variable to hold the sum of the scale item scores selected by the participant. We can also define a variable that holds the total number of extraversion items on our little scale (i.e. 4 in this example) plus an <expressions> entry to compute the mean extraversion score (sum of scale item values divided by number of items):


<values>
/ extraversionsum = 0
/ extraversionnitems = 4
</values>

<expressions>
/ extraversionmean = (values.extraversionsum/values.extraversionnitems)
</expressions>


Then we can begin putting our scale items on a <surveypage>. Additionally we need to tell the <surveypage> to update our extraversion summation score once the participant submits her / his answers (-> '/ ontrialend' attribute):


<surveypage extraversion>
/ questions = [1=ev01; 2=ev02; 3=ev03; 4=ev04]
/ ontrialend = [values.extraversionsum = values.extraversionsum
    + radiobuttons.ev01.selectedvalue
    + radiobuttons.ev02.selectedvalue
    + radiobuttons.ev03.selectedvalue
    + radiobuttons.ev04.selectedvalue]
</surveypage>


Lastly, we need to create another <surveypage> and assorted stuff to report the achieved mean extraversion score back to subjects and put everything together into a <survey>:


<surveypage scorereport>
/ questions = [1=evscore]
</surveypage>

<caption evscore>
/ caption = "Your mean extraversion score is <%expressions.extraversionmean%>."
</caption>


<survey mysurvey>
/ pages = [1=extraversion; 2=scorereport]
/ showbackbutton = false
</survey>


And that's it. A working sample script is attached to this reply.


~Dave


Attachments
Survey_Scoring.exp (647 views, 1.00 KB)
Aleksander Kocaj
Aleksander Kocaj
Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)
Group: Forum Members
Posts: 7, Visits: 1

Hi Dave,


thank your for your detailled and quick answer- it was very helpfull. Unfortunately, the attached sample script does not work, the following error message returns: "Expression 'radiobuttons.ev01.selectedvalue' is invalid. Expression contains an unknown element or property name." Is that because I am using an older version of Inquisit (3.0.2.0)?


Best,


Aleks


Aleksander Kocaj
Aleksander Kocaj
Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)Partner Member (783 reputation)
Group: Forum Members
Posts: 7, Visits: 1

Hi Dave,


problem solved: I just downloaded the latest version of Inquisit and the error message doesn't occur anymore. Thanks for the script, it's exactly what I was looking for!



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: 12K, Visits: 98K

Unfortunately, the attached sample script does not work, the following error message returns: "Expression 'radiobuttons.ev01.selectedvalue' is invalid. Expression contains an unknown element or property name." Is that because I am using an older version of Inquisit (3.0.2.0)?


Correct -- the respective property was introduced later (around 3.0.3.0, I believe). But you already found that out yourself by updating to the most recent release. Glad you're up and running. Let me know if you continue to have questions or run into problems!


~Dave


britnee
britnee
Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)
Group: Forum Members
Posts: 2, Visits: 1

Hi,


Would there be a way to do this same thing using likert instead of radio buttons?


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: 12K, Visits: 98K

Yes, the method is essentially identical.


britnee
britnee
Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)
Group: Forum Members
Posts: 2, Visits: 1

I tried to use that as a model, but I keep getting errors. 


Essentially, what I want to do is the same thing, except I want to use Inquisit's likert screens instead of radiobuttons/other survey elements. I also have three questionnaires instead of one.


Here's what I have right now. I didn't know where to put /ontrialend so I tacked it onto the last trial of each of the questionnaires (extraversion, agreeableness, openness):




<block survey>
/ trials = [1=ex01; 2=ex02; 3=ex03; 4=ex04; 5=ex05; 6=ag01; 7=ag02; 8=ag03; 9=ag04; 10=ag05; 11=op01; 12=op02; 13=op03; 14=op04; 15=op05; 16=scorereport)]
/ postinstructions = (posfeedback)
</block>

<values>
/ extraversionsum = 0
/ extraversionnitems = 5
/ agreeablenesssum = 0
/ agreeablenessitems = 5
/ opennesssum = 0
/ opennessitems = 5
</values>

<expressions>
/ extraversionmean = (values.extraversionsum/values.extraversionnitems)
/ agreeablenessmean = (values.agreeablenesssum/values.agreeablenessitems)
/ opennessmean = (values.opennesssum/values.opennessitems)
</expressions>

<surveypage scorereport>
/ questions = [1=exscore]
/ finishlabel = "Next"
/ fontstyle = ("Arial", -18, false, false, false, false, 5, 0)
</surveypage>

<caption exscore>
/ caption = "Your mean extraversion score, measuring how extraverted you are, is <%expressions.extraversionmean%>. The larger the number, the more extraverted you are.

Your mean openness score, measuring how open you are to new ideas, is <%expressions.opennessmean%>.

Your mean agreeableness score, measuring how cooperative and agreeable you are with others, is <%expressions.agreeablenessmean%>."
</caption>

<likert ex01>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionex01]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text numberreminder>
/ items = ("Please click your answer on the rating scale provided.")
/ fontstyle = ("Arial", 14pt, false, true, false, false, 5, 0)
/ position = (50, 22)
/ halign = center
/ hjustify = left
/ size = (80%, 10%)
</text>

<text anchor1>
/ items = ("Strongly Disagree")
/ fontstyle = ("Arial", 11pt, true, false, false, false, 5, 0)
/ position = (12%, 80%)
/ size = (6%, 10%) 
</text>

<text anchor2>
/ items = ("Strongly Agree")
/ fontstyle = ("Arial", 11pt, true, false, false, false, 5, 0)
/ position = (88%, 80%)
/ size = (6%, 10%) 
</text>

<text anchor3>
/ items = ("Neither Agree Nor Disagree")
/ fontstyle = ("Arial", 11pt, true, false, false, false, 5, 0)
/ position = (50%, 80%)
/ size = (6%, 10%)
</text>

<text questionex01>
/ items = ("I feel at ease with people.")
/ position = (50,50)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
/ erase = true(255, 255, 255)
</text>

<likert ex02>
/ buttonvalues = [1="5"; 2="4"; 3="3"; 4="2"; 5="1"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionex02]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionex02>
/ items = ("I am reserved.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ex03>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionex03]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionex03>
/ items = ("I make friends easily.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ex04>
/ buttonvalues = [1="5"; 2="4"; 3="3"; 4="2"; 5="1"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionex04]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionex04>
/ items = ("I am quiet around strangers.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ex05>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionex05]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
/ ontrialend = [values.extraversionsum = values.extraversionsum
 + likert.ex01.selectedvalue
 + likert.ex02.selectedvalue
 + likert.ex03.selectedvalue
 + likert.ex04.selectedvalue
 + likert.ex05.selectedvalue]
</likert>

<text questionex05>
/ items = ("I am outgoing, sociable.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ag01>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionag01]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionag01>
/ items = ("I am helpful and unselfish with others.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ag02>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionag02]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionag02>
/ items = ("I have a forgiving nature.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ag03>
/ buttonvalues = [1="5"; 2="4"; 3="3"; 4="2"; 5="1"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, ag03]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text ag03>
/ items = ("I am sometimes rude to others.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ag04>
/ buttonvalues = [1="5"; 2="4"; 3="3"; 4="2"; 5="1"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, ag04]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text ag04>
/ items = ("I start quarrels with others.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert ag05>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionag05]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)


/ ontrialend = [values.agreeablenesssum = values.agreeablenesssum
 + likert.ag01.selectedvalue
 + likert.ag02.selectedvalue
 + likert.ag03.selectedvalue
 + likert.ag04.selectedvalue
 + likert.ag05.selectedvalue]
</likert>

<text questionag05>
/ items = ("I am considerate to almost everyone.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert op01>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionop01]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionop01>
/ items = ("I am curious about many different things.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert op02>
/ buttonvalues = [1="5"; 2="4"; 3="3"; 4="2"; 5="1"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, op02]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text op02>
/ items = ("I prefer work that is routine.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert op03>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionop03]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionop03>
/ items = ("I value artistic, aesthetic experiences.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert op04>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionop04]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)
</likert>

<text questionop04>
/ items = ("I like to reflect, play with ideas.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>

<likert op05>
/ buttonvalues = [1="1"; 2="2"; 3="3"; 4="4"; 5="5"]
/ stimulusframes = [1=numberreminder, anchor1, anchor2, anchor3, questionop05]
/ anchorwidth = 20%
/ mouse = true
/ numpoints = 5
/ position = (50, 69)

/ ontrialend = [values.opennesssum = values.opennesssum
 + likert.op01.selectedvalue
 + likert.op02.selectedvalue
 + likert.op03.selectedvalue
 + likert.op04.selectedvalue
 + likert.op05.selectedvalue]
</likert>

<text questionop05>
/ items = ("I am sophisticated in art, music, or literature.")
/ position = (50,50)
/ erase = true(255, 255, 255)
/ fontstyle = ("Arial", 18pt, true, false, false, false, 5, 0)
</text>



Thanks!!


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: 12K, Visits: 98K

See http://www.millisecond.com/forums/Topic2214.aspx for an example using <likert> elements.


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search