0 votes
ago in SoSci Survey (dt.) by s222544 (640 points)
edited ago by SoSci Survey

Liebes SoSci Survey Online Support Team,

ich bedanke mich bei Ihnen für Ihre Unterstützung in meinen Projekten.

Jetzt bitte ich höflich um Ihre Meinung in meiner Umsetzung der Datenbank für Inhalte.

In der ersten Studie habe ich Teilnehmer zu ihrer Meinung zu 10 Bildern befragt - die Antworten waren ähnlich einer Likert Skala von Stimme sehr zu, Stimme zu, Stimme nicht zu und stimme überhaupt nicht zu.

Jetzt möchte ich in der zweiten Studie (neues Befragungsprojekt) diese Meinungen anzeigen und möchte gerne wissen, ob die Datenbank für Inhalte die beste Option ist.

Sozusagen als Verdeutlichlichung: ich zeige Bild 1 und habe als Text neben dem Bild: 50% der Probanden aus der ersten Studie hatten "stimme sehr zu" abgestimmt, 25% stimmten zu und 25% stimmten nicht zu. Danach stelle ich den Probanden in der zweiten Studie Fragen.

Hilfe-und Supportseiten zu Folge müsste ich im csv file zuerst einen Schlüssel haben - eventuell a1 bis a500 (die 500 Teilnehmer in Studie 2) als array(0).
Danach würden die nächsten 4 Spalten dem ersten Bild gelten; sozusagen: array 1 würde speichern, wie viel Prozent sehr zustimmen, array2 (Spalte drei - wie viel Prozent stimmen zu). Array 3 (Spalte 4) - wie viel Prozent nicht zustimmen und Array 4 (Spalte 5 - wie viel Prozent stimmen überhaupt nicht zu). Und so weiter für die weiteren neun Bilder. Jedes Bild hat vier Spalten.

Ungefähr so:

$key = 'a'.value('IV01_01');  // Ein "a" vor die Zahl schreiben
$inhalt = dbGet($key);
 
html('
  <h2>'.$inhalt[0].'</h2>
  <div>'.$inhalt[1].'</div>
');

Ein Problem, das Ihre Antwort vielleicht erschwert: Ich habe eine Randomisierung der Bilder in der ersten Studie - aber natürlich die Reihenfolge mittels interner Variable gespeichert.

Und ich werde auch eine Randomisierung der Bilder in der zweiten Studie haben.

Deshalb dachte ich die Verwendung von folgendem PHP Code:

// Internal variable that lists the order of the stimuli presented
$order_of_stimuli = array(
    'RD04_01' => 'cons2', // Value assigned to RD04_01
    'RD04_02' => 'inc92', // Value assigned to RD04_02
    'RD04_03' => 'dec8',  // Value assigned to RD04_03
    'RD04_04' => 'dec31', // Value assigned to RD04_04
    'RD04_05' => 'cons1', // Value assigned to RD04_05
    'RD04_06' => 'inc69', // Value assigned to RD04_06
    'RD04_07' => 'dec16', // Value assigned to RD04_07
    'RD04_08' => 'inc84', // Value assigned to RD04_08
    'RD04_09' => 'cons3',  // Value assigned to RD04_09
    'RD04_10' => 'cons4',  // Value assigned to RD04_10

);

// Define the images with their associated answers
$images_with_answers = array(
    1 => array('Answer 1.1', 'Answer 1.2', 'Answer 1.3', 'Answer 1.4'), // Answers for Image 1 (cons1)
    2 => array('Answer 2.1', 'Answer 2.2', 'Answer 2.3', 'Answer 2.4'), // Answers for Image 2 (cons2)
    3 => array('Answer 3.1', 'Answer 3.2', 'Answer 3.3', 'Answer 3.4'), // Answers for Image 3 (cons3)
    4 => array('Answer 4.1', 'Answer 4.2', 'Answer 4.3', 'Answer 4.4'), // Answers for Image 4 (inc69)
    5 => array('Answer 5.1', 'Answer 5.2', 'Answer 5.3', 'Answer 5.4'), // Answers for Image 5 (inc84)
    6 => array('Answer 6.1', 'Answer 6.2', 'Answer 6.3', 'Answer 6.4'), // Answers for Image 6 (inc92)
    7 => array('Answer 7.1', 'Answer 7.2', 'Answer 7.3', 'Answer 7.4'), // Answers for Image 7 (dec8)
    8 => array('Answer 8.1', 'Answer 8.2', 'Answer 8.3', 'Answer 8.4'), // Answers for Image 8 (dec16)
    9 => array('Answer 9.1', 'Answer 9.2', 'Answer 9.3', 'Answer 9.4'),  // Answers for Image 9 (dec31)
   10 => array('Answer 10.1', 'Answer 10.2', 'Answer 10.3', 'Answer 10.4')  // Answers for Image 10 (cons4)
);

// Create a mapping of values to image indices
$value_to_image_index = array(
    'cons1' => 1,
    'cons2' => 2,
    'cons3' => 3,
    'inc69' => 4,
    'inc84' => 5,
    'inc92' => 6,
    'dec8'  => 7,
    'dec16' => 8,
    'dec31' => 9,
    'cons4' => 10

);

// Initialize an array to hold the matched answers based on the order
$matched_answers = array();

// Loop through the order of stimuli
foreach ($order_of_stimuli as $stimulus_key => $stimulus_value) {
    // Check if the stimulus value exists in the mapping
    if (isset($value_to_image_index[$stimulus_value])) {
        // Get the corresponding image index
        $image_index = $value_to_image_index[$stimulus_value];
        
        // Add the answers for the current image to the matched answers array
        $matched_answers[$stimulus_value] = $images_with_answers[$image_index];
    }
}


Als Beispiel um die Antworten vom zweiten Bild zu bekommen, würde ich Folgendes nutzen:

// Grab individual components of Answer 2
$answer_2_1 = $answers_for_cons2[0]; // First component (Answer 2.1)
$answer_2_2 = $answers_for_cons2[1]; // Second component (Answer 2.2)
$answer_2_3 = $answers_for_cons2[2]; // Third component (Answer 2.3)
$answer_2_4 = $answers_for_cons2[3]; // Fourth component (Answer 2.4)

und dann mit replace und %Platzhaltern% an geeigneter Stelle im Fragebogen einfügen.

Was halten Sie von meiner Umsetzung? Gibt es Verbesserungsmöglichkeiten?

Ich freue mich sehr auf Ihre Antwort!

Viele Grüße!

1 Answer

0 votes
ago by SoSci Survey (321k points)

Ohne auf den konkreten Code einzugehen, würde ich folgende Optimierungen empfehlen:

  1. Sie haben "nur" 10 Bilder, und brauchen "nur" die Häufigkeiten der Antworten. Also sollten Sie m.E. im neuen Befragungsprojekt nicht die Rohdaten hinterlegen, sondern gleich eine Matrix aus 10 Bildern mal der Häufigkeit für die 4 Antwortoptionen. Das sind 40 Werte.

Im Idealfall hätten sie die Bilder in der ersten Erhebung gleich so abgefragt, dass zu einem besteimmten Bild immer dieselbe Frage bzw. dassselbe Item angezeigt worden wäre - aber wenn Sie das nicht gemacht haben, dann erledigen sie das Sortieren und die Häufigkeitsauswertung besser in der Statistik-Software, das ist wahrschienlich einfacher als dass Sie es im PHP-Code programmieren.

Je nachdem, ob Sie die Bilder in der zweiten Runde randomisiert abfragen möchten, können Sie die Häufigkeiten...

... in einem Zufallsgenerator ablegen, einfach Komma-separtiert,

... in der Datenbank für Inhalte ablegen, als Tabelle mit 10 Zeilen oder

... als Array im PHP-Code des Fragebogens unterbringen.

  1. Für die Ausgabe scheint es mir eine Überlegung wert, dass Sie die Häufigkeitsverteilung zum Bild nicht per Text anzeigen, sondern z.B. mit chartJS oder der Diagramm-Funktion von SoSci Survey ein kleines Diagramm anzeigen.
ago by s222544 (640 points)
Vielen Dank für Ihre Antwort und die Diagramm- Funktion. Ich werde diese in meiner zweiten Studie einbinden!

Wenn ich mich für Ihre erste Option entscheide (... in einem Zufallsgenerator ablegen, einfach Komma-separtiert), dann fällt die Datenbank für Inhalte weg. Ist dies korrekt?

Vielen Dank im Voraus!
ago by SoSci Survey (321k points)
Die 10 Zeilen (in dem Fall Zettel) mal 4 Werte können sie problemlos direkt im Zufallsgenerator unterbringen. Ich würde auch die Nummer des Bildes oder den Dateinamen noch dort speichern, also z.B.

1 = 1,37,24,32,7
2 = 2,31,22,34,9
...

Sie können dann mittels value(..., 'csv') nicht nur die Nummer bzw. den Dateinamen des Bildes abrufen, sondern auch gleich noch die 4 zugehörigen Werte.
ago by s222544 (640 points)
Super! :) Vielen Dank für Ihre schnelle 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

...