0 votes
in SoSci Survey (dt.) by s185740 (120 points)

Hallo,

ich habe eine Frage bzgl. des Zufallsgenerators/Filtersetzung.

Ich führe ein within-design durch.
Jeder Leser bekommt insgesamt 3 Zeitungsartikel vorgelegt, welche jeweils in den Ausführungen männlich und weiblich hinterlegt sind.

D.h. Stimuli 1 (Zufallsgenerator) = weiblich oder männlich
Stimuli 2 (Zufallsgenerator) = weiblich oder männlich
Stimuli 3 = weiblich oder männlich.

Die Stimuli sind auf verschiedenen Seiten. Nach jedem Stimuli müssen die gleichen Fragenblöcke beantwortet werden.

Der Aufbau sieht also folgendermaßen aus:

Stimuli 1 (w o. m)
Frage 1a
Frage 1b
Frage 1c
Stimuli 2 (w o. m)
Frage 2a
Frage 2b
Frage 2c
Stimuli 3 (w o. m)
Frage 3a
Frage 3b
Frage 3c
....

Mein Problem: Wenn eine Person bei Stimuli 1 und 2 jeweils den weiblichen Artikel bekommen hat, dann MUSS sie bei Stimuli 3 den männlichen Artikel bekommen. Genauso, wenn sie bei Stimuli 1 und 2 den männlichen Artikel bekommen hat, dann MUSS sie den weiblichen Artikel bekommen. Wenn bei Stimuli 1 weiblich und bei Stimuli 2 männlich, dann ist es egal ob bei Stimuli 3 weiblich oder männlich ist.

Nun meine Frage: Wie kann ich die Filterführung für Stimuli 3 so anlegen, dass es auf Stimuli 1 und 2 angepasst wird. Oder gibt es dafür einen HTML oder PHP Code.

Ich finde leider in den ansonsten wirklich super aufbereiteten Hilfe-Seiten von Sosci nicht die Lösung für mein Problem und wäre mega dankbar für Eure Hilfe!

1 Answer

0 votes
by SoSci Survey (320k points)
edited by SoSci Survey

Wenn eine Person bei Stimuli 1 und 2 jeweils den weiblichen Artikel bekommen hat, dann MUSS sie bei Stimuli 3 den männlichen Artikel bekommen.

Wenn Ihre Bedingungen miteinander verknüpft sind, dann legen Sie am besten gleich 3er-Sets in den Zufallsgenerator. In Ihrem Fall ist das ja recht überschaubar:

1,1,2
1,2,1
1,2,2
2,1,1
2,1,2
2,2,1

Heißt, Sie haben nur noch einen Zufallsgenerator und verwenden value(..., 'csv'), um die drei Werte zu bekommen.

by s185740 (120 points)
Funktioniert das aber auch, wenn man die Stimuli nicht direkt hintereinander sehen soll sondern auch andere Fragen jeweils dazwischen kommen sollen?
by SoSci Survey (320k points)
edited by SoSci Survey
Ja, natürlich. Was Sie aus dem Zufallsgenerator ziehen ist eine Zeile ... die steht dann erst einmal im Datensatz. Wo im Fragebogen Sie diesen Wert dann verwenden, das bleibt Ihnen überlassen.

Für die Auswertung ist es aber zielführend, den mittels value(..., 'csv') dekodierten Wert mit putList() noch in 3 interne Variablen zu speichern. Und diese können Sie dann nachher auch einfacher für Ihre Filter verwenden.
by s185740 (120 points)
edited by s185740
Okay, vielen Dank!
Bin noch etwas überfordert damit und weiß nicht ganz wie ich das machen muss.. Die Stimulidateien sind auch alles Bilddateien, die ich davor hochgeladen habe.
Ich lege also nur einen Zufallsgenerator an und schreibe dieses valueCSV() in das php Feld oder html Feld?
Bzw. wo muss ich das eintragen?
Und wie speicher ich die dekodierten Werte in interne Variablen?

Vielen Dank schon mal für die Hilfe! Habe so etwas noch nie gemacht..
by SoSci Survey (320k points)
Legen Sie mal den Zugfallsgenerator an wie oben beschrieben und sehen Sie sich die Anleitung zu value(..., 'csv') an. Ich hatte die Funktion oben fälschlicherweise als valueCSV() bezeichnet. Ich glaube, dann wird es schonmal ein wenig klarer.

Und dann sehen Sie sich bitte an, wie man die Randomisierung mit PHP-Code umsetzt. Vor allem die Bilder.

Und dann unterhalten wir und nochmal darüber, an welcher Stelle Sie nicht weiterkommen.
by s185740 (120 points)
Okay vielen Dank Ihnen schon mal! EIne Frage bevor ich das anlege: muss ich bevor ich das value (csv) anlege schon die internen Variablen erstellt haben?
by SoSci Survey (320k points)
Die interne Variable brauchen Sie, damit Sie mittels putList() die einzelnen Codes in den Datensatz schreiben können. Falls Sie also den PHP-Code nicht Stück-für-Stück schreiben und testen, wäre es sinnvoll, die drei internen Variablen gleich vorab anzulegen :)
by s185740 (120 points)
Okay, das heißt ich lege im Fragenkatalog eine neue "Frage" (interne Variable an) und schreibe dann
Stimulus 1
Stimulus 2
Stimulus 3
rein oder wie? bzw. muss ich die codieren?
by SoSci Survey (320k points)
Genau - eine Frage "interne Variablen" und darin drei Variablen (=Items). Die Beschriftung ist nur insofern relevant, als sie später dann als Variablen-Label in Ihrem Datensatz auftaucht.
by s185740 (120 points)
Bräuchte ich dann aber nicht sechs Variablen?
Also
Stimulus1_weiblich
Stimulus1_maennlich
Stimulus2_weiblich
Stimulus2_maennlich
Stimulus3_weiblich
Stimulus3_maennlich
damit ich später im Datensatz zuordnen kann? Oder reicht eine Variable pro Stimulus und man kann später die Ausprägung (ob weiblich oder maennlich) sehen?
by SoSci Survey (320k points)
Wenn Sie z.B. diesen Zettel ziehen:

1,1,2

Dann wird in die drei Variablen gespeichert:

01 => 1
02 => 1
03 => 2

Damit haben Sie alles, um den richtigen Stimulus anzuzeigen und später die Daten auszuwerten.
by s185740 (120 points)
Okay ich habe jetzt drei interne Variablen erstellt. Und nun?
by s185740 (120 points)
Ich hoffe das ist nicht zu viel verlangt, aber könnten Sie mir bitte erklären, wie ich Schritt für Schritt vorgehen muss, bzw. was ich als erstes machen muss und wo ich was einfügen muss.

Ich habe nun drei interne Variablen erstellt und einen Zufallsgenerator angelegt, der folgendermaßen aussieht:

1 = Stimulus1_weiblich.png, Stimulus2_weiblich.png, Stimulus3_maennlich.png
2 = Stimulus1_weiblich.png, Stimulus2_maennlich.png, Stimulus3_weiblich.png
3 = Stimulus1_weiblich.png, Stimulus2_maennlich.png, Stimulus3_maennlich.png
4 = Stimulus1_maennlich.png, Stimulus2_weiblich.png, Stimulus3_weiblich.png
5 = Stimulus1_maennlich.png, Stimulus2_weiblich.png, Stimulus3_maennlich.png
6 = Stimulus1_maennlich.png, Stimulus2_maennlich.png, Stimulus3_weiblich.png

Ist das richtig?

Wie muss ich nun weiter vorgehen? Ich habe mir zwar die Seiten zu value und Randomisierung durchgelesen, aber steige da nicht durch, was ich nun machen muss.

Vielen vielen Dank!!
by SoSci Survey (320k points)
Soweit ist das in Ordnung - wobe ich persönlich numerische Codes statt der kompletten Dateinamen verwendet hätte. Aber das ist Geschmackssache.

Bitte folgen Sie nun der Anleitung https://www.soscisurvey.de/help/doku.php/de:create:randomization-mehrfaktoriell, um das gezogene Tupel in den internen Variablen ablegen.

Danach geht es dann mit replace() weiter. Dazu können Sie sich schonmal die Anleitung zu Platzhlatern zu Gemüte führen. Sobald Sie irgendwo nicht weiterkommen, posten Sie bitte den PHP-Code, den Sie bis dahin ausprobiert haben. Vorzugsweise in einer neuen Frage (z.B "related question" oben), denn hier unten wird es langsam unübersichtlich :)
by s185740 (120 points)
Also bisher habe ich diesen php Code: putList('IV01', value('ST01', 'csv');

$code = value('ST01');  // Auslesen der gezogenen Zufallszahl
 
// Grafikdatei in Abhängigkeit von der Zufallszahl in einen Platzhalter schreiben
if ($code == 1) {
  replace('%dateiname%', 'Stimulus1_weiblich.png');
} elseif ($code == 2) {
  replace('%dateiname%', 'Stimulus1_maennlich.png');
} elseif ($code == 3) {
  replace('%dateiname%', 'Stimulus2_weiblich.png');
} elseif ($code == 4) {
  replace('%dateiname%', 'Stimulus2_maennlich.png');
} elseif ($code == 5) {
  replace('%dateiname%', 'Stimulus3_weiblich.png');
} elseif ($code == 6) {
  replace('%dateiname%', 'Stimulus3_maennlich.png');
}
// Den HTML-Code kann man direkt einbinden oder (hier nicht gezeigt) als Textbaustein
html('<p><img src="%dateiname%"></p>');

auf derselben Seite des Fragebogens wie der Zufallsgenerator eingefügt.
php-Code zuerst, dann Zufallsgenerator.

Ist das richtig?

Mir werden direkt zwei Warnungen angezeigt:

Warnung (Seite 8)
Die Variable ST01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

Warnung (Seite 8)
Die Variable ST01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
by SoSci Survey (320k points)
Die erste Zeile passt noch. Die zweite Zeile liefert die komplette Kombiniation. Da sollten Sie anstatt dem kompletten PHP-Code ein replace() verwenden, wenn Sie die Dateinamen ohnehin schon in der Liste haben:

putList('IV01', value('ST01', 'csv');
replace('%dateiname%', 'IV01_01', 'response');
html('<p><img src="%dateiname%"></p>');

Sehen Sie sich parallel dazu einmal die Debug-Information (rechts oben) an.
by s185740 (120 points)
edited by s185740
Die Debug Informationen sagen folgendes:

[Information]    Interview gestartet (neue Nummer 70)
[Information]    Der Fragebogen base im Projekt masterarbeit wird verwendet
[Verarbeitung]    Erstelle Seite 8 in Fragebogen base
[Information]    value("ST01") = [""]
[Information]    Die interne Variable IV01_01 wird mit dem Wert belegt.
[Information]    value("ST01") = ???
[Inhalt]    Erstelle Frage ST01
[Information]    Vom Zufallsgenerator ST01 wurden folgende Codes gezogen: 5
[Information]    Folgende Platzhalter sind vorbereitet:
%dateiname% = (Text)

ZUSÄTZLICH kommt die Warnung: Die Variable ST01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.
by SoSci Survey (320k points)
Es scheint als hätten Sie den Zufallsgenerator unter dem PHP-Code platziert. Bitte ändern Sie die Reihenfolge, damit erst eine Kombination gezogen wird - erst danach kann diese mittels value() ausgelesen werden.
by s185740 (120 points)
Habe es mittlerweile alles hinbekommen :) Vielen Dank für die Hilfe!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...