Welcome to the LimeSurvey Community Forum

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

Randomisierungs Probleme

  • NeleAlb
  • NeleAlb's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 11 months ago #198482 by NeleAlb
Randomisierungs Probleme was created by NeleAlb
Hallo,

ich bin gerade am Erstellen einer Studie und eigentlich auch schon relativ weit gekommen.
Nun ergeben sich bei meiner Studie aber Probleme mit der Randomisierung...
Bei mir sollen die Versuchspersonen sich zuerst alle durch den gleichen Fragebogen klicken und erst ab einem gewissen Zeitpunkt in zwei Gruppen aufgeteilt werden.
Dafür habe ich eine Frage mit dem Gleichungstyp erstellt und dort dann diesen Befehl eingegeben: if(randnumber > 0, randnumber, rand(1, 2))
Bei den nachfolgenden Fragegruppen habe ich dann entweder randnumber == "1" eingetragen wenn sie zu der einen Gruppe gehören sollten oder eben randnumber == "2" wenn die Frage zu der anderen Gruppe zugeteilt werden soll.
Nun wird mir bei den einzelnen Fragen in der Gruppe angezeigt, dass die Randomiserung funktioniert (also grüne Schrift bei der Gruppenrelevanz), bei der Fragengruppenübersicht wird mir dann bei der Relevanzgleichung aber angezeigt, dass es nicht funktioniert (rote Schrift). Wenn ich dann aber auf "Umfragelogik für aktuelle Fragengruppe überprüfen" gehe, steht dort, dass die Gruppe keine Syntaxfehler enthält, also alles in Ordnung sei... Dies ist bei allen Fragegruppen nach der Randomisierung der Fall.
Achso ja und wenn ich den Fragbogen dann durch gehen will, klappt das mit der Randomisierung natürlich nicht...
Zudem müssen die Versuchspersonen zu Beginn der Studie einer Einverstädniserklärung (Code E01) zustimmen, dass sie an der Studie teilnehmen möchten. Die Versuchspersonen, die dort Nein auswählen, sollen direkt zum Ende der Studie weitergeleitet werden. Damit dies passiert habe ich bei den ganzen anfolgenden Fragen eingefügt, dass diese Frage nur angezeigt werden soll, wenn Ja ausgewählt wurde (E01.NAOK == "Y"). Dieser Befehl steht also auch noch bei der Relevanzgleichung jeder Gruppe, wird rot angezeigt, aber er funktioniert... Also wenn Nein angeklickt wurde, werden alle Frage überprungen und man gelangt direkt ans Ende.

Hatte schon einmal jemand ein ähnliches Problem und konnte dieses lösen oder kann sich jemand denken woran es liegen könnte? Habe ich vielleicht einfach bei der Randomisierung etwas falsch gemacht...
Ich wäre super dankbar für jede Hilfe!

Ich verwende die Version 3.22.9+200317.

Liebe Grüße :)
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 11 months ago - 3 years 11 months ago #198487 by Joffm
Replied by Joffm on topic Randomisierungs Probleme
Hallo, Nele,

Ich habe die ersten Zeilen gelesen und dachte "Das hat sie ja alles richtig gemacht".
Dann kam aber die Beschreibung des Problems.
Ehrlich gesagt, ich habe dann abgeschlossen, weil ich den unstrukturierten Text nicht mehr erfassen konnte. Liegt zugegebenermaßen schlicht am Alter.

Daher: Schick die Studie als lss.
Da Du ja im Grunde richtig gearbeitet hast, wird es ur eine Kleinigkeit sein.

Bis dann
Joffm

Das habe ich gerade noch gesehen:

Damit dies passiert habe ich bei den ganzen anfolgenden Fragen eingefügt, dass diese Frage nur angezeigt werden soll, wenn Ja ausgewählt wurde (E01.NAOK == "Y").


Das ist unsinnig. Für solche Zwecke dient die Quote.
Du willst doch, dass keine den Fragebogen beantworten, die "Nein" sagen.
Daher schmeißt Du sie gleich raus. Dann bekommen sie auch eine von Dir gewählte entsprechende Meldung zu sehen.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 years 11 months ago by Joffm.
The topic has been locked.
  • NeleAlb
  • NeleAlb's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 11 months ago #198494 by NeleAlb
Replied by NeleAlb on topic Randomisierungs Probleme
Vielen Danke für Deine schnelle Antwort.

Ja, ich habe mein Problem wirklich ein wenig umständlich erklärt. Ich wollte es so ausführlich wie möglich darlegen, damit man vielleicht aus dieser Ausführung schon erkennt, wo das Problem liegt.

Hier meine Iss: C:\Users\Nele\AppData\Local\Temp\limesurvey_survey_395148.lss.xml
Ab dem Gruppennamen "Randomisierung" beginnt das Problem mit der Randomisierung.

Und danke für den Tipp mit der Quote, diese Funktion hatte ich irgendwie übersehen... Habe den Befehl mit E01.NAOK == "Y" aber trotzdem noch nicht komplett aus meinem Fragebogen gelöscht. Ich dachte mir, falls ich eh noch mal etwas an den Relevanzgleichungen ändern muss, kann ich das gleich alles in einem Rutsch erledigen.

Viele Grüße :)
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 11 months ago #198495 by Joffm
Replied by Joffm on topic Randomisierungs Probleme
Hallo, Nele,
Du musst den lss export hier als Attachment anhängen.

Aber irgendwie ist an Deinen Export ein .xml angefügt.
Dann kannst Du diese Datei aber hier nicht anhängen.
Du musst wieder auf nur .lss ändern.
Oder zippe sie einfach.
Bis dann
Joffm

Ich hatte mich nur an den fehlenden Zeilenumbrüchen und Abständen gestört.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • NeleAlb
  • NeleAlb's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 11 months ago #198496 by NeleAlb
Replied by NeleAlb on topic Randomisierungs Probleme
Ich habe nun einen Zip-Ordner angehängt.
Ich hoffe, dass einer der beiden Dateien das Richtige darstellt!


File Attachment:

File Name: limesurvey...5148.zip
File Size:32 KB
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 11 months ago #198506 by Joffm
Replied by Joffm on topic Randomisierungs Probleme
Hallo, Nele,
zunächst das Handwerkliche:
Deine Relevanzgleichungen sind auf zweierlei Weise falsch:
Du hast Folgendes eingetragen:
randnumber=="1",
E01.NAOK=="2",
E01.NAOK=="Y"


1, Das soll doch bedeuten:
(randnumber==1) UND (E01.NAOK=="2") UND (E01.NAOK=="Y")
Dann muss man es auch so hinschreiben: (Wann wird Aussagenlogik in der Schule durchgenommen? ;) )
(randnumber==1) AND (E01.NAOK=="2") AND (E01.NAOK=="Y")


2, Der zweite (rote) Teil ist aber immer noch falsch.
Sicherlich kann E01.NAOK nicht gleichzeitig "Y" und "2" sein.
Du hast diese Frage "E01" als Ja/Nein-Frage implementiert. Daher werden die Antworten als "Y", "N" gespeichert.
Solltest Du unsicher sein, rate ich immer, die Studie oder einen kleinen Beispielteil zu aktivieren, einige wohldefinierte Werte eingeben und dann die Antworttabelle anzuschauen.

Jetzt sind wir bei
(randnumber==1) AND (E01.NAOK=="Y")
Und da Du ja auf E01=="N" eine Quote setzen willst/kannst/solltest, entfällt dies in der Relevanzgleichung auch noch.
Und es bleibt:
(randnumber==1)

Wobei Du natürlich diesen ganzen Text der E01 in den built-in Datenschutz-Text hättest einfügen können. Dann wäre noch nicht einmal eine Quote notwendig.

Joffm

P.S. Sind in den Einleitungstexten bei der Übertragung Buchstaben verschwunden, oder sind das noch einige Tippfehler? Soweit ich es auf die Schnelle gesehen habe, fehlen oft die Buchstabenkombinationen "ft" und "ti".
Guck einmal

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
3 years 11 months ago - 3 years 11 months ago #198508 by MCIstudent20
Replied by MCIstudent20 on topic Randomisierungs Probleme
Hallo zusammen,

auch ich möchte in meinem Fragebogen verschiedene Gruppen in einer Umfrage einbetten.

In meinem Fall soll die Randomisierung aber schon bereits am Anfang des Fragebogens erstellt werden, da von Beginn an alle drei Gruppen unabhängig voneinander behandelt werden sollen.

Es sind also drei verschiedene Fragebögen die über einen randomisierten Link eingeteilt werden sollen. Macht es das vielleicht etwas leichter mit der Programmierung?

Woher ich weiß welchen Code ich verwenden und wo dieser eingefügt werden muss?

Könnt ihr mir hier behilflich sein? Vielen Dank im Voraus und liebe Grüße aus Tirol!
Last edit: 3 years 11 months ago by MCIstudent20. Reason: Spelling mistake
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 11 months ago #198510 by Joffm
Replied by Joffm on topic Randomisierungs Probleme

Es sind also drei verschiedene Fragebögen die über einen randomisierten Link eingeteilt werden sollen

Sind das wirklich drei verschiedene Fragebögen?
Also wie:
FB1 mit dem Thema "Wie pflege ich meine Hamster?"
FB2 mit dem Thema "Einstellungen zur Trockenlegung des Neusiedler Sees"
FB3 mit dem Thema "Bartpflege: Klinge, Nassrasierer, oder Elektrorasierer"

Oder sprichst Du eigentlich von drei Gruppen innerhalb eines Fragebogens.
Das denke ich eher, da Du ja von

Randomisierung aber schon bereits am Anfang des Fragebogens erstellt werden

sprichst.

Wie immer gibt es mehrere Optionen:
1. Du erzeugst in der ersten Frage vom Typ "Gleichung" (soll sie "zufall" heißen) eine Zufallszahl von 1-3, also mit
{if(is_empty(zufall.NAOK,rand(1,3),zufall.NAOK)}

Dann wird in die Gruppenrelevanzgleichung eingetragen, was gelten soll, damit die Gruppe angezeigt wird.
Also "zufall==1", "zufall==2", ...


2. Du hast eine geschlossene Umfrage mit einer Teilnehmertabelle.
Hier könntest Du jedem Teilnehmer ein zusätzliches Attribut "zufall" geben, in welchem die Gruppe steht. Lass deine Oma auswürfeln, in welche Gruppe jeder Teilnehmer fällt.
Dann würden die Relevanzgleichungen heißen:
"TOKEN:ATTRIBUTE_1==1",...

3. Das ist jetzt die Fortgeschrittenenlösung:
Du machst einen ajax call und rufst ein kleines Programm auf, welches die LimeSurvey-Datenbank abfragt und feststellt, wie die Gruppen gefüllt sind. Dann wird die Gruppe mit dem niedrigsten Füllstand zurückgeliefert.
Bedingung: Zugriff auf die Datenbank. Ein bisschen Kenntnisse in MySQL und php.


Und schlussendlich noch ein Hinweis:
Ich persönlich würde nicht eine Zufallszahl von 1-3 erzeugen, sondern eine von 1-30, mit den anfänglichen Gleichungen
Gruppe 1: zufall<11
Gruppe 2: (zufall>10) AND (zufall<21)
Gruppe 3: zufall>20

Begründung: Wenn Du bemerkst, dass eine Gruppe schon fast voll ist, eine andere aber noch ein paar mehr Teilnehmer nötig hat, kannst Du diese Gleichung anpassen, z.B.
Gruppe 1: zufall<13
Gruppe 2: (zufall>12) AND (zufall<23)
Gruppe 3: zufall>22
Damit würden also mehr Personen in Gruppe 1 fallen, dafür weniger in Gruppe 3.

Joffm

P.S. Für den normalen Fall reicht Lösung 1 völlig aus.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: MCIstudent20
The topic has been locked.
  • NeleAlb
  • NeleAlb's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 11 months ago #198539 by NeleAlb
Replied by NeleAlb on topic Randomisierungs Probleme
Hallo Joffm,

vielen Dank für Deine Hilfe, es funktioniert endlich!!

Nur noch eine Frage zu der Gleichungsfrage, über die die Versuchspersonen randomisert werden.
Kann ich die Gleichungsfrage im Fragebogen verstecken, so dass die Versuchspersonen nicht sehen, dass sie einen Wert zugeordnet bekommen?
Momentan sehen die Versuchspersonen ja, dass sie eine 1 oder 2 zugeordnet bekommen und vielleicht können daraus dann einige schon schließen, dass sie gerade einer Gruppe zugeorndet wurden. Das sollte natürlich nicht der Fall sein, damit die Versuchspersonen keine Annahmen über den Untersuchungsgegenstand machen können.
Wenn ich beim Bearbeiten der Frage bei Anzeige auf "Diese Frage immer verstecken" gehe, habe ich das Gefühl, dass die Versuchspersonen dann auch nicht mehr zugeteilt werden. Also dass die Gleichungsfrage ihre Funktion verliert.

Achso und wenn ich den Fragebogen über Umfragenvorschau durch gehe, habe ich das Gefühl, dass mir immer eine 1 zugeteilt wird, also ich immer in Gruppe 1 komme. Liegt das an der Vorschau oder kann man irgendwo auswählen, dass LimeSurvey die Versuchspersonen gleichmäßig verteilen soll?
Oder ist das wirklich einfach nur zufällig und ich muss einfach auf eine gleichmäßige Verteilung der Versuchspersonen hoffen, was ja bei einer Versuchspesonenanzahl über 30 Personen auch der Fall sein sollte.

Viele Grüße
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 11 months ago #198565 by Joffm
Replied by Joffm on topic Randomisierungs Probleme
Hallo, Nele,

Kann ich die Gleichungsfrage im Fragebogen verstecken

Das macht man doch immer; beim testen angezeigt, danach versteckt.
Guck mal, was sich bei "Bearbeiten der Frage" unter dem Punkt "Anzeige" alles versteckt.

LimeSurvey macht das schon richtig.
Und wie Du weißt, ist der Kessel beim Roulette durchaus in Ordnung, wenn fünfmal hintereinander "Rot" kommt.

ich muss einfach auf eine gleichmäßige Verteilung der Versuchspersonen hoffen

Genau, da kommt das "Gesetz der großen Zahl" zum Tragen.
Wie der Name "Zufall" ja sagt, werden die beiden Werte zufällig gezogen.
Aus der Schule kennt man ja das schöne Galton-Brett, bei dem eine Kugel von oben nach unten fällt und in jeder Ebene nach rechts oder links hüpft.
Und dann sieht man unten die binomial verteilte Häufigkeit.

Soll heißen:
Bei 100 Versuchspersonen wirst Du nicht erwarten können, eine genaue 50:50 Verteilung zu bekommen, aber mit einer sehr hohen Wahrscheinlichkeit Werte zwischen 47:53 bis 53:47, während eine Wahrscheinlichkeit für 10:90 zwar berechenbar, aber praktisch vernachlässigbar ist.

Wenn Du also meinetwegen eine Gruppe bereits voll hast, in der anderen fehlen aber noch 4 Personen, kannst Du
  • warten, bis die 4 auch noch da sind. Dadurch würde in der bereits vollen Gruppe eine Overquota entstehen. Das ist aber nicht schlimm, die braucht man sogar, weil man irgendwelche Spinner immer am Ende herausschmeißen muss.
  • Die Relevanzgleichungen ändern: Die volle Gruppe erhält dann z.B. "random==0", die andere "random==1 OR random==2. Damit fallen alle weiteren in die zweite Gruppe

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
3 years 11 months ago #198566 by MCIstudent20
Replied by MCIstudent20 on topic Randomisierungs Probleme
Hallo Joffm,
vielen dank für deine ausführliche Antwort! Du hast Recht - es sind keine drei verschiedenen Fragebögen. Eigentlich sind es dieselben Fragen aber zu 3 verschiedenen Bildern/ Stimuli. Jede der drei Gruppen bekommt ein anderes Bild gezeigt über welches sie die Fragen beantworten sollen.

Zu Beginn habe ich eine Gleichungsfrage {rand(1,3)} erstellt, damit die Gruppen sofort eingeteilt werden können. Gibt es da einen Unterschied zu deinem Vorschlag :({if(is_empty(zufall.NAOK,rand(1,3),zufall.NAOK)}) ?Ich möchte später in SPSS eine MANOVA durchführen und zu Beginn die Gleichverteilung der Gruppen bezüglich Alter, Geschlecht und Bildungsgrad testen- > Hier dachte ich wenn ich also keine Gruppenzuteilung am Anfang habe, könnte ich die verschiedenen Gruppen eventuell bei der Auswertung nicht mehr unterscheiden. Ist das korrekt?

Für diesen Fall habe ich also die Relevanzgleichung { ((Zufall1==1)) OR ((Zufall1==2)) OR ((Zufall1==3))} zu den demografischen Fragen hinzugefügt in der Hoffnung, dass mir später die Ergebnisse zu den demografischen Fragen für jede Gruppe in SPSS einzeln dargestellt werden, obwohl alle dieselben Fragen betrachten.

Dann kommt der Hauptteil des Fragebogens: Jeder Gruppe wird eine fiktive Werbeanzeige gezeigt und hierzu je 4 Fragen zu 4 verschiedenen Themen gestellt ( Health/ Hedonism/ Environment/ Safety) (Matrix mit 4 Sub-Fragen und Likert Skala 1 -7). Hier wusste ich mir nicht anders zu helfen und habe nun jede Frage 3x für jede Gruppe erstellt (dieselben Fragen aber ein anderes Bild dazu hochgeladen) und dann die Relevanzgleichung ((Zufall1==1)) für Gruppe 1 ((Zufall1==2)) für Gruppe 2 ((Zufall1==3)) für Gruppe 3 erstellt. Ich habe nun die Umfrage getestet und die Randomisierung scheint zu funktionieren (Von Beginn an werden mir immer für Gruppe 3 die korrekten Bilder angezeigt). Jetzt bin ich wahrscheinlich einen Umweg gegangen, aber Hauptsache die Daten sind später in SPSS für mich gut verständlich.. Das hoffe ich zumindest. Wird das so funktionieren?

Die Fragen habe ich mit den entsprechenden Codes versehen „TG1Health“ für (Treatment Group 1 Fragen zur Gesundheit)“TG2 Health“ „TG3 Health“ dann „TGG1Hedo“ „TG2Hedo“ usw.

Jetzt muss ich den Fragetypen noch das korrekte Skalenniveau zuordnen, damit SPSS auch die richtigen Tets durchführen kann und nicht nur nominale Werte vergleichen kann.. . Könntest du mir sagen wie ich dieses anpassen kann? Und wie ich die Anzeige meiner Daten in SPSS testen/ anschauen kann bevor ich den Fragebogen aktiviere? Gibt es noch weitere Dinge die ich unbedingt beachten muss?

Ich hoffe ich konnte meinen Fall einigermaßen verständlich erläutern und freue mich über Hilfe und Denkanstöße! Meine Oma in die Arbeit zu integrieren ist eine gute Idee- sie langweilt sich wegen der Ausgangssperre sehr ;-)

Tausend Dank und liebe Grüße!
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 11 months ago #198571 by Joffm
Replied by Joffm on topic Randomisierungs Probleme
Hallo,
zunächst einmal: Wieso hast Du Dich mit Deinem Problem so an den Thread von Nele angeschlossen.
Ich bin mir nicht sicher, ob sie dein Problem jetzt interessiert.
Du sollteste besser einen eigenen Thread dazu aufmachen.

Aber zunächst:

{if(is_empty(zufall.NAOK,rand(1,3),zufall.NAOK)}

Das haben holch und ich in der letzten Woche gefühlte 15Mal beschrieben.
www.limesurvey.org/forum/german-forum/12...esetzt-werden#198509

So, Du machst drei Gruppen, zufällig.
Wie sich das dann auf Geschlecht Bildungsgrad und Alter verteilt, weiß zunächst einmal niemand.
Wenn Du hier eine ziemliche Gleichverteilung in den Gruppen anstrebst, musst Du anders herangehen, nämlich indem Du die Datenbank mithilfe eines ajax calls abfragst und dann aufgrund der bereits existierenden Verteilung die Gruppenzugehörigkeit bestimmst. Das ist

Für diesen Fall habe ich also die Relevanzgleichung { ((Zufall1==1)) OR ((Zufall1==2)) OR ((Zufall1==3))} zu den demografischen Fragen hinzugefügt

Warum das denn? Das heißt doch, dass diese Fragen von allen beantwortet werden. Wozu dann eine Relevanzgleichung?

Für den interessierten Laien:
Eine Frage/Gruppe wird gezeigt, wenn die Relevanzgleichung den Wert logischen Wert WAHR enthält.
Daher wird dort ein aussagenlogischer Vergleich eingetragen, der entweder WAHR oder FALSCH ist.
WENN zufall1 gleich 1 ist, ist der Term WAHR, sonst FALSCH.
Nun ist es aber so, dass in der Programmiersprache folgende Konvention gilt:
Eine numerische "0" wird als FALSCH angesehen, alles andere als WAHR.
Daher steht in Relevanzgleichungen oftmals eine 1 per default, also WAHR; könnte auch 999 sein.
Um also einmal schnell eine Gruppe auszublenden, damit man sich nicht durch die ganze Studie quälen muss um am Schluss etwas zu testen, genügt es eine "0" in die Relevanzgleichung zu schreiebn.

So, das war jetzt viel; dafür habe ich den Rest Deiner Beschreibung auch nicht gelesen.
Es wahr mir - ehrlich gesagt - zu mühsam.

Besser, Du schickst die Studie als lss-Export.
Ein Bild sagt mehr als tausend Worte.

Dann schauen wir weiter.
Bis dann

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose