0 votes
in SoSci Survey (dt.) by s202724 (110 points)
closed by SoSci Survey

Liebes SoSci-Survey-Team,

leider habe ich bereits mehrere Stunden den Online Support durchforstet und alle möglichen Lösungsvorschläge versucht, leider komme ich zu keiner Lösung und bin mittlerweile sehr verzweifelt - ich studiere Marketing, bin daher weder ein PHP noch ein HTML-Profi. :(

Ich möchte gerne ein Online Experiment zum Herkunftslandeffekt von Äpfeln und Tomaten durchführen. Dabei möchte ich die Befragten zuerst aus Äpfeln und erst später aus den Tomaten wählen lassen (sollte ich dafür zwei Experimente erstellen?). Beide Lebensmittel unterscheiden sich in Herkunft und Preis. Diese sollen auch variiert werden:

Ich habe somit pro Lebensmittel 3x3 = 9 Ausprägungen. Ich möchte jedoch immer nur zwei Auswahlmöglichkeiten präsentieren und eine "Nicht-Wahl-Möglichkeit". Hier ein Screenshot aus einem Word-Doc, wo ich es exemplarisch dargestellt habe. Hintergrund ist der, dass auch einmal nur die Herkunftsländer Chile und Polen zur Auswahl stehen sollen und kein Österreichisches Produkt. Muss so eine Darstellung dann mittels HTML-Code im Zufallsgenerator selbst programmiert werden?

Ich habe mir bereits alle Hilfestellungen online zu Zufallsgenerator, Interne Variablen, Urnen etc. durchgelesen, komme aber leider nicht zu einer Lösung.


Mein Zufallsgenerator sieht wie folgt aus:


Ich hätte auch eine Urne angelegt, da ich nicht wusste, wo ich sonst die Ausprägungen meiner Items festlege? Die Preise habe ich durch einen . getrennt, da bei einem Komma drei verschiedene Items gebildet worden wären:


Außerdem habe ich eine Interne Variable erstellt:

Habe ich soweit richtig gearbeitet?

Ich habe beim Fragebogen zusammenstellen dann eine Neue Seite gemacht, zuerst den Zufallsgenerator eingefügt und dann folgenden PHP-Code:
$kombinationen = array(
1 => array('Herkunft "Österreich"', 'Preis "1.99"'),
2 => array('Herkunft "Österreich"', 'Preis "2.49"'),
3 => array('Herkunft "Österreich"', 'Preis "2.99"'),
4 => array('Herkunft "Polen"', 'Preis "1.99"'),
5 => array('Herkunft "Polen"', 'Preis "2.49"'),
6 => array('Herkunft "Polen"', 'Preis "2.99"'),
7 => array('Herkunft "Chile"', 'Preis "1.99"'),
8 => array('Herkunft "Chile"', 'Preis "2.49"'),
9 => array('Herkunft "Chile"', 'Preis "2.99"'),
);
$variants = valueList('B001');
foreach ($variants as $varID => $code) {
$data = $kombinationen[$code];
foreach ($data as $i => $text) {

replace('%'.$varID.'_'.($i+1).'%', $text);

}
}

Ich habe um die Fehlermeldungen auslesen zu lassen debug($variants); unter $variants und foreach eingefügt und folgendes Ergebnis erhalten:

Ich weiß nach 12 Stunden Recherche und allen möglichen Versuchen leider nicht mehr weiter. :( Auch Videos etc. haben mir nicht geholfen. Können Sie mir vielleicht helfen?

Vielen Dank im Voraus!

closed with the note: Es liegen keine weiteren Informationen zu dem Problem vor, welche für eine hilfreiche Antwort erforderlich wären.
by SoSci Survey (331k points)
Genau, Sie können den Zufallsgenerator und den Code einfach kopieren :)
by s202724 (110 points)
Vielen Dank für Ihre Hilfe! Mein Fragebogen funktioniert nun wie gewünscht.

Einzig bei dem long format bin ich mir noch unsicher.
Ich habe einen Teilfragebogen erstellt (Zugriffsbeschränkung intern/gesperrt), bei dem ich nur die zwei Zufallsgeneratoren eingefügt habe, da ich nur für diesen Teil ein long-format bräuchte. Diesen Teilfragebogen (Kennung "Experiment") habe ich in meinem Hauptfragebogen auf einer neuen Seite mit dem php-Code multiLevelDown('Experiment'); eingebunden - im Prestest wird dann fehlerfrei auf diesen umgeleitet und nach der letzten Frage (ohne weiteren php-Code) wieder auf den Hauptfragebogen zurückgeleitet.
Ich bin mir jedoch noch unsicher, ob mir nun das long-format ausgespuckt wird. Kann ich das zur Kontrolle in einer .xls oder .csv Datei überhaupt sehen? Leider habe ich noch Probleme mit meiner Lizenz von SPSS und kann es daher noch nicht in SPSS öffnen. In erhobene Daten sehe ich zwar eine extra Datenzeile die eine Referenz auf den Hauptfragebogen beinhaltet aber keine extra Zeile pro Variable.

Ich hätte in meinem php-Code bei dem Zufallsgenerator $items = getItems eingebaut - dieser sieht nun komplett wie folgt aus. Ist das so korrekt?
$kombinationen = array(
1 => array("Herkunft: Österreich","Preis: 1,99 €", "Herkunft: Polen", "Preis: 1,99 €"),
2 => array("Herkunft: Österreich","Preis: 1,99 €","Herkunft: Polen","Preis: 2,49 €"),
3 => array("Herkunft: Österreich","Preis: 1,99 €","Herkunft: Polen","Preis: 2,99 €"),
4 => array("Herkunft: Österreich","Preis: 1,99 €","Herkunft: Chile","Preis: 1,99 €"),
5 => array("Herkunft: Österreich","Preis: 1,99 €","Herkunft: Chile","Preis: 2,49 €"),
6 => array("Herkunft: Österreich","Preis: 1,99 €","Herkunft: Chile","Preis: 2,99 €"),
7 => array("Herkunft: Österreich","Preis: 2,49 €","Herkunft: Polen","Preis: 1,99 €"),
8 => array("Herkunft: Österreich","Preis: 2,49 €","Herkunft: Polen","Preis: 2,49 €"),
9 => array("Herkunft: Österreich","Preis: 2,49 €","Herkunft: Polen","Preis: 2,99 €"),
10 => array("Herkunft: Österreich","Preis: 2,49 €","Herkunft: Chile","Preis: 1,99 €"),
11 => array("Herkunft: Österreich","Preis: 2,49 €","Herkunft: Chile","Preis: 2,49 €"),
12 => array("Herkunft: Österreich","Preis: 2,49 €","Herkunft: Chile","Preis: 2,99 €"),
13 => array("Herkunft: Österreich","Preis: 2,99 €","Herkunft: Polen","Preis: 1,99 €"),
14 => array("Herkunft: Österreich","Preis: 2,99 €","Herkunft: Polen","Preis: 2,49 €"),
15 => array("Herkunft: Österreich","Preis: 2,99 €","Herkunft: Polen","Preis: 2,99 €"),
16 => array("Herkunft: Österreich","Preis: 2,99 €","Herkunft: Chile","Preis: 1,99 €"),
17 => array("Herkunft: Österreich","Preis: 2,99 €","Herkunft: Chile","Preis: 2,49 €"),
18 => array("Herkunft: Österreich","Preis: 2,99 €","Herkunft: Chile","Preis: 2,99 €"),
19 => array("Herkunft: Polen","Preis: 1,99 €","Herkunft: Chile","Preis: 1,99 €"),
20 => array("Herkunft: Polen","Preis: 1,99 €","Herkunft: Chile","Preis: 2,49 €"),
21 => array("Herkunft: Polen","Preis: 1,99 €","Herkunft: Chile","Preis: 2,99 €"),
22 => array("Herkunft: Polen","Preis: 2,49 €","Herkunft: Chile","Preis: 1,99 €"),
23 => array("Herkunft: Polen","Preis: 2,49 €","Herkunft: Chile","Preis: 2,49 €"),
24 => array("Herkunft: Polen","Preis: 2,49 €","Herkunft: Chile","Preis: 2,99 €"),
25 => array("Herkunft: Polen","Preis: 2,99 €","Herkunft: Chile","Preis: 1,99 €"),
26 => array("Herkunft: Polen","Preis: 2,99 €","Herkunft: Chile","Preis: 2,49 €"),
27 => array("Herkunft: Polen","Preis: 2,99 €","Herkunft: Chile","Preis: 2,99 €"),
);
$variants = valueList('B002');
foreach ($variants as $varID => $code) {
  $data = $kombinationen[$code];
  foreach ($data as $i => $text) {
    replace('%'.$varID.'_'.($i+1).'%', $text);
  }
}

$save = [
  'B001x01' => 'IV01',
  'B001x02' => 'IV02',
  'B001x03' => 'IV03',
'B001x04' => 'IV04',
'B001x05' => 'IV05',
'B001x06' => 'IV06',
'B001x07' => 'IV07',
'B001x08' => 'IV08',
'B001x09' => 'IV09',
];

$items = getItems('B002', 'valid');
foreach ($items as $item) {
  $varID = id('B002', $item);
  $value = value($varID);
  replace('%name'.$item.'%', $value);
}
registerVariable($items);

Vielen Dank im Voraus!
by SoSci Survey (331k points)
> Ich bin mir jedoch noch unsicher, ob mir nun das long-format ausgespuckt wird.

Nein, eher nicht. Das würden Sie nur dann bekommen, wenn Sie für jedes einzelne Set in einen untergeordneten Fragebogen springen und danach wieder zurück zum Original-Fragebogen. Dann würden Sie aber auch wahrscheinlich nicht die Auswahlabfolge einsetzen und Sie würden die Platzhalter anders organisieren. Wenn es also funktioniert, dann bleiben Sie beim wide-Format.

Das ist aber nicht weiter schlimm, denn zwischen long- und wide-Format zu konvertieren, sollten Sie auch post-hoc mit jeder Statistik-Software erledigen können. Die haben dann im Original-Datensatz halt erstmal sehr viele Variablen.
by s202724 (110 points)
Ok vielen Dank für die rasche Rückmeldung!

Dh eigentlich bräuchte ich dann auch keinen Teilfragebogen korrekt? Jetzt wird mir nämlich für einen CASE zwei Zeilen angezeigt, wenn ich das im Nachhinein aber ohnehin mit SPSS konvertieren kann, könnte ich den Teil des Experiments wieder direkt im Hauptfragebogen abfragen und hätte somit keine zwei Zeilen pro Case.

Ich würde somit multiLevelDown('Experiment') wieder entfernen und diesen Teil aus dem PHP-Code ebenfalls:
$items = getItems('B002', 'valid');
foreach ($items as $item) {
  $varID = id('B002', $item);
  $value = value($varID);
  replace('%name'.$item.'%', $value);
}
registerVariable($items);
by SoSci Survey (331k points)
> Dh eigentlich bräuchte ich dann auch keinen Teilfragebogen korrekt?

Korrekt.

Was genau Sie entfernen müssen, das müssten Sie bitte selbst ausprobieren :)

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

...