Custom likert scale issue with timing


Author
Message
Bigscoots
Bigscoots
Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)
Group: Forum Members
Posts: 6, Visits: 1

After browsing these forums I came across the custom likert scale and looked to be a good starting place for what I am trying to do. After a bit of modification I got it 'almost' to where I need, but am still left with a few issues.


My goal is to have a likert scale where I can monitor the test takers reaction time to each question. In an ideal world I would have a likert scale where the user will have a maximum of 5 seconds to select a choice from 1-9 using the kayboard and their selection is simply logged when the 5 second time limit expires. Their latency would be recorded when the last number selected.


Because I was having issues accomplishing this, I wrote this:



<defaults>


  /screencolor = (255, 255, 255)


  /fontstyle = ("Arial", 2%)


</defaults>



<expt>


/blocks = [1=customlikert]


</expt>



<values>


/ score = 5000


</values>



<block customlikert>


/ trials = [1 = sequence(customkeyboard)]


/timeout = 5000


</block>




<trial customkeyboard>


  / stimulusframes = [1=scale, l1, b1, b2, l3, b3, b4, l5, b5, question]


  / inputdevice = keyboard


  / validresponse = ("1", "2", "3", "4", "5")


/ responsetime = 500


/posttrialpause = 5000 - trial.customkeyboard.elapsedtime


</trial>



<text question>


/ items = question


/ select = noreplace


/ position = (50%, 35%)


/ fontstyle = ("Arial", 18pt, false, false, false, false, 5)


</text>



<item question>


  /1 = "I am the walrus."


  /2 = "We're all just bricks in the wall."


  /3 = "I can't get no satisfaction."


  /4 = "Don't need a weather man to know which way the wind blows."


  /5 = "All you need is love."


</item>



<text l1>


/ items = ("strongly disagree")


/ position = (30%, 50)


/ size = (5%, 5%)


/ erase = false


</text>



<text l3>


/ items = ("neutral")


/ position = (50%, 50%)


/ size = (5%, 5%)


/ erase = false


</text>




<text l5>


/ items = ("strongly agree")


/ position = (70%, 50%)


/ size = (5%, 5%)


/ erase = false


</text>




<picture b1>


/ items = ("b1.jpg")


/ position = (30%, 55%)


/ size = (5%, 5%)


/ erase = false


</picture>



<picture b2>


/ items = ("b2.jpg")


/ position = (40%, 55%)


/ size = (5%, 5%)


/ erase = false


</picture>



<picture b3>


/ items = ("b3.jpg")


/ position = (50%, 55%)


/ size = (5%, 5%)


/ erase = false


</picture>



<picture b4>


/ items = ("b4.jpg")


/ position = (60%, 55%)


/ size = (5%, 5%)


/ erase = false


</picture>



<picture b5>


/ items = ("b5.jpg")


/ position = (70%, 55%)


/ size = (5%, 5%)


/ erase = false


</picture>



<picture scale>


/ items = ("scale.jpg")


/ position = (50%, 55%)


/ size = (40%, 40%)


/ erase = false


</picture>



<instruct>


/ nextkey=(" ")


/ nextlabel = "Press [SPACEBAR] to continue."


/ fontstyle = ("Arial", 3%)


</instruct>




Specifically I cannot get: posttrialpause = 5000 - trial.customkeyboard.elapsedtime to work properly. I cut a few corners from my original plan because I assumed my original idea was not possible. Now my goal is to simply have each questions total time be 5 seconds and have the posttrialpause account for the difference between when they responded and the 5 second allotment.


Any and all help would be appreciated, thank you.



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

Why don't you simply set /trialduration to 5000?


Bigscoots
Bigscoots
Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)
Group: Forum Members
Posts: 6, Visits: 1

Thanks for the reply, I apologize it was late and I don't think I explained myself concise enough :S


The overall goal is to have each question last a total of 5 seconds, no more or less. If you set /trialduration = 5000 then you run into the issue with trials ending early as the users answer at different times. The point of this is to be able to adjust the surveys to last a specific amount of time with everyone finishing at pretty much identical times.


Ideally the user would be able to switch their choice within that 5 seconds, but if we have to we can also end their selection ability after they pick and simply have a delay for the remaining time out of the original 5000.


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

If you set /trialduration = 5000 then you run into the issue with trials ending early as the users answer at different times


No. Trialduration *fixes* the trial's duration to 5000ms, regardless of when a subject responds.


Bigscoots
Bigscoots
Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)
Group: Forum Members
Posts: 6, Visits: 1

Holy crow, you have to be kidding me...


I'm not going to divulge how many hours I've spent trying to accomplish this. With that said /trialduration also appears to work in likert, so while this works in my custom likert set up, now I am thinking I can revert to my original plan.


Is there anyway you know of to 'lock in' a selection using a likert? What I mean by that is that they make choice X using the keyboard and eliminates the possibility of being able to make another selection, but ENTER at no point in time is required. As you laid out in another thread, I think to not have to use enter you need to use the custom likert.


OR allow them to flip-flop between selections but the /trialduration timeout be what logs their response also using the likert? In this scenario I would also need to be able to track the time it took them to make their final selection. i.e. User X is given a question, picks 3, changes mind to 4, has 3 seconds of his 5 remaining, 3 seconds later it times out. In the output I would be able to see how long it took him to pick 4 from when the question was given.



Also... Dave for president! :D


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

Is there anyway you know of to 'lock in' a selection using a likert? What I mean by that is that they make choice X using the keyboard and eliminates the possibility of being able to make another selection, but ENTER at no point in time is required.


No, this isn't possible with <likert> elements.


OR allow them to flip-flop between selections but the /trialduration timeout be what logs their response also using the likert?


Again, no. In Inquisit, a <trial> (<likert> is just a special kind of <trial>) collects a *single* response. I.e., you'd have to effectively run multiple trials in a row to do this. This is an advanced topic, you can get an example for something like this here: http://www.millisecond.com/forums/Topic6989.aspx#6989.


Bigscoots
Bigscoots
Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)
Group: Forum Members
Posts: 6, Visits: 1

Given the relatively low noise associated with 'picking a 3 and actually wanting a 2' I can't imagine the effort put into getting that in depth would be worth the trade off. Instead I will focus on perfecting what we have.


I appreciate all the help Dave, thanks again!


Bigscoots
Bigscoots
Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)
Group: Forum Members
Posts: 6, Visits: 1

Things are going pretty smooth at the moment, but another question...


So at the end of each trial for my custom likert scale I need the text to remain there for the full 5 seconds. What I did was a simple /erase = false, however this prevents the text from ever being erased and therefore overlap occurs. I found a solution in the Index file suggesting to replace the current text with a white text/blackground identical version of active text, but I am unable to get it working properly - I tried a white square (my background is white) as well but I can't seem to get the /ontrialend = [shape] working right either.


Any help would be appreciated. Thanks again.


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

I can't seem to get the /ontrialend = [shape] working right either.


You can't draw stuff to the screen via /ontrialend.


So at the end of each trial for my custom likert scale I need the text to remain there for the full 5 seconds. What I did was a simple /erase = false, however this prevents the text from ever being erased and therefore overlap occurs.


Setting /erase to false is the right thing to do. Now you only need to draw a blank stim at the *start* of every trial (i.e., 1st item in your /stimulusframes) which will overwrite anything left over from the preceding trial.


Bigscoots
Bigscoots
Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)Associate Member (80 reputation)
Group: Forum Members
Posts: 6, Visits: 1

You are the man good sir, 2 second fix as per usual :D


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search