0 votes
in SoSci Survey (dt.) by s255294 (295 points)

Hallo,

ich würde Teilnehmenden einer Studie gerne einen anhand einer Vergleichsstichprobe ermittelten Prozentrang zur Verfügung stellen.

Die Daten der Vergleichsstichprobe habe ich bereits in die Datenbank für externe Inhalte hochgeladen. Um den Prozentrang zu ermitteln, würde ich nun gerne einen Array über alle Versuchspersonen der Vergleichsstichprobe plus den Wert der Versuchsperson erstellen, um dann mit der Funktion stats_stat_percentile den Prozentrang zu ermitteln.

Leider scheiterte dieses Vorhaben bisher daran, dass ich es nicht geschafft habe einen Wert über alles Versuchspersonen der Vergleichsstichprobe zu berechnen (also quasi einen Array, der eine bestimmte Spalte der Datenbank abbildet).

Kann mir jemand helfen und verraten, wie dies möglich ist?

Danke und viele Grüße!

1 Answer

0 votes
by SoSci Survey (327k points)
selected by s255294
 
Best answer

Die Funktion stats_stat_percentile() gehört zu einem PECL-Zusatzpaket und ist auf www.soscisurvey.de weder installiert noch für die Verwendung im Fragebogen freigegeben. Macht aber nichts ... es wäre ohnehin technisch viel zu aufwändig, jedesmal alle Rohdaten aus der Datenbank für Inhalte zu holen, nur um sie jedesmal neu auzuwerten.

Sie brauchen auch gar nicht alle Rohdaten, sondern lediglich eine Tabelle, welche die Perzentile für 100 mögliche Werte ausgibt. So etwas sollte sich mit R schnell erstellen lassen. Also z.B.

-2.3    1
-2.22   2
-2.18   3
-2.05   4
...
+3.54 100

Links hier der Grenzwert (also das Quantil), rechts der zugehörige Prozentwert. Diese Tabelle gießen Sie dann (am besten natürlich durch ein =VERKETTEN(...) in nExcel oder einen paste()-Befehl in R) in Form eines PHP-Arrays:

$perzentile = [
    1 => -2.3,
    2 => -2.22,
    3 => -2.18,
    4 => -2.05,
    ...
    100 => +3.54
];

Jetzt noch eine kleine FOR-Schleife, welche den passenden Wert heraussucht.

$antwort = valueMean('XY01');
$perc = 100;
foreach ($perzentile as $p => $val) {
  if ($val > $antwort) {
    $perc = $p;
    break;
  }
}
html('<p>'.$perc.'%</p>');
by s255294 (295 points)
Hallo,

vielen Dank noch für die hilfreiche Antwort!

Ich habe die Tabelle mit den Perzentilen in R erstellt und als Array umformatiert. Nun habe ich mich gefragt, wie Sie die $perzentile Variable erstellt haben? Haben Sie den Array einfach in den Befehl kopiert (und wenn ja, wird diese nicht zu lang mit 100 Zeilen?) oder haben Sie den Array in die Datenbank eingelesen und auf diese Bezug genommen (und wenn, ja wie genau)?
by SoSci Survey (327k points)
Ich hätte das Array einfach direkt in den PHP-Code kopiert. Wenn wir ca. 16 Zeichen (=Byte) pro Zeile haben, sind das 1600 Byte = 1,6 KB, damit sollte der PHP-Code problemlos zurecht kommen.
by s255294 (295 points)
Okay, vielen Dank für die 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

...