Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Randomisierung x aus y Fragen mit Bedingung vorab

  • Geogrie
  • Geogrie's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 years 6 months ago #189183 by Geogrie
Hi,

ich habe das Forum bereits durchsucht, bin aber bisher nicht fündig geworden. Ich hoffe sehr, dass ihr mir helfen könnt. LS-Version 2.6.7

In meiner Befragung stelle ich 3 aus 10 Fragen randomisiert, das hat über diesen Weg super funktioniert
- 2 Fragegruppen bilden
- Fragegruppe 1 mit 3 der Fragen; in Fragegruppe 2 habe ich die restlichen 7 Fragen gesteckt
- Fragegruppe 1 bekommt Relevanzgleichung =1 und Fragegruppe 2 bekommt die 0.
- Jede Frage ist in der gleichen Randomisierungsgruppe R1

Nun mein Problem : Zu den 10 Fragen gibt es vorab eine Bedingungsfrage (F4): nur wenn die Skala mit 1 bis 5 bewertet wurde soll die Folgefrage aus der Randomisierungsgruppe auch gestellt werden , wenn mit 6 (Kann ich nicht beurteilen ) geantwortet wurde soll die Folgefrage nicht gestellt werden.

Die Bedingung habe ich entsprechend eingestellt (wenn Frage F4 kleiner oder gleich 5 dann Folgefrage F5).

Die Bedingung und die Randomisierung laufen allerdings unabhängig, das heißt die Frage wird zwar nicht angezeigt, allerdings wird auch keine Alternative aus der Randomisierungsgruppe ausgewählt. Es werden daher im schlechtesten Fall 0 aus 10 Fragen angezeigt, obwohl es Fragen aus dem Fragenpool der Randomisierungsgruppe geben würde die gestellt werden dürften.

Was muss ich wo einstellen, damit LS bei so einer Bedingung eine andere Frage aus der Randomisierungsgruppe auswählt?

Ich hoffe ich habe mein Problem so beschrieben, dass man es versteht, und bin für jede Hilfe sehr dankbar.

Liebe Grüße
The topic has been locked.
More
4 years 6 months ago #189184 by orvil
Hallo Geogrie,

vorab eine Frage: Wenn Fragengruppe 2 auf Relevanz 0 steht, sollten diese Fragen doch nicht angezeigt werden? Werden diese in 2.6.7 tatsächlich sichtbar???

Best regards/Beste Grüße,
O. Villani
The topic has been locked.
  • Geogrie
  • Geogrie's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 years 6 months ago #189185 by Geogrie
Hi Orvil,

nein Fragegruppe 2 ist nicht sichtbar, aber die Fragen aus der Gruppe gehören zu der gleichen Randomisierungsgruppe wie die aus Fragegruppe 1 und dadurch werden sie über Fragegruppe 1 angezeigt. Es sollen ja immer nur 3 aus 10 Fragen angezeigt werden.

LG
The topic has been locked.
More
4 years 6 months ago - 4 years 6 months ago #189193 by orvil
Hi,

ich denke die Lösung ist hier zu finden: manual.limesurvey.org/Expression_Manager..._of_the_questions.29

:)

Funktioniert allerdings nur, wenn Fragen gruppenweise dargestellt werden oder FB als Ganzes auf einmal.
Ist das der Fall?

Best regards/Beste Grüße,
O. Villani
Last edit: 4 years 6 months ago by orvil.
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 6 months ago #189205 by holch
Der Randomisierungsansatz funktioniert ja, also brauchen wir da keine zusätzliche Lösung. Kannst dir die Alternative von Orvil aber natürlich trotzdem ansehen.

Was ich nicht ganz verstanden habe ist, was mit der F4 passiert und was die "Folgefrage" ist. Das ist etwas konfus beschrieben.

Meinst du mit "Folgefrage" eventuell die "Folgefragen" aus der weiter oben beschriebenen ersten Fragengruppe? Oder ist diese Folgefrage unabhängig von deinem Radomisierungskonstrukt?

Ich vermute, dass du die beiden Fragengruppen mit den 3 aus 10 Fragen konstrukt nicht anzeigen willst, wenn die Frage davor mit 6 beantwortet wurde, oder sehe ich das falsch?

Idealerweise stellst du einfach eine LSS-Datei mit deinem Beispiel hier ein. Das hilft meist.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
  • Geogrie
  • Geogrie's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 years 5 months ago #189303 by Geogrie
vielen Dank schon einmal für eure Zeit

@Orvil: vielen Dank die Randomisierung funktioniert und da die Befragung mobil optimiert sein soll (soll an 3000 TN gehen) möchte ich die Fragegruppen oder den FB nicht auf einer Seite anzeigen lassen

@Holch:
"Ich vermute, dass du die beiden Fragengruppen mit den 3 aus 10 Fragen konstrukt nicht anzeigen willst, wenn die Frage davor mit 6 beantwortet wurde, oder sehe ich das falsch?"
-> ja ganz genau: es handelt sich um eine Matrix Frage mit 10 Fragen. Es gibt zu jeder der 10 Fragen aus dem 3 aus 10 Konstrukt eine, wenn eine davon mit "6" beantwortet wurde soll sie im 3aus10 nicht angezeigt werden. Sie wird auch nicht angezeigt, nur wählt LS auch keine Alternativfrage aus dem 3aus10 Konstrukt aus, die in der Frage F4allgemein nicht mit 6 beantwortet wurde, daher kann es leicht passieren dass dem Befragten nur 2aus10, 1aus10 oder gar keine Frage angezeigt wird.

Ich hab dir den Fragebogen hier einmal exportiert.

File Attachment:

File Name: limesurvey...2414.lss
File Size:186 KB
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 5 months ago - 4 years 5 months ago #189305 by Joffm
Nein, das geht auch nicht.
Liegt einfach an der Reihenfolge, in welcher LS diese Prozeduren durchführt.

Ich denke, durch Deine Formulierung "Folgefrage" wurden einige in die Irre geführt.

Ich schreibe jetzt ins Unreine.
Du willst nicht "3 aus 10" (dies ist ja einfach zu realisieren durch die beiden Gruppen), sondern Du willst "Höchstens 3 aus den Fragen, die nicht mit 6 beantwortet wurden."

Vor langer Zeit habe ich schon einmal eine Struktur dafür gezeigt; da ich sie sicher nicht mehr finde, werde ich einmal etwas Neues entwickeln. Dauert aber einen Moment.

Im Grunde ist es ziemlich einfach, wenn auch etwas länger.
1. Gleichung, in welcher Du einen string erzeugst, der nur die Repräsentanten der Fragen enthält, die nicht mit 6 beantwortet wurden, z.B.
{join(if(Q1_SQ001!=6,"A",""),if(Q1_SQ002!=6,"B",""),if(Q1_SQ003!=6,"C",""),...
Wenn jetzt die Fragen 1,2,3,7,8 nicht mit 6 beantwortet wurden, sieht der string also so aus: "ABCGH".
2. loop von 1 bis 3
2a.Erzeuge eine Zufallszahl von 1 bis zur Länge des strings
2b. Nimm den entsprechenden Buchstaben aus dem string heraus.

Dann könntest Du folgenden string erhalten haben : "ACH"
Da LS den Operator "!==" nicht kennt, muss noch etwas Feintuning gemacht werden.
Man setzt noch irhgendein Zeichen VOR den string, z.B. "#ACH"

3. Zeige die Folgefragen an mit der Relevanzgleichung
Q2_SQ001: strpos("A",string)>0
Q2_SQ002: strpos("B",string)>0
...


Joffm

Habe mir gerade die Studie einmal angeschaut.
Warum wird immer noch der Bedingungs-Designer genommen statt des Expression Managers?

Und waruum wird die Bedingung "jünger als 40" die ganze Studie über mitgeschleift?
Diese Personen können doch direkt am Anfang herausgeworfen werden mittels Quote (=0)

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 4 years 5 months ago by Joffm.
The topic has been locked.
  • Geogrie
  • Geogrie's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 years 5 months ago #189306 by Geogrie
Hi Joffm,,
vielen vielen Dank, ich hoffe ich darf dir noch etwas mehr von deiner Zeit klauen, denn so ganz komme ich nicht weiter, also eigentlich gar nicht, tut mir sehr leid, hier meine Rückfragen

1. Gleichung, in welcher Du einen string erzeugst, der nur die Repräsentanten der Fragen enthält, die nicht mit 6 beantwortet wurden, z.B.
{join(if(Q1_SQ001!=6,"A",""),if(Q1_SQ002!=6,"B",""),if(Q1_SQ003!=6,"C",""),...
Wenn jetzt die Fragen 1,2,3,7,8 nicht mit 6 beantwortet wurden, sieht der string also so aus: "ABCGH".

->, die Gleichung an sich verstehe ich, wo kommt denn diese Gleichung hin, also bei welcher Frage und an welcher Stelle bei LS?
2. loop von 1 bis 3
-> was meinst du damit?
2a.Erzeuge eine Zufallszahl von 1 bis zur Länge des strings
->Wie geht das und auch wieder, wo müsste ich das einfügen?
2b. Nimm den entsprechenden Buchstaben aus dem string heraus.

Dann könntest Du folgenden string erhalten haben : "ACH"
Da LS den Operator "!==" nicht kennt, muss noch etwas Feintuning gemacht werden.
Man setzt noch irgendein Zeichen VOR den string, z.B. "#ACH"

-> Ab hier hast du mich leider komplett abgehängt
3. Zeige die Folgefragen an mit der Relevanzgleichung
Q2_SQ001: strpos("A",string)>0
Q2_SQ002: strpos("B",string)>0

-> wo muss ich das hier einfügen?
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 5 months ago - 4 years 5 months ago #189310 by Joffm
Hallo,
ich habe doch gesagt, es kommt ein Beispiel.
Ja, dieses Wort "loop". Mir fiel eben nichts anderes ein. Ich dachte wohl, es ist bekannt, da es ja auch in EXCEL.-Macros so heißt.
Soll einfach heißen: Das Folgende wird dreimal gemacht, wie in einer Schleife,


Und dieses war wirklich etwas sophisticated.

Da LS den Operator "!==" nicht kennt, muss noch etwas Feintuning gemacht werden.

Nur zur Erklärung:
Die Funktion "strpos(haystack,needle)" schaut nach, ob die Nadel im Heuhaufen ist, also "strpos("Rucksack","a"), ob "a" in "Rucksack" enthalten ist.
Gut, wenn "Ja", wird die Position des ersten Vorkommens zurückgegeben, hier also "5".
5 ??? Ja, denn die erste Position hat den Index "0".
Wenn der Buchstabe nicht enthalten ist, wird "false" zurückgegeben. Und hierin liegt die Crux.
Denn die hier benutzte Programmiersprache behandelt "false" und "0" ähnlich. Daher kannst Du in die Relevanzgleichung eben "0" schreiben, oder auch "Hund"=="Katze", was offensichtlich falsch ist. Beide Male wird die Frage nicht angezeigt.
Um also zu testen, ob der Zahlwert "0" oder der boolsche Wert "false" gemeint ist, muss man anstatt "==" "===" benutzen; die drei Gleichheitszeichen testen sowohl auf denselben Typ wie auch auf denselben Wert.
Und das ist bei LS nicht implementiert.
Um das alles zu vermeiden, setze ich einfach irgendein Zeichen VOR meinen String; damit hat später ein gefundener Buchstabe mindestens den Wert "1", und ich kann beruhigt auf "0 (= false)" testen.


Dies alles ist aber nur Theorie und muss Dich im Ernstfall nicht kümmern.

Jetzt zum Beispiel:
Darin habe ich der Übersichtlichkeit halber die Anfangsgruppen, die nichts mit dem Problem zu tun haben gelöscht.
Außerdem eine Quote auf die "Alten" gesetzt.

Die gesamten Gleichungsfragen sind im Moment sichtbar (damit Du siehst, was passiert); diese werden natürlich später nicht angezeigt.

Auch wenn es etwas lang aussieht, ist es meiner Ansicht nach ziemlich leicht verständlich.
Es werden ja nur die Funktionen "join" "rand", "strlen", "substr" und "strpos" verwendet.
Bei Bedarf solltest Du sie Dir hier einmal ansehen.
manual.limesurvey.org/Expression_Manager...mplemented_functions

File Attachment:

File Name: limesurvey...14_J.lss
File Size:125 KB


Joffm

P.S.

3. Zeige die Folgefragen an mit der Relevanzgleichung
Q2_SQ001: strpos(string,"A")>0
Q2_SQ002: strpos(string,"B")>0


Dies war offensichtlich falsch, da ich nicht wusste, dass die gesamte Frage (als Matrix) angezeigt, bzw. nicht angezeigt wird.
Dies wird also nicht als Teilfragenrelevanz benutzt, sondern als Relevanzgleichung der gesamten Frage.
Aber im Beispiel ist es richtig.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 4 years 5 months ago by Joffm.
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 5 months ago #189313 by Joffm
Hallo,
jetzt kommt noch etwas Nachgeschobenes zum Text.
1. Einige Dich, wie gut Du Deine Teilnehmer zu kennen glaubst. Soll heißen: "dein" oder "Dein".
2. Auf der Eingangsseite haben wir einmal den Schrägstrich gefolgt von der Kamelschreibweise, und am Ende ist es dann das generische Maskulinum.

Nur so nebenbei
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Geogrie
  • Geogrie's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
4 years 5 months ago #189356 by Geogrie
Hi Joff,

wow, vielen vielen Dank, das hätte ich ohne dich nicht hinbekommen.
Danke für deine Zeit und deine Hilfe, ich freu mich und weiß das echt sehr zu schätzen!!!

Ganz Liebe Grüße


P.S. Und ich melde mich falls ich doch noch Probleme habe ;)
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose