Vous ne pouvez pas, nativement, créer de conditions expérimentales à l’intérieur de Limesurvey. Vous avez donc deux solutions à votre disposition, en fonction de votre nombre de conditions et du nombre de participants envisagé.
La technique est la même pour les deux configurations, fabriquer une question qui ne sera pas affichée et qui va enregistrer un nombre aléatoire qui déterminera ensuite la condition d’affichage de la condition (le ou les groupes de questions).
Solution 1 #
Vous pouvez donc créer une question de type EQUATION, ici nommée randomisation et mettre cette formule dans Logique. La qualité du tirage aléatoire n’est pas mauvaise et on obtient généralement une bonne répartition entre groupe, et d’autant plus que votre échantillon est important. Le problème de cette solution est que le tirage ayant lieu à chaque participant sans tenir compte de ce qui s’est passé avant, il y a toujours la possibilité que les groupes soient au final déséquilibrés.
{if(is_empty(randomisation),rand(1,4),randomisation.NAOK)}
Il n’y aura plus ensuite qu’à écrire une condition de type randomisation == 1 (ou n’importe quelle valeur entre 1 et 4 dans notre exemple).
Solution 2 #
L’autre solution est relativement similaire dans l’idée, mais elle s’assure que le tirage ne sera pas complètement aléatoire et se répartira groupe pas groupe à chaque passation en s’appuyant sur le numéro de participant (donc pas un tirage tout à fait nouveau à chaque passation). Il y a un petit défaut également à cette méthode, tous les questionnaires commencés ont un numéro d’identification et sont donc considéré comme ayant été finis.
Il faut pour ça créer une question ENTREE NUMERIQUE et mettre à la place de la question, en passant en mode script, le petit script suivant. Il faut en revanche remplacer les numéros de questionnaire/groupe/question.
Vous les trouvez dans l’adresse affichée par votre navigateur : admin/questions/sa/view/surveyid/991685/gid/3544/qid/99339
Vous les indiquez ensuite aux emplacements suivants.
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
var submitID = parseInt({SAVEDID});
$('#question99339').hide();
var conditionNumber = (submitID % 2) + 1;
answer991685X3544X99339.value = conditionNumber; });
</script>
La question doit être obligatoire mais en revanche le script la masque automatiquement (.hide).
Cette question doit nécessairement se trouver dans un groupe de questions avec au moins une autre question (une validation de consentement par exemple) afin que l’enregistrement puisse se faire.
Cette solution ne fonctionne pas lorsque le questionnaire n’est pas activé.
Affichage conditionnel #
Il faut ensuite, pour chaque question ou groupe de question, ajouter un filtre conditionnel qui déterminera quand la question s’affiche. Dans cet exemple, “rand” est l’identifiant de la question qui accueille le script et 3 la condition dans laquelle s’affiche la question ou le groupe de question.
((( ! is_empty(rand.NAOK) && (rand.NAOK == 3))))
Il est également possible de simplement exclure une question d’une condition avec l’opérateur “n’est pas” : !=
((( ! is_empty(rand.NAOK) && (rand.NAOK != 3))))