0 votes
in SoSci Survey (dt.) by s145677 (150 points)
edited by SoSci Survey

Lieber Support,

in meiner Studie geht es um die Bewertung von Personen: insgesamt werden 18 Bilder von Personen gemeinsam mit je einer Personeninformation (in 2 Hälften aufgeteilt: 9 Präsentationen, dann Pause, dann restlichen 9 Präsentationen) präsentiert. Nach jeder Bild+Information Präsentation werden die Personen anhand verschiedener Eigenschaften bewertet.

Im Anschluss an diese Bewertungsphase folgt ein kurzer Recognitionstest: Es werden zufällig 6 Bilder aus der ersten Hälfte gezeigt und es soll aus 4 Personeninformationen diejenige ausgesucht werden, die gemeinsam mit der Person präsentiert wurde. Ich habe dafür 6 Fragen vom Typ Auswahl mit Kärtchen erstellt und folgenden PHP-Code für zum Beispiel die erste Frage erstellt:

$code = value('R001');
if ($code == 1) {

$gesicht = value('R004_01');
replace('%face1%', getTextElement($gesicht), 'html');


$texte = ['FE01', 'FE02', 'FE03', 'FE04', 'FE05',  'FE06', 'FE07', 'FE08', 'FE09'];
for ($i=0; $i<9; $i++) {
  replace('%option'.($i+1).'%', getTextElement($texte[$i]),'html');
}


$correct = value('R003_01');
$others = array_diff($texte, [$correct]);
shuffle($others);

$use = [$correct, $others[0], $others[1], $others[2]];

$items = [];
foreach ($use as $id) {
  $items[] = (int)trim(substr($id, 3), '0');
}

shuffle($items);
question('WT01', $items);

}  elseif ($code == 2) {

$gesicht = value('R004_01');
replace('%face1%', getTextElement($gesicht), 'html');


$texte = ['DE01', 'DE02', 'DE03', 'DE04', 'DE05',  'DE06', 'DE07', 'DE08', 'DE09'];
for ($i=0; $i<9; $i++) {
  replace('%option'.($i+1).'%', getTextElement($texte[$i]),'html');
}


$correct = value('R003_01');
$others = array_diff($texte, [$correct]);
shuffle($others);

$use = [$correct, $others[0], $others[1], $others[2]];

$items = [];
foreach ($use as $id) {
  $items[] = (int)trim(substr($id, 3), '0');
}

shuffle($items);
question('WT01', $items);

}

Hier werden mir dann als Antwortkategorien zufällig 3 Informationen aus der Studie zu dem Bild der Person sowie die richtige Information (die mit dem Bild präsentiert wurde) gezeigt.

Ich wollte nun aber gerne ebenfalls je eine neue Information in die Antwortkategorien pro Frage einfügen, die noch nicht in der Studie präsentiert wurde: also als Antwortkategorien die 1 richtige Information, 2 Informationen, die ebenfalls in der Studie waren und eine Information, die noch gar nicht präsentiert wurde.

Mein Problem ist, dass ich Schwierigkeiten habe, die neue Information als Antwortkategorie in den PHP-Code zu integrieren bzw. bin ich etwas unsicher wie ich diesen umschreiben müsste. Ich habe die neuen (6) Informationen jeweils in einer Bild-/Textdatei hinterlegt, wobei ich hier aber auch nicht sicher bin, ob eine interne Variable besser wäre...

Für Unterstützung wäre ich sehr dankbar !

by SoSci Survey (302k points)
So ganz verstehe die Frage im Moment noch nicht:

> Ich wollte nun aber gerne ebenfalls je eine neue Information in die Antwortkategorien pro Frage einfügen

Mit Antwortkategorie meinen Sie eine Auswahloption für die (Auswahl-)Frage WT01, korrekt? Und was meinen Sie mit "Information" und wo würde diese herkommen?

> Ich habe die neuen (6) Informationen jeweils in einer Bild-/Textdatei hinterlegt

Und die gehen die 6 Stimuli ("Informationen") mit den 18 Wiederholungen zusammen, den Sie in Ihrer Frage beschreiben?
by s145677 (150 points)
Genau, die "neue Information" soll eine Antwortoption in WT01 sein.

Ich versuche mich nochmal klarer auszudrücken:

Ich habe zunächst in der Studie 18 Bilder von Personen kombiniert mit je einer von 18 Personeninformationen als Stimuli präsentiert : z.B. Es erscheint ein Bild von Frau A und unter diesem Bild die Information "Die Person hat einen Computer". In der ersten Hälfte, auf die sich der spätere Recognitionstest bezieht, sind es 9 Präsentationen aus Bild und Information. Die Reihenfolge der Bildabfolge (gespeichert in R004) ist zufällig und es wird auch zu jedem Bild zufällig eine der 9 Informationen (im Code beschrieben als FE01 - FE09 bzw. für die Experimentalbedingung DE01 - DE09) kombiniert (zufällige Reihenfolge der Informationen in R003 gespeichert). Nach jeder Präsentation folgen dann Fragen zur Bewertung der Person.

Dann folgt der Recognitionstest: ich habe 6 Auswahlfragen mit Kärtchen (WT01 -WT06) angelegt. In den 6 Auswahlfragen habe ich je einen Platzhalter %face1% - %face6% im Fragetext angelegt, um die Bilder der Personen anzuzeigen. Weiterhin habe ich in jeder Auswahlfrage 9 Antwortoptionen angelegt und diese mit den Platzhaltern %option1% - %option9% gefüllt, um dort die Informationen über die Person anzuzeigen.

Den PHP-Code habe ich zunächst so geschrieben, dass in jeder Auswahlfrage unter jedem Bild der Person 4 Antwortoptionen gezeigt werden: Dies sind die eine richtige Information, die auch in der Studie mit dem Bild der Person kombiniert wurde und drei weitere Informationen über Personen, die auch in der Studie gezeigt wurden, allerdings mit anderen Bildern von Personen.

Nun wollte ich aber gerne pro Auswahlfrage eine Antwortoption mit einer Personeninformation belegen, die noch gar nicht in der Studie präsentiert wurde, also noch nicht in den insgesamt 18 Präsentationen zu sehen waren. Dazu habe ich 6 (wegen 6 Auswahlfragen) Textdateien PB01 bis PB06 erstellt, die je eine neue Personeninformation enthalten. In der Auswahlfrage soll dann also ein Bild einer Person gezeigt werden und darunter 4 Antwortoptionen: eine korrekte Personeninformation, die auch mit dem Bild in der Studie kombiniert wurde und 2 Personeninformationen, die auch in der Studie vorkamen, aber nicht gemeinsam mit diesem Bild (diese Personeninformationen beziehen sich alle demnach auf die 9 Informationen, die in der ersten Hälfte der Studie gepaart mit Bildern von Personen gezeigt wurden). Als vierte Antwortoption soll nun eine der 6 "neuen Informationen", die noch nicht gezeigt wurden (PB01 - PB06) erscheinen. Die Probanden sollen dann aus den vier Antwortoptionen die richtige auswählen, die gemeinsam mit dem Bild in der Studie gezeigt wurde.

Meine Überlegung war zunächst, dass ich die 6 "neue Informationen" erstmal als Array abspeichere und diesen dann irgendwie in diesem Befehl (aus meiner obigen Frage):

 $others = array_diff($texte, [$correct]);  

mit einfüge, das hatte bisher aber leider nicht funktioniert...

Ich hoffe, ich konnte mich verständlicher ausdrücken:)

1 Answer

0 votes
by SoSci Survey (302k points)

Weiterhin habe ich in jeder Auswahlfrage 9 Antwortoptionen angelegt und diese mit den Platzhaltern %option1% - %option9% gefüllt, um dort die Informationen über die Person anzuzeigen.

Es geht um diese frühere Frage, korrekt? Ich musste jetzt erstmal 10 Minuten danach suchen... bitte soetwas in die Frage schreiben. Wie kann ich eine zufällige Reihenfolge von Stimuli Präsentationen in einer Zuordnungsaufgabe verfügbar machen ?

Meine Überlegung war zunächst, dass ich die 6 "neue Informationen" erstmal als Array abspeichere und diesen dann irgendwie [snip] mit einfüge, das hatte bisher aber leider nicht funktioniert...

In Ordnung, jetzt kommen wir der Sache näher. Das Problem ist folgendes: Sie haben in der Auswahlfrage 9 Optionen vorbereitet. und keine davon ist für die 6 zusätzlichen Möglichkeiten.

Deshalb können Sie auch nicht einfach eine der neuen 6 Inhalte bei $others einfügen. Davon wird ja nur die Ziffer verwendet und in $items geschrieben.

Die einfachste Lösung wäre, dass Sie eine Option Nr. 10 ergänzen, die einen Platzhalter %otherXYZ% als Itemtext enthält. Diesen könnten Sie dann einfach zufällig füllen.

Legen Sie mal einen Zufallsgenerator (z.B. PB07) an, in welchem 6 Kärtchen mit den Kennungen PB01 bis PB06 liegen. In diesem lassen Sie pro Interview 6 Kärtchen ziehen. Die zehnte Option bereiten Sie nun vor wie folgt:

$otherCode = value(id('PB07', 1));  // Die erste gezogene Karte verwenden
$otherText = getTextElement($otherXYZ);
replace('%otherXYZ%', $otherText, 'html');

Und mal ehrlich: Eigentlich brauchen Sie gar nicht so viel zu Randomisieren. Das verursacht in Ihrer Studie nur unnötig Varianz, die Sie am Ende nicht aufklären können. Sie können genausogut beim ersten Mal immer (!) PB01 verwenden, beim zweiten Mal PB02 u.s.w.

by s145677 (150 points)
vielen Dank für die schnelle Antwort, anscheinend mache ich dennoch etwas falsch...

ich habe den Zufallsgenerator angelegt und 6 Zettel angelegt, pro Interview werden 6 Zettel gezogen.
Eine 10te Option hab ich ebenfalls ergänzt.

Vor dem gesamten PHP-Code habe ich auf dieselbe Seite den Zufallsgenerator 'PB07' gezogen.

Dann habe ich weiter Ihren PHP-Code verwendet.

$otherCode = value(id('PB07', 1));  // Die erste gezogene Karte verwenden
$otherText = getTextElement($otherCode);
replace('%otherXYZ%', $otherText, 'html');

Dann habe ich versucht dies in meinen bestehenden PHP-Code zu integrieren:

$use = [$correct, $others[0], $others[1], $otherText];

$items = [];
foreach ($use as $id) {
  $items[] = (int)trim(substr($id, 3), '0');
}

shuffle($items);
question('WT01', $items);

Es werden mir diese Warnmeldung angezeigt:

>Im Befragungsprojekt existiert kein Text mit der Kennung 2
>Für die Funktion replace() wurden nicht ausreichend Argumente angegeben, 2 Argumente sind zwingend erforderlich. Weitere Details finden Sie in der Anleitung zur Funktion.
>Für die Frage WT01 wurde kein Item mit der Kennung 0 gefunden
by s145677 (150 points)
Ich probiere gerade etwas herum und wollte einmal Ihren zweiten Vorschlag mit der festen Reihenfolge von PB01 - PB06 ausprobieren. Dafür habe ich diesen Code verwendet:

$gesicht = value('R004_01');
replace('%face1%', getTextElement($gesicht), 'html');


$texte = ['FE01', 'FE02', 'FE03', 'FE04', 'FE05',  'FE06', 'FE07', 'FE08', 'FE09'];
for ($i=0; $i<9; $i++) {
  replace('%option'.($i+1).'%', getTextElement($texte[$i]),'html');
}


$correct = value('R003_01');
$others = array_diff($texte, [$correct]);
shuffle($others);

$otherText = getTextElement('PB01', 'html');
replace('%otherXYZ%', $otherText, 'html');

$use = [$correct, $others[0], $others[1], $otherText];

$items = [];
foreach ($use as $id) {
  $items[] = (int)trim(substr($id, 3), '0');
}

shuffle($items);
question('WT01', $items);

Mir wird dann folgendes angezeigt:
>Für die Frage WT01 wurde kein Item mit der Kennung 0 gefunden

Ich vermute, dass ich irgendetwas beim Zusammenfügen der Antwortoptionen falsch mache ..
by SoSci Survey (302k points)
Das mit der "Integration" ist viel einfacher:

$items = [];
foreach ($use as $id) {
  $items[] = (int)trim(substr($id, 3), '0');
}
$items[] = 10;  // Hier wird das zehnte Item in die Liste aufgenommen

Weitere Änderungen an Ihrem PHP-Code sind nicht erforderlich.
by s145677 (150 points)
Super ! Vielen Dank ! Es hat funktioniert:)

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

...