0 votes
in SoSci Survey (dt.) by s233924 (110 points)
edited by s233924

Hallo, ich mache ein Online-Experiment, in dem ich alle Teilnehmenden zu Beginn randomisiert zu einer Treatment und einer Kontrollgruppe mit einem Zufallsgenerator zuordne. Dann möchte ich, dass nach Beantworten einiger Fragen alle in der Treatmentgruppe, die als Geschlecht weiblich angeben bestimmte Bilder gezeigt bekommen und alle, die männlich angeben andere bestimmte Bilder gezeigt bekommen. In der Kontrollgruppe sollen neutrale Bilder gezeigt werden

Ich habe es durch die Filterfunktion geschafft, dass bei Anklicken von weiblich später die Frauenbilder und durch Anklicken von männlich später Männerbilder kommen. Aber ich schaffe es nicht den Zufallsgenerator am Anfang damit zu verknüpfen. Denn nur meine Treatmentgruppe soll nach weiblich/männlich diese Bilder gezeigt bekommen und meine Kontrollgruppe soll separate neutrale Bilder gezeigt bekommen. Ich habe versucht nach dem Zufallsgenerator einen Code zu schreiben, der alle aus der Treatmentgruppe zur nächsten Seite mit der Geschlechtsfrage bringt und der dafür sorgt, dass alle aus der Kontrollgruppe nicht die Geschlechtsfrage sehen und später die neutralen Bilder bekommen. Aber das funktioniert nicht. Ich weiß nicht, wie man diesen Code schreiben kann.

Wie schaffe ich das?

Ich habe es am Anfang über einen großen PHP-Code versucht, habe aber immer Fehlermeldungen bekommen. Jetzt klappt es einzeln über den Zufallsgenerator die Randomisierung und durch die Filterfunktion die Zuordnung der Bilder, aber nach dem Zufallsgenerator werden alle zur Geschlechtsfrage weitergeleitet und die Kontrollgruppe wird nicht separat mit den neutralen Bildern bedient.

Es wäre super, wenn jemand weiterhelfen könnte! Ich sitze leider schon echt lange daran und verzweifle immer mehr...

by SoSci Survey (330k points)
Wie heißt denn die Variable Ihres Zufallsgenerators und wie sieht Ihr PHP-Code aus, welcher die männlichen/weiblichen Bilder zeigt? Oder haben Sie das bisher über einen Frage-Filter gelöst?
by s233924 (110 points)
Am Anfang habe ich einen Zufallsgenerator eingebaut mit 1 = Treatment und 2 = Kontrollgruppe. Das Zeigen der männlichen/weiblichen Bilder habe ich aktuell durch die Filter-Frage gelöst. Davor habe ich es mit einem PHP-Code probiert, der alles integriert hat, da kamen aber viele Fehlermeldungen. Daher habe ich es dann über die Filterfunktion erfolgreich gelöst. Jetzt fehlt mir aber noch ein Code, der nach dem Zufallsgenerator dafür sorgt, dass alle aus der Treatmentgruppe zur Geschlechtsfrage kommen (dann durch den Filter zu den entsprechenden Bildern) und die Personen aus der Kontrollgruppe nicht zur Geschlechtsfrage kommen und später die neutralen Bilder sehen. Mein aktueller Code bisher ist:

if(!isset($BA08)) {
    $BA08 = random(1, 2);
    put('BA08', $BA08);
}

if($BA08 == 1) {
    header('Location: BA05.php');
    exit;
} elseif($gruppe == 2) }
    header ('Location: BN.php');
    exit;
}

Dabei steht BA08 für die Gruppenzuordnung, BA05 die Geschlechtsfrage und BN die neutralen Bilder. Es gibt aber die Fehlermeldung, dass man header nicht verwenden kann. Daher muss der Code irgendwie anders geschrieben werden.Ich weiß auch sonst nicht, ob der Code so plausibel ist.

Ist das generell sinnvoll es mit dem Zufallsgenerator am Anfang und dann mit einem Filter zu machen oder sollte man lieber einen großen PHP-Code schreiben, der alles integriert? Das habe ich am Anfang so versucht, aber bin leider nicht weitergekommen...
by s233924 (110 points)
Mein langer PHP-Code, den ich am Anfang probiert habe, der aber leider nicht geklappt hat, war:

// Gruppenzuweisung: 1 = Treatment, 2 = Kontrollgruppe
if (!isset($gruppe)) {
    $gruppe = random(1, 2); // Zufällige Zuweisung
    put('gruppe', $gruppe); // Speichert die Gruppenzuweisung
}

// Geschlecht abrufen
$BA01 = value('BA01'); // Holt den Wert der Geschlechtsfrage
put('BA01', $BA01); // Speichert das Geschlecht

// Initialisierung der Bilderliste
$bilder = []; // Leere Liste für Bilder

// Bilderliste basierend auf Geschlecht und Gruppe zuweisen
if ($BA01 == 1) { // Männlich
    if ($BA08 == 1) { // Treatment-Gruppe
        $bilder = ['ideal_male_1.jpg', 'ideal_male_2.jpg', 'ideal_male_3.jpg'];
    } else { // Kontrollgruppe
        $bilder = ['neutral_1.jpg', 'neutral_2.jpg', 'neutral_3.jpg'];
    }
} elseif ($BA01 == 2) { // Weiblich
    if ($BA08 == 1) { // Treatment-Gruppe
        $bilder = ['ideal_female_1.jpg', 'ideal_female_2.jpg', 'ideal_female_3.jpg'];
    } else { // Kontrollgruppe
        $bilder = ['neutral_1.jpg', 'neutral_2.jpg', 'neutral_3.jpg'];
    }
} elseif ($BA01 == 3) { // Divers
    if ($BA08 == 1) { // Treatment-Gruppe
        $bilder = ['ideal_male_1.jpg', 'ideal_female_1.jpg', 'ideal_male_2.jpg', 'ideal_female_2.jpg'];
    } else { // Kontrollgruppe
        $bilder = ['neutral_1.jpg', 'neutral_2.jpg', 'neutral_3.jpg'];
    }
}

1 Answer

0 votes
by SoSci Survey (330k points)

Am Anfang habe ich einen Zufallsgenerator eingebaut

Nehmen sie bitte einen richtigen Zufallsgenerator. Die Funktion random() ist zwar nicht komplett falsch, aber sie sorgt sich nicht um Ihre Gruppengrößen.

Es gibt aber die Fehlermeldung, dass man header nicht verwenden kann.

Ja, sieht ein wenig so aus, als hätten Sie ChatGPT um Code gefragt - nur hat ChatGPT hat leider keine Ahnung von SoSci Survey. Bitte nehmen Sie sich mal 5 Minuten und lesen Sie die Anleitung zur Randomisierung.

Mein langer PHP-Code, den ich am Anfang probiert habe

Der geht schon in eine richtige Richtung. Sie schreiben hier erstmal die richtigen Bilder in Arrays. Allerdings fehlt jetzt noch der Teil, wo Sie den Inhalt der Arrays auch im Fragebogen anzeigen. Das könnte z.B. so aussehen:

foreach ($bilder as $bild) {
  html('<div><img src="'.$bild.'" alt=""></div>');
}

Vermutlich wollen Sie die Bilder noch mit Kontext und evtl. auf einzelnen Seiten anzeigen. Das würden Sie dann z.B. mit loopPage() erledigen.

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

...