0 votes
in SoSci Survey (dt.) by s297728 (140 points)
edited by s297728

Liebes Team,

ich habe aktuell eine Befragung im Feld, bei der es leider Probleme mit der Speicherung bzw. dem Redirect von Speedern zu geben scheint. Zum Teil werden Fälle in meinem Datensatz als Speeder identifiziert, aber als Complete an den Anbieter zurückgeleitet.

Ich verwende auf der letzten Seite den folgenden Code:

if ((caseTime('begin') < 240)) {
redirect('Speeder-Link vom Dienstleister', false);
 }

'Speeder-Link vom Dienstleister' ist hier natürlich nur ein Platzhalter.

Auf der letzten Seite definiere ich erst meine Quoten:

    $quotaEducation = [
  1 => 1352,  // 1352 Personen in Bildungsgruppe niedrig ((noch) kein Abschluss – ohne Abitur, 51 Prozent)
  2 => 1298  // 1298 Personen in Bildungsgruppe hoch (Abitur + mehr, 49 Prozent)
   ];
 $quotaGender = [
  1 => 1272,  // 1272 Frauen (Code 1)
  2 => 1378  // 1378 Männer (Code 2)
 ];
 $quotaAge = [
  1 => 822,  // 822 Personen in Altersgruppe 1 (16-20 Jahre, 31,34 Prozent)
  2 => 1828,  // 1828 Personen in Altersgruppe 2 (21-29 Jahre, 68,66 Prozent)
 ];


// Die Bildung wird umkodiert
 $education = value('RM07');
 if ($education <= 3) {
  $educationGroup = 1;
 } elseif ($education >= 4) {
  $educationGroup = 2;
 }

 // Geschlecht wird direkt ausgelesen
 $gender = value('RM05');

 // Das Alter wird umkodiert
 $age = value('RM06_01');
 if ($age <= 20) {
  $ageGroup = 1;
 } elseif ($age <= 29) {
  $ageGroup = 2;
 }

put('IV04_01', $educationGroup);
put('IV05_01', $gender);
put('IV06_01', $ageGroup);

Und in einem separaten PHP-Code auf der gleichen Seite ist der complete-Link eingebaut:

redirect ('Complete-Link');

Liegt das Problem in meinem Code? Oder was könnten andere mögliche Fehlerquellen sein?

Ich freue mich über Unterstützung und bedanke mich im Voraus.

1 Answer

0 votes
by SoSci Survey (343k points)

Der Fehler steckt in dieser Zeile:

if ((caseTime('begin') < 240))

Es müsste heißen

if ((caseTime('hitherto') < 240))

Das stand bis vor kurzem noch falsch in der Anleitung. Nach einer ziemlich langen Fehlersuche haben wir dasselbe Problem letzte Woche in einem Projekt endlich eingrenzen können.

Erklärung: caseTime('hitherto') liefert die Verweildauer, wohingegen caseTime('begin') die Zeitraum seit Start der Erhebung liefert. Und wenn jemand den Fragebogen startet, dann auf Seite 3 auf dem Mobilgerät zu Instagram wechselt und nach 5 Minuten zurück kommt und der Browser die Seite dann neu lädt, dann wird das bei caseTime('begin') mitgezählt.

by s297728 (140 points)
Ganz, ganz herzlichen Dank für die schnelle Antwort!
ago by s297728 (140 points)
Vielen Dank noch einmal für die Unterstützung mit dem PHP-Code! Die Änderung im Code scheint bereits den Großteil der Probleme behoben zu haben. Allerdings gibt es weiterhin einzelne Fälle, in denen mein Anbieter eine Befragung als Complete anzeigt, obwohl die entsprechende Person in meiner Datenansicht die Mindestdauer im Fragebogen nicht erreicht hat.

Der Anbieter hat mir zusätzlich die dort erfasste Bearbeitungsdauer mitgeteilt, die deutlich über der Mindestdauer und sogar über einer Stunde liegt. Daher vermute ich, dass der oder die Befragte einen längeren Zeitraum nicht aktiv in der Umfrage verbracht hat, sodass die Zeit auf den Seiten nicht korrekt gezählt wurde.

Allerdings frage ich mich weiterhin, warum diese Person dennoch als Complete an den Anbieter zurückgeleitet werden konnte.

Gibt es dafür eine Erklärung – und vielleicht auch einen Lösungsansatz?

Ich bedanke mich ganz herzlich im Voraus!
ago by SoSci Survey (343k points)
Welche Werte stehen denn in den TIME*** Variablen der Person?
ago by s297728 (140 points)
In beiden Fällen stehen in den TIME-Variablen für die einzelnen Seiten eigentlich Werte, die die Mindestdauer erfüllen sollten. Nur in TIME_SUM steht ein Wert, der den Grenzwert nicht überschreitet. Ich nehme hierfür mal zwei Beispielfälle:
Fall 1: In TIME_SUM ist ein Wert von 142 Sekunden festgehalten. Rechnerisch ergibt sich aus den Einzelwerten der TIME-Variablen jedoch ein Gesamtwert von 1966 Sekunden, wovon 1827 Sekunden auf TIME_001 fallen.
Fall 2: In TIME_SUM wurden 157 Sekunden vermerkt, rechnerisch ergeben die TIME-Variablen jedoch einen Wert von 279 Sekunden.

Ich vermute weiterhin, dass es sich dabei um Befragte handelt, die die Umfrage unterbrochen haben, weswegen der bereinigte Wert in TIME_SUM einen niedrigeren Wert anzeigt. Mich wundert nur, wieso diese Fälle an den Anbieter als Complete zurück geleitet werden. Kann ich dafür eventuell noch einen zusätzlichen Code o.ä. einfügen?
ago by SoSci Survey (343k points)
> Nur in TIME_SUM steht ein Wert, der den Grenzwert nicht überschreitet.

Lesen Sie dazu bitte https://www.soscisurvey.de/help/doku.php/de:results:variables#antwortzeiten

Kurzfassung: TIME_SUM enhält einen Wert, der post-hoc (!) um Ausreißer korrigiert ist. Dieser Wer steht aber während der Interviews noch nicht zur Verfügung, weil man ja erst den kompletten Datensatz benötigt, um zu definieren, was normale Werte sind und was Ausreißer.

caseTime('hitherto') liefert Ihnen einfach die Summe der TIME***-Variablen.

Wenn Sie TIME001 ausschließen möchten, dann müssten Sie die Summe manuell berechnen über caseTime(2) + caseTime(3) + ...
ago by s297728 (140 points)
Vielen Dank für die Erklärung und die Unterstützung!

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

...