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

0 votes

Hallo liebes Sosci-Team,

vielen Dank erstmal für den, stets schnellen und kompetenten support.

Ich lasse innerhalb meiner Befragung die Teilnehmer 6 Bilder auf jeweils 5 Dimensionen mit einer 5-stufigen Skala bewerten. Je kleiner dabei der Summenscore über alle Dimensionen, desto positiver wurde das Bild bewertet. Am Ende der Befragung möchte ich den Teilnehmern nun gerne rückmelden, welches Bild von allen bisherigen Teilnehmern als am positivsten bewertet wurde.
Ich bräuchte also zunächst einen Code, der die Summenscores pro Bild über alle Teilnehmer errechnet und diese dann miteinander vergleicht und mir das Bild mit dem höchsten Score ausgibt. (Ich hoffe, das ist verständlich.)
Meine bisherigen Versuche sind dabei geendet:

$mean = statistic('mean', 'IP64_07, IP64_04, IP64_05, IP64_02, IP64_08');
html('
  <p>Die Teilnehmer haben dem Bild X bisher eine
  Bewertung von '.$mean.' gegeben.</p>
'); 

Das führt natürlich nicht zum angestrebten Ergebnis. Für Hilfe wäre ich sehr dankbar!

VG, Juliane

in SoSci Survey (dt.) by s046155 (130 points)
edited by SoSci Survey
Edit:
Ich habe nun eine Tabelle eingefügt: erste Spalte Bild, 2. Spalte persönl. Wert pro Bild und 3. Spalte - Wert aller bisherigen Teilnehmer für dieses Bild.
Realisiert habe ich das wie folgt:

text('Tabelle Kurzauswertung', array(
  '%val-Bild1-TN%' => valueMean('IP64', array(2,4,5,7,8)),
  '%val-Bild1-Alle%' => statistic('mean', 'IP64_07', 'IP64_04', 'IP64_05', 'IP64_02', 'IP64_08'),

Ist das soweit sinnvoll?

Vielen Dank und viele Grüße!
Juliane

1 Answer

0 votes

Damit das Ganze funktioniert, werden Sie erst einmal per valueSum() den Summenscore für jedes einzelne Bild (in jedem Interview) berechnen und als interne Variable ablegen müssen.

Ich gehe einmal davon aus, dass Sie das gemacht haben und IP64_02 bis IP64_07 diese internen Variablen sind. Wenn Sie hier den höchste MIttelwert finden möchten, müssen Sie erstmal 6 Mittelwerte holen:

$bilder = array(
  1 => 'IP64_02',
  2 => 'IP64_03',
  // u.s.w.
  6 => 'IP64_07'
);
$means = array();
foreach ($bilder as $num => $varID) {
  $means[$num] = statistic('mean', $varID);
}

Jetzt noch absteigend sortieren und die Nummer des (dann) ersten Bildes verwenden.

arsort($means);
$order = array_keys($means);
$top = $order[0];
html(
  '<p>Am besten kommt Bild Nr. '.$top.' weg '.
  'mit einer Bewertung von '.sprintf($means[$order[0]], '%1.1f').'.</p>
');
by SoSci Survey (85.1k points)
Vielen Dank für die Hilfe. Ich hatte natürlich keine internen Variablen erstellt...
Das ist nun nachgeholt und es werden auch Mittelwerte errechnet, wie der Debug-Modus zeigt. Jedoch bekomme ich eine Fehlermeldung bei der Sortierung:

Debug
[Information]    Statistik: Mittelwert für Frage IV01_01: 3.86
[Information]    Statistik: Mittelwert für Frage IV01_02: 5.78
[Information]    Statistik: Mittelwert für Frage IV01_03: 4.92
[Information]    Statistik: Mittelwert für Frage IV01_04: 8.11
[Information]    Statistik: Mittelwert für Frage IV01_05: 9.53
[Information]    Statistik: Mittelwert für Frage IV01_06: 16.0

Fehler:
Im PHP-Code trat ein Fehler auf.

Fehler im Fragebogen: arsort() expects parameter 1 to be array, null given
Zeile: 3

PHP-Code

001 namespace s2survey\questionnaire\environment;
002
003 arsort($means);
004 $order = array_keys($means);
005 $top = $order[0];
006 html(

Fehler im Fragebogen: array_keys() expects parameter 1 to be array, null given
Zeile: 4

PHP-Code

001 namespace s2survey\questionnaire\environment;
002
003 arsort($means);
004 $order = array_keys($means);
005 $top = $order[0];
006 html(
007   '<p>Am besten kommt Bild Nr. '.$top.' weg '.


Viele Grüße, Juliane
Der PHP-Code muss in ein Element "PHP-Code", ich vermute, Sie haben zwei solche Elemente angelegt.
...