Output and Conciseness Multiple Visual Analogue Scales?


Author
Message
Roel van Dooren
Roel van Dooren
Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)
Group: Forum Members
Posts: 2, Visits: 15
Dear Inquisit Forum,

I recently started using Inquisit (i.e. last week). I'm currently working on a minor research project as a first year research master student. Since I wasn't able to figure out how to successfully run my experiment, I wondered whether any of you could provide me some insight.

I managed to integrate several Visual Analogue Scales within my pilot-experiment. For example, I'm interested whether participants rate 2 pictures which are simultaneously presented as identical in weight and complexity. Even though my script is absolutely not concise, it does run. However, the major problem I'm encountering is that the roundedvalue scores are not successfully saved. I can't figure out how to display the scores on the VAS-scales properly for each question. Could someone give me some insight?
In addition, is there a simple way to make things more concise? Since the actual script is getting rather long!

Kind regards,
Roel van Dooren


----------------------------------------------------------------------------------------------------------
Experiment & data saving
----------------------------------------------------------------------------------------------------------
<expt>
/ preinstructions = (welkom, uitleg)
/ blocks = [1= VAS]
/ postinstructions = (bedankt)
</expt>

<data>
/columns =[date time subject blocknum trialnum trialcode response stimulus expressions.roundedvalue]
/format=tab
</data>
----------------------------------------------------------------------------------------------------------
Blocks
----------------------------------------------------------------------------------------------------------

<block VAS>
/ trials = [1-6 = noreplacenorepeat(VAS_MatchedPair1_Weight, VAS_MatchedPair2_Weight, VAS_MatchedPair1_Complexity, VAS_MatchedPair2_Complexity, VAS_MatchedPair1_Grootte, VAS_MatchedPair2_Grootte)]
</block>
----------------------------------------------------------------------------------------------------------
Trials
----------------------------------------------------------------------------------------------------------

<trial VAS_MatchedPair1_Weight>
/ stimulusframes = [1=Weight, picture1A, picture1B, leftborder, rightborder, line, leftanchorWeight, rightanchorWeight, middle, exactmiddle]
/ inputdevice = mouse
/ validresponse = (line)
/ branch = [trial.showresponseMP1_Weight]
</trial>

<trial VAS_MatchedPair2_Weight>
/ stimulusframes = [1=Weight, picture2A, picture2B, leftborder, rightborder, line, leftanchorWeight, rightanchorWeight, middle, exactmiddle]
/ inputdevice = mouse
/ validresponse = (line)
/ branch = [trial.showresponseMP2_Weight]
</trial>

<trial VAS_MatchedPair1_Complexity>
/ stimulusframes = [1=Complexity, picture1A, picture1B, leftborder, rightborder, line, leftanchorComplexity, rightanchorComplexity, middle, exactmiddle]
/ inputdevice = mouse
/ validresponse = (line)
/ branch = [trial.showresponseMP1_Complexity]
</trial>

<trial VAS_MatchedPair2_Complexity>
/ stimulusframes = [1=Complexity, picture2A, picture2B, leftborder, rightborder, line, leftanchorComplexity, rightanchorComplexity, middle, exactmiddle]
/ inputdevice = mouse
/ validresponse = (line)
/ branch = [trial.showresponseMP2_Complexity]
</trial>

<trial VAS_MatchedPair1_Grootte>
/ stimulusframes = [1=Grootte, picture1A, picture1B, leftborder, rightborder, line, leftanchorGrootte, rightanchorGrootte, middle, exactmiddle]
/ inputdevice = mouse
/ validresponse = (line)
/ branch = [trial.showresponseMP1_Grootte]
</trial>

<trial VAS_MatchedPair2_Grootte>
/ stimulusframes = [1=Grootte, picture2A, picture2B, leftborder, rightborder, line, leftanchorGrootte, rightanchorGrootte, middle, exactmiddle]
/ inputdevice = mouse
/ validresponse = (line)
/ branch = [trial.showresponseMP2_Grootte]
</trial>


<trial showresponseMP1_Weight>
/ stimulusframes = [1=X1Weight]
/ inputdevice = mouse
/ validresponse = (noresponse)
/ timeout = 500
/ recorddata = false
</trial>

<trial showresponseMP2_Weight>
/ stimulusframes = [1=X2Weight]
/ inputdevice = mouse
/ validresponse = (noresponse)
/ timeout = 500
/ recorddata = false
</trial>

<trial showresponseMP1_Complexity>
/ stimulusframes = [1=X1Complexity]
/ inputdevice = mouse
/ validresponse = (noresponse)
/ timeout = 500
/ recorddata = false
</trial>

<trial showresponseMP2_Complexity>
/ stimulusframes = [1=X2Complexity]
/ inputdevice = mouse
/ validresponse = (noresponse)
/ timeout = 500
/ recorddata = false
</trial>

<trial showresponseMP1_Grootte>
/ stimulusframes = [1=X1Grootte]
/ inputdevice = mouse
/ validresponse = (noresponse)
/ timeout = 500
/ recorddata = false
</trial>

<trial showresponseMP2_Grootte>
/ stimulusframes = [1=X2Grootte]
/ inputdevice = mouse
/ validresponse = (noresponse)
/ timeout = 500
/ recorddata = false
</trial>

<text X1Weight>
/ fontstyle = ("Arial", -35, true, false, false, false, 5, 0)
/ items = ("X")
/ txcolor = (255, 0, 0)
/ txbgcolor = (transparent)
/ hposition = (trial.VAS_MatchedPair1_Weight.responsex / display.width) * 100
/ vposition = shape.line.vposition
</text>

<text X2Weight>
/ fontstyle = ("Arial", -35, true, false, false, false, 5, 0)
/ items = ("X")
/ txcolor = (255, 0, 0)
/ txbgcolor = (transparent)
/ hposition = (trial.VAS_MatchedPair2_Weight.responsex / display.width) * 100
/ vposition = shape.line.vposition
</text>

<text X1Complexity>
/ fontstyle = ("Arial", -35, true, false, false, false, 5, 0)
/ items = ("X")
/ txcolor = (255, 0, 0)
/ txbgcolor = (transparent)
/ hposition = (trial.VAS_MatchedPair1_Complexity.responsex / display.width) * 100
/ vposition = shape.line.vposition
</text>

<text X2Complexity>
/ fontstyle = ("Arial", -35, true, false, false, false, 5, 0)
/ items = ("X")
/ txcolor = (255, 0, 0)
/ txbgcolor = (transparent)
/ hposition = (trial.VAS_MatchedPair2_Complexity.responsex / display.width) * 100
/ vposition = shape.line.vposition
</text>

<text X1Grootte>
/ fontstyle = ("Arial", -35, true, false, false, false, 5, 0)
/ items = ("X")
/ txcolor = (255, 0, 0)
/ txbgcolor = (transparent)
/ hposition = (trial.VAS_MatchedPair1_Grootte.responsex / display.width) * 100
/ vposition = shape.line.vposition
</text>

<text X2Grootte>
/ fontstyle = ("Arial", -35, true, false, false, false, 5, 0)
/ items = ("X")
/ txcolor = (255, 0, 0)
/ txbgcolor = (transparent)
/ hposition = (trial.VAS_MatchedPair2_Grootte.responsex / display.width) * 100
/ vposition = shape.line.vposition
</text>

<expressions Value_MatchedPair_Weight1>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP1_Weight.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue1 = format("%.2f", expressions.correctedscore)
/ paired = X1Weight
</expressions>

<expressions Value_MatchedPair_Weight2>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP2_Weight.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X2Weight
</expressions>

<expressions Value_MatchedPair_Complexity1>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP1_Complexity.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X1Complexity
</expressions>

<expressions Value_MatchedPair_Complexity2>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP2_Complexity.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X2Complexity
</expressions>

<expressions Value_MatchedPair_Grootte1>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP1_Grootte.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X1Grootte
</expressions>

<expressions Value_MatchedPair_Grootte2>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP2_Grootte.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X2Grootte
</expressions>

*** Scale Items ***

<shape line>
/ shape = rectangle
/ color = (0, 0, 0)
/ size = (700, 6)
/ position = (50, 75)
/ erase = false
</shape>

<shape leftborder>
/ shape = rectangle
/ color = (0, 0, 0)
/ size = (6, 30)
/ position = (16, 75)
/ erase = false
</shape>

<shape rightborder>
/ shape = rectangle
/ color = (0, 0, 0)
/ size = (6, 30)
/ position = (84, 75)
/ erase = false
</shape>

<text leftanchorWeight>
/ items = ("Meest zwaar")
/ position = (10, 76.5)
/ size = (80, 80)
/ erase = true(255, 255, 255)
</text>

<text rightanchorWeight>
/ items = ("Meest zwaar")
/ position = (90, 76.5)
/ size = (80, 80)
/ erase = true(255, 255, 255)
</text>

<text leftanchorComplexity>
/ items = ("Meest complex")
/ position = (10, 76.5)
/ size = (100, 100)
/ erase = true(255, 255, 255)
</text>

<text rightanchorComplexity>
/ items = ("Meest complex")
/ position = (90, 76.5)
/ size = (100, 100)
/ erase = true(255, 255, 255)
</text>

<text leftanchorGrootte>
/ items = ("Grootst")
/ position = (10, 78)
/ size = (90, 90)
/ erase = true(255, 255, 255)
</text>

<text rightanchorGrootte>
/ items = ("Grootst")
/ position = (90, 78)
/ size = (90, 90)
/ erase = true(255, 255, 255)
</text>

<text middle>
/ items = ("Identiek")
/ position = (50, 80)
/ size = (100,10)
/ erase = false
</text>

<shape exactmiddle>
/ shape = rectangle
/ color = (0, 0, 0)
/ size = (4, 20)
/ position = (50, 75)
/ erase = false
</shape>

----------------------------------------------------------------------------------------------------------
Text
----------------------------------------------------------------------------------------------------------

<text Weight>
/ items = Gewicht
/ position = (50, 70)
/ fontstyle = ("Arial", 18pt, false, false, false, false, 5)
</text>

<item Gewicht>
/1 = "In hoeverre zijn de objecten gelijk in de mate van gewicht?"
</item>

<text Complexity>
/ items = Complexiteit
/ position = (50, 70)
/ fontstyle = ("Arial", 18pt, false, false, false, false, 5)
</text>

<item Complexiteit>
/1 = "In hoeverre zijn de objecten gelijk in de mate van complexiteit?"
</item>

<text Grootte>
/ items = Groot
/ position = (50, 70)
/ fontstyle = ("Arial", 18pt, false, false, false, false, 5)
</text>

<item Groot>
/1 = "In hoeverre zijn de objecten gelijk in grootte?"
</item>

<text Orientation>
/ items = Groot
/ position = (50, 70)
/ fontstyle = ("Arial", 18pt, false, false, false, false, 5)
</text>

<item Orientatie>
/1 = "In hoeverre zijn d?"
</item>

<text Valence>
/ items = Valentie
/ position = (50, 70)
/ fontstyle = ("Arial", 18pt, false, false, false, false, 5)
</text>

<item Valentie>
/1 = "Hoe graag zou je dit object willen pakken?"
/2 = "Hoe mooi vind je het plaatje?"
</item>




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: 108K
All your various expressions collide.

<expressions Value_MatchedPair_Weight1>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP1_Weight.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue1 = format("%.2f", expressions.correctedscore)
/ paired = X1Weight
</expressions>

<expressions Value_MatchedPair_Weight2>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP2_Weight.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X2Weight
</expressions>

<expressions Value_MatchedPair_Complexity1>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP1_Complexity.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X1Complexity
</expressions>

<expressions Value_MatchedPair_Complexity2>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP2_Complexity.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X2Complexity
</expressions>

<expressions Value_MatchedPair_Grootte1>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP1_Grootte.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X1Grootte
</expressions>

<expressions Value_MatchedPair_Grootte2>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (trial.showresponseMP2_Grootte.responsex - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
/ paired = X2Grootte
</expressions>

You have 6 expressions called "correctionvalue", 6 called "correctedscore", 6 called "roundedvalue", 6 called "paired". When you then refer to "expressions.roundedvalue" as in

<data>
/columns =[date ... expressions.roundedvalue]
/format=tab
</data>

how is the software supposed to know which one of those 6 you mean at any given time? You have to give them proper, *unique* names so they can unambiguously identified.

And most of the expressions are redundant anyway (e.g. all 6 expressions.correctionvalue are identical -- you only need one).

What also doesn't make any sense is that you are apparently are trying to calculate a value based on a response property for trials that don't even collect any response

/ correctedscore = (trial.showresponseMP2_Weight.responsex - expressions.correctionvalue) / shape.line.width * 100

<trial showresponseMP2_Weight>
[...]
/ validresponse = (noresponse)
[...]
</trial>

What is the x-coordinate supposed to be for a non-response? You ought to use the responsex property of the <trial> elements that actually *do* collect the respective response:


<trial VAS_MatchedPair2_Weight>
/ stimulusframes = [1=Weight, picture2A, picture2B, leftborder, rightborder, line, leftanchorWeight, rightanchorWeight, middle, exactmiddle]
/ inputdevice = mouse
/ validresponse = (line)
/ branch = [trial.showresponseMP2_Weight]
</trial>

In summary, you can condense things down to a single <expressions> element

<expressions>
/ correctionvalue = (display.width - shape.line.width) / 2
/ correctedscore = (values.x - expressions.correctionvalue) / shape.line.width * 100
/ roundedvalue = format("%.2f", expressions.correctedscore)
</expressions>

with

<values>
/ x = 0
</values>

and setting the above value via

<trial VAS_MatchedPair2_Weight>
/ ontrialend = [values.x = trial.vas_matchedpair2_weight.responsex]
[...]
</trial>

<trial VAS_MatchedPair1_Complexity>
/ ontrialend = [values.x = trial.vas_matchedpair1_complexity.responsex]
[...]
</trial>

and so forth for all the other VAS trials.

Edited 11 Years Ago by Dave
Roel van Dooren
Roel van Dooren
Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)Associate Member (137 reputation)
Group: Forum Members
Posts: 2, Visits: 15
Dear Dave,

thank you very much for your help! I definitely screwed some things up.
It does run properly now!

Kind regards,
Roel

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search