- Posts: 6
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Limit the number of responses per question Group
- dkatsi
- Topic Author
- Offline
- New Member
==================
Hi,
I am creating a large survey where participants are asked to rate different "texts" (but always with the same set of questions). The amount of texts to be rated is large, so we would like to ask the participants to rate only 10 randomly selected texts each. For each of the texts, we need responses of maximum 5 participants.
To do this, I create a pool of question groups (all with the same questions, but on different texts). I have found a solution to display 5 random question groups.
The only thing I'm trying to solve right now is the limit of 5 responses per question group/per text. The solution with the quotas helps me keep track of the number of responses per question group. However, it terminates the entire survey when one of the groups is "full". The participants have no way to finish the survey and rate the remaining texts that may not have 5 responses.
Ideally, I would like to set the relevance to 0 for the question groups that have their 5 responses. Is there a solution or workaround to this desing issue? Is it possible to access the number of responses in the Relevance equation?
Thank you for your help and support.
Best regards, Dima
Please Log in to join the conversation.
- Joffm
- Away
- LimeSurvey Community Team
- Posts: 13260
- Thank you received: 4079
in this case you have to access the previous responses.
For your version 3.x. there is a plugin called "getStatInSurvey"Is it possible to access the number of responses
[url] github.com/SondagesPro/LS-getStatInSurvey [/url]
But now some other ideas:
Is it an open or a closed survey?
closed:
you could predefine the distribution by an attribute.
open:
the easiest way is to wait till there are 5 responses in each group and delete the overquota randomly or "last in - first out"
or you watch the distribution and manually set the relevance equation of full groups to "0"
This is your own idea
Ideally, I would like to set the relevance to 0 for the question groups that have their 5 responses.
Anyway:
Please, provide a prototype of your survey as lss export.
But a shortened version that we see your design.
Though I do not exactly know your design I should say
In my opinion you should not create question groups for each text, but only 10 (if I understand this corrctly)To do this, I create a pool of question groups (all with the same questions, but on different texts). I have found a solution to display 5 random question groups.
Then you pipe in the randomly selected texts into the 10 groups.The amount of texts to be rated is large, so we would like to ask the participants to rate only 10 randomly selected texts each
And therefore we often ask for a lss export of the survey structure.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Please Log in to join the conversation.
- Joffm
- Away
- LimeSurvey Community Team
- Posts: 13260
- Thank you received: 4079
With this mentioned plugin it is really easy.
But please send your lss that we see how you implemented the relevance of the groups.
Joffm
By the way:
What is large? 50, 500, 5000?The amount of texts to be rated is large
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Please Log in to join the conversation.
- dkatsi
- Topic Author
- Offline
- New Member
- Posts: 6
- Thank you received: 0
thank you very much for your answer and the ideas. Please find an example of our survey attached.
The solution with the plugin would be great. For this I need to see how to access the LimeSurvey directory and install it, since I've been working mostly with the web version so far. Probably I need to contact the IT team that manages Limesurvey.
It will be two open surveys with about 1000-1500 texts each. Changing the relevance manually could be very exhausting. That's why I'm looking now for an automatic or alternative solution.What is large? 50, 500, 5000?
The idea with piping the texts would be awesome. But I'm afraid I don't know much about that. Do you maybe have a good example?
Best,
Dima
Please Log in to join the conversation.
- Joffm
- Away
- LimeSurvey Community Team
- Posts: 13260
- Thank you received: 4079
Are the pairs always static? Meaning you have a pool of pairs where you select from?
Or do you combine the texts at random? This is quite different,as you have to avoid to display the same text twice in a question.
You wrote
Even assuming that the different order "Text A vs. Text B" and "Text B vs. Text A" is not taken into account, how can you create one group for each possible combination?To do this, I create a pool of question groups (all with the same questions, but on different texts). I have found a solution to display 5 random question groups.
It will be two open surveys with about 1000-1500 texts each.
Consider this:
[url] manual.limesurvey.org/General_FAQ/en#MySQL_and_MariaDB [/url]
So you have to find a different way. As said "tayloring " / "piping"
If you want to pipe texts, you may read here
[url] manual.limesurvey.org/ExpressionScript_H...7BMrs.7D_Smith....22 [/url]
[url] manual.limesurvey.org/ExpressionScript_s...loring_and_Equations [/url]
What you can to do is:
Create a place to store the texts (could be one or more question(s) of type "huge text"), where you store the texts as default answer (all texts right padded to the same length)
Create two places to store the two displayed texts (could be a question of type "list(radio)"
Now:
After the participant starts the survey you count the previous selections of texts and add all where the count is less than 5.
You shuffle the array and use the first two elements to grab the first two texts from the text question (functions "substr" and "trim")
The next two elements for the next two texts, and so on.
Even here you may run into troubles.
1. I used a list(radio) question with 1000 answer options.
If you can do this depends on the setting of "max_input_vars" in your php installation.
Then you have to split these questions.
2. In a question of type "huge text" you can save 64kB.
So you probably have to split this question, too.
3. Your analysis will need a lot of restructuring the dataset.
Later I will send a sample survey.
Joffm
P.S.
It is not advisable to import a group several times. You see that the question codes now are random strings (because of key collisions)
And another thing.
To display the two texts side by side use the bootstrap classes ".row" and ".col-md-6". LimeSurvey is based on bootstrap.
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Please Log in to join the conversation.
- dkatsi
- Topic Author
- Offline
- New Member
- Posts: 6
- Thank you received: 0
Sorry, that was probably not so clear from my side. The pairs are static, so we are comparing two texts from one case. We have many cases and, as you said, a pool of pairs to choose from.Are the pairs always static?
Thanks for pointing out the size. I saw that too, that is why I wanted to reduce the number of text pairs to evaluate. And on top of that, possibly to split the survey.Even assuming that the different order "Text A vs. Text B" and "Text B vs. Text A" is not taken into account, how can you create one group for each possible combination?
I created a sample question group, exported it and generated the entire survey with a script based on that. This worked well In the first version of the survey and I could easily import the survey without importing individual question groups. But now we have more pairs, and as I said, manually adjusting the relevance got me thinking about how to automate this.
Best,
Dima
Please Log in to join the conversation.
- Joffm
- Away
- LimeSurvey Community Team
- Posts: 13260
- Thank you received: 4079
This is without static pairs.
But you see the idea.
Next I will change it to static pairs.
If now the pairs are well defined, do you want to show the texts in different order
a. Text 1 - Text 2
b. Text 2 - Text 1
By the way:
Is it a 11-point scale as you display or a 6-point scale as in the subquestion text?
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Please Log in to join the conversation.
- Joffm
- Away
- LimeSurvey Community Team
- Posts: 13260
- Thank you received: 4079
If you would like to have a randomization of the text of each pair you may double the groups (G1a: Text 1 - Text 2, G1b: Text 2 - Text 1) and use a random number to decide which of the two you display.
In my opinion the easiest way to get dataset that is easy to analyze.
Don't forget to add the css class "hidden" to QValues.
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Please Log in to join the conversation.
- dkatsi
- Topic Author
- Offline
- New Member
- Posts: 6
- Thank you received: 0
I have looked at it and I think I understand the principle. I imported the survey and tried it, but unfortunately, it doesn't work. It always shows the same text (the last one). Can this be because the plugin is not installed yet? I'm still waiting for the answer from the IT team.
Please Log in to join the conversation.
- Joffm
- Away
- LimeSurvey Community Team
- Posts: 13260
- Thank you received: 4079
So this has to be installed.in this case you have to access the previous responses.For your version 3.x. there is a plugin called "getStatInSurvey"
github.com/SondagesPro/LS-getStatInSurvey
Of course there is a solution without plugin to select 5 out of X, but it requires some manual intervention (not too much).
But to be honest: I do not like to discuss this with a language gap.
Seeing your survey I suppose you speak German.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Please Log in to join the conversation.
- Joffm
- Away
- LimeSurvey Community Team
- Posts: 13260
- Thank you received: 4079
Where and how is your installation hosted?
Maybe you have no rights to insert javascript at all. Did you check this?
You can do by inserting this small snippet in the question text (in source code mode)
<script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ alert("Hallo, hier spricht javascript"); }); </script>
But don't worry, there is a solution without any javascript.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Please Log in to join the conversation.
- dkatsi
- Topic Author
- Offline
- New Member
- Posts: 6
- Thank you received: 0
As I understand, it is a University version and it is hosted by the university.Where and how is your installation hosted?
I just checked it. I run the javascript test and receive the alert box. However, the rest of the javascript code does not work. Also, the plugin is not installed yet. I hope the university can still unlock this for me.Maybe you have no rights to insert javascript at all. Did you check this?
Do you have any other ideas to limit the number of responses without javascript?
Please Log in to join the conversation.