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
  • dkatsi's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 2 months ago #227178 by dkatsi
Your LimeSurvey version: 3.28.3+220315
==================
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
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 2 months ago - 2 years 2 months ago #227179 by Joffm
Hi, Dima,
in this case you have to access the previous responses.

Is it possible to access the number of responses

For your version 3.x. there is a plugin called "getStatInSurvey"
[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

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. 

In my opinion you should not create question groups for each text, but only 10 (if I understand this corrctly)

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

Then you pipe in the randomly selected texts into the 10 groups.

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
Last edit: 2 years 2 months ago by Joffm.
The following user(s) said Thank You: dkatsi

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 2 months ago - 2 years 2 months ago #227185 by Joffm
Hi, to add something.
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:

The amount of texts to be rated is large

What is large? 50, 500, 5000?

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 years 2 months ago by Joffm.
The following user(s) said Thank You: dkatsi

Please Log in to join the conversation.

  • dkatsi
  • dkatsi's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 2 months ago #227193 by dkatsi
Dear Joffm, 

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.

What is large? 50, 500, 5000?

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. 

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
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 2 months ago #227198 by Joffm
So, you do not want to rate texts, but compare two texts in each group, don't you.

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

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.

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?
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
The following user(s) said Thank You: dkatsi

Please Log in to join the conversation.

  • dkatsi
  • dkatsi's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 2 months ago #227202 by dkatsi
Hello Joffm, 

Are the pairs always static?

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. 

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?

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. 
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
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 2 months ago - 2 years 2 months ago #227210 by Joffm
Here a sample survey with 30 texts and 3 groups.
This is without static pairs.

But you see the idea.
 

File Attachment:

File Name: limesurvey...6881.lss
File Size:1,797 KB



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
Last edit: 2 years 2 months ago by Joffm.
The following user(s) said Thank You: dkatsi

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 2 months ago - 2 years 2 months ago #227213 by Joffm
And here the same for fixed pairs.
 

File Attachment:

File Name: limesurvey...5869.lss
File Size:922 KB

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
Last edit: 2 years 2 months ago by Joffm.
The following user(s) said Thank You: dkatsi

Please Log in to join the conversation.

  • dkatsi
  • dkatsi's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 2 months ago #227248 by dkatsi
That's great. Thank you very much! Static pairs is exactly, what I need. 
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
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 2 months ago - 2 years 2 months ago #227258 by Joffm
As I wrote in my first answer:

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

So this has to be installed.

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
Last edit: 2 years 2 months ago by Joffm.
The following user(s) said Thank You: dkatsi

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 2 months ago #227290 by Joffm
And if I read "IT-Team".
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)
Code:
<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
The following user(s) said Thank You: dkatsi

Please Log in to join the conversation.

  • dkatsi
  • dkatsi's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 2 months ago #227415 by dkatsi

Where and how is your installation hosted?

As I understand, it is a University version and it is hosted by the university.

Maybe you have no rights to insert javascript at all. Did you check this?

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.
Do you have any other ideas to limit the number of responses without javascript? 

Please Log in to join the conversation.

Lime-years ahead

Online-surveys for every purse and purpose