SoSci Survey
Übersetzungen dieser Seite:
 

Auswertung im Fragebogen

Hinweis: Die Funktionen statistic(), diagram() und diagram2() berechnen Statistiken über alle bisher im Befragungsprojekt erhobenen Daten. Um eine Auswertung für eine einzelne Person zu berechnen, nutzen Sie die Funktionen valueSum(), valueMean() u.s.w. oder die Funktion value() in Kombination mit mathematischen Operatoren.

Hinweis: Die Daten aus dem aktuellen Interview liegen erst nach zweimaligem Klick auf Weiter zur Analyse bereit. Der Ablauf ist folgende: Zunächst wird die Frage gestellt. Nach dem Klick auf Weiter werden die Antworten eingelesen (aber noch nicht gespeichert), dann wird die nächste Seite aufgebaut und erst dann werden die Daten gespeichert. Auf der Seite, die einer Frage direkt folgt, ist die Angabe zur Frage in der Statistik daher noch nicht enthalten.

statistic()

mixed statistic(string Statistik, string Variablen, mixed Option, [boolean AlleDaten])

Mit der Funktion statistic() kann man einige univariate Kennwerte bestimmen: Mittelwert, Modus oder Häufigkeiten.

  • Statistik gibt an, welche Statistik berechnet werden soll.
    • count
      Die Häufigkeit eines Wertes auszählen
    • crosscount
      Die Häufigkeit des gemeinsamen Auftretens von zwei Werten in zwei Variablen auszählen
    • percent
      Prozentualer Anteil eines Wertes an allen Werten
    • mode
      Häufigster vorkommender Wert
    • mean
      Arithmetisches Mittel der Werte
  • Variablen Legt fest, für welche Variable(n) die Statistik berechnet werden soll. Die Kennungen der einzelnen Variablen findet man in der Variablen-Übersicht in oFb.
  • Option Einige Statistiken benötigen oder erlauben eine dritte Angabe, die mit diesem Parameter angegeben wird (s. unten).
  • AlleDaten Diese optionale Angabe legt fest, dass nicht nur die abgeschlossenen Interviews, sondern alle Interviews in die Statistik einfließen.

Wichtig: In die Berechnung der statistischen Werte werden nur abgeschlossene Interviews aufgenommen, wenn für den Parameter allData nicht explizit true angegeben wird.

Häufigkeitsauszählung

Als drittes Argument bei einer Häufigkeitsauszählung (count) kann man angeben, für welchen Wert man die Häufigkeit bestimmen möchte. Gibt man keinen dritten Wert an, wird die Anzahl gültiger Antworten ausgegeben. Fehlende Daten werden dabei nicht mitgezählt.

Hat man beispielsweise eine Auswahl für das Geschlecht (1=weiblich, 2=männlich, -9=keine Angabe), so kann man die Anzahl der Frauen mit Angabe des dritten Wertes 1 ermitteln:

PHP-Code

$anzahl_frauen = statistic('count', 'SD01', 1);  // Häufigkeit Frauen (1)
$anzahl_maenner = statistic('count', 'SD01', 2); // Häufigkeit Männer (2)
$anzahl_abgesch = statistic('count', 'SD01');    // Anzahl gültiger Daten 
$anzahl_all = statistic('count', 'SD01', false, true); // Alle Datensätze 
html('
  <p>Bisher haben an dieser Befragung '.$anzahl_all.' Personen
  eine Angabe zu Ihrem Geschlecht gemacht, allerdings wurde das
  Interview nur in '.$anzahl_abgesch.' Fällen auch abgeschlossen.</p>
  <p>Die abgeschlossenen Interviews umfassen '.
  $anzahl_frauen.' Frauen und '.
  $anzahl_maenner.' Männer.</p>
');
question('SD01');  // Frage nach dem eigenen Geschlecht

Multivariate Häufigkeit

Mit der crosscount-Statistik kann man (wie in einer Kreuztabelle) die Fälle auszählen, bei denen mehrere Variablen zutreffen.

Anstatt einer einzelnen Variable gibt man hier 2 oder mehr Variablen durch ein Komma (,) getrennt an. Als dritten Parameter Option gibt man an, welche Werte für jede Variable gezählt werden. Gezählt werden nur Fälle, die für die erste Variable den ersten Wert, für die zweite Variable den zweiten Wert, u.s.w. angegeben haben.

PHP-Code

$anzahl_junge_frauen = statistic('crosscount', 'SD01,SD02', '2,1');
$anzahl_erw_frauen = statistic('crosscount', 'SD01,SD02', '2,2');
html('
  <p>Bisher haben an dieser Befragung '.$anzahl_junge_frauen.' Personen
  angegeben, weiblich und in Altersgruppe 1 (bis 18 Jahre) zu sein.
  '.$anzahl_erw_frauen.' Frauen gaben ein Alter ab 19 Jahren an.</p>
');
question('SD01');  // Frage nach dem eigenen Geschlecht
question('SD02');  // Frage nach dem eigenen Alter

Gültige Prozent

Ausgegeben wird der Anteil eines Wertes an allen gültigen Angaben. Als drittes Argument muss der Wert angegeben werden, der gezählt werden soll.

PHP-Code

$anteil_frauen = statistic('percent', 'SD01', 1); // Anteil der Frauen
html('
  <p>Bisher haben an dieser Befragung '.
  $anteil_frauen.' Frauen teilgenommen.</p>
');
question('SD01');  // Frage nach dem eigenen Geschlecht

Modus, häufigster angegebener Wert

Gibt den Wert zurück, der bisher am häufigsten ausgewählt wurde. Wenn mehrere Werte gleich häufig ausgewählt wurden, dann werden diese durch ein Komma getrennt zurückgegeben.

Als drittes Argument (in diesem Fall vom Typ Boolean) kann man angeben, ob auch ungültige Werte (keine Antwort, etc.) mitgezählt werden.

PHP-Code

$modus = statistic('mode', 'AB01_02', true);
$modi = explode(',', $modus);  // Mehrere Werte trennen
if (count($modi) > 1) {
  // Mehrere häufigst genannte Werte
  html('
    <p>Mehrere Antworten wurden gleich oft gewählt.</p>
 ');
} else {
  // Texte der Antwortoptionen - zurückgegeben wird nur
  // der numerische Code
  $optionen = array(
    1 => 'stimme gar nicht zu',
    2 => 'stimme eher nicht zu',
    3 => 'stimme eher zu',
    4 => 'stimme voll zu',
    -1 => 'kann ich nicht sagen'
  );
  html('
    <p>Die häufigste Antwort auf diese Frage war: '.
    $optionen[$modus].'</p>
  ');
}

Mittelwert aller gültigen Angaben

Diese Statistik wird natürlich nur einen korrekten Wert berechnen, wenn für die Frage numerische Werte vorliegen. Bei einer Texteingabe werden Angaben, die keine Zahlen sind, ignoriert.

Sind bisher keine gültigen Werte vorhanden, wird 0 zurückgegeben.

PHP-Code

$mean = statistic('mean', 'BB01_03');
html('
  <p>Die Teilnehmer haben dem Programm bisher eine
  Durchschnittsnote von '.$mean.' gegeben.</p>
');

diagram()

string diagram(string Typ, string Variable, [string Optionen])

Falls man ein kleines Häufigkeitsdiagramm direkt im Fragebogen anzeigen will, lässt sich das mit der Funktion diagram() realisieren. Die Funktion gibt HTML-Code zurück, den man z.B. mit html() anzeigen kann.

Hinweis: Für das Diagramm werden nur vollständig ausgefüllte Fragebögen ausgewertet (d.h. die Variable FINISHED hat den Wert 1).

  • Typ Es stehen zwei Diagramm-Typen zur Auswahl:
    • bar
      Ein Säulendiagramm (zeigt als Beschriftung die Zahlencodes der Antworten).
      Das Säulendiagramm erwartet die Angabe einer Variable. Es wird die Häufigkeit jeder (bisher mindestes einmal gegebenen) Antwort als Säule angezeigt.
    • percent
      Balkendiagramm für Mehrfachantworten (zeigt Antwortalternativen als Beschriftung).
      Dieses Balkendiagramm zeigt an, wie häufig ein bestimmter Wert (z.B. 2 = angekreuzt) in unterschiedlichen Fragen ausgewählt wurde. Sinnvoll lässt sich dieser Diagrammtyp für eine Mehrfachauswahl verwenden, wenn man die Variablen der unterschiedlichen Items in der Mehrfachauswahl anbietet. Der Wert muss als Option übergeben werden, z.B. 'value=2', um anzuzeigen, wie häufig die Option in einer Mehrfachauswahl ausgewählt wurde.
  • Variable Als Variable muss mindestens eine gültige Variablen-Kennung angegeben werden, wie sie in der Variablen-Übersicht gelistet ist. Je nach Diagrammtyp stehen weitere Optionen zur Verfügung, u.a.
    • 'value=N'
      Angabe eines Wertes (für Typ 'percent')
    • 'width=N'
      Angabe wie breit das Diagramm sein soll, in Pixeln
    • 'height=N'
      Angabe wie hoch das Diagramm sein soll, in Pixeln

diagram2()

string diagram2(string Typ, array Daten, [array Optionen])

Mit der Funktion diagram2() kann man Daten visualisieren, die man vorher im Fragebogen berechnet hat - z.B. aus den Angaben des Benutzers via value() oder mittels statistic(). Derzeit kann diese Funktion nur ein Polaritätenprofil anzeigen.

  • Typ Legt die Art des Diagramms fest:
    • polar
      Polaritätenprofil
  • Daten Die Daten werden als zweidimensionales Array angegeben, also ein Array mit jeweils einem Array pro Datenreihe (s. Beispiel).
  • Optionen Für die Steuerung der Anzeige stehen eine Reihe von Optionen zur Verfügung - einige davon gelten nur für bestimmte Diagrammtypen. Die Optionen werden als benanntes Array angegeben (s. Beispiel unten).
    • int width - Breite des Diagramms (in Pixel)
    • int height - Höhe des Diagramms (in Pixel)
    • int min - Minimum der angezeigten Skala (nur Polaritätenprofil)
    • int max - Maximum der angezeigten Skala (nur Polaritätenprofil)
    • boolean labels - Die erste Datenreihe als Beschriftung verwenden
    • int labelwidth - Breite der Beschriftung (in Pixel)
    • array limit - Begrenzungen bei den angegeben Werten anzeigen (nur Polaritätenprofil)
    • array limitcolor - Hintergrundfarben für die verschiedenen Bereiche zwischen den Begrenzungen (nur Polaritätenprofil, angegeben als HTML-Farbcodes, z.B. '0000FF' für blau)
    • array rowcolor - Zeichenfarben für die Datenreihen (angegeben als HTML-Farbcodes)

Beispiel für Daten

array(
  array(1,2,3,4,5,6,7,8,10), // erste Datenreihe
  array(1,4,2,3,5,7,2,1,2)   // zweite Datenreihe
)

Beispiel für Optionen

array(
  'width' => 320,
  'height' => 120,
  'min' => 1,
  'max' => 5,
  'labels' => true,
  'limit' => array(2,4)
)

valueSum()

float valueSum(string|array Frage/Variablen)

Berechnet die Summe der Antwortcodes für alle Items einer Frage (z.B. einer Skala) oder für eine Liste von Variablen.

  • Frage/Variablen
    Geben Sie hier entweder die Kennung einer Frage (als String) an oder eine Liste (array) von Variablen-Kennungen.
// Summe über alle Antworten in der Skala AB01
$sum = valueSum('AB01');
// Summe über die Antworten in den Variablen AB01_01, AB01_03 und BB01_02
$sum = valueSum(array('AB01_01','AB01_03','BB01_02'));
// Derselbe Befehl etwas übersichtlicher
$sum = valueSum(
         array(
           'AB01_01',
           'AB01_03',
           'BB01_02'
         )
       );

valueMean()

float valueMean(string|array Frage/Variablen)

Berechnet das arithmetische Mittel (Durchschnitt, Erwartungswert) über die Antwortcodes für alle Items einer Frage (z.B. einer Skala) oder für eine Liste von Variablen.

  • Frage/Variablen
    Geben Sie hier entweder die Kennung einer Frage (als String) an oder eine Liste (array) von Variablen-Kennungen. Beispiele s. valueSum().
// Frage AB02 nur anzeigen, wenn der Mittelwert bei AB01 mindestens 1,5 beträgt
$mean = valueMean('AB01');
if ($mean >= 1.5) {
  question('AB02');
}

valueVar()

float valueVar(string|array Frage/Variablen)

Berechnet die unkorrigierten Stichprobenvarianzen (Varianz) über die Antwortcodes für alle Items einer Frage (z.B. einer Skala) oder für eine Liste von Variablen.

  • Frage/Variablen
    Geben Sie hier entweder die Kennung einer Frage (als String) an oder eine Liste (array) von Variablen-Kennungen. Beispiele s. valueSum().

valueSD()

float valueSD(string|array Frage/Variablen)

Berechnet die Standardabweichung (Standardabweichung) über die Antwortcodes für alle Items einer Frage (z.B. einer Skala) oder für eine Liste von Variablen.

  • Frage/Variablen
    Geben Sie hier entweder die Kennung einer Frage (als String) an oder eine Liste (array) von Variablen-Kennungen. Beispiele s. valueSum().
// Leute hinauswerfen, die in der Skala AB01 immer den
// gleichen Wert angekreuzt haben (Straightliner)
$sd = valueSD('AB01');
if ($sd == 0) {
  goToToPage('end');
}
 
// Leuten eine Meldung anzeigen, die in der Skala AB02
// überwiegend den gleichen Wert angekreuzt haben
$sd = valueSD('AB02');
if ($sd < 0.25) {
  text('think more');
}
de/create/functions-stat.txt · Zuletzt geändert: 18.03.2012 21:43 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki