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 Herr Leiner,

Sie haben mir schon so oft geholfen und nun stehe ich vor einem neuen spannenden Problem. Ich habe versucht das Ganze im Titel der Frage zu skizzieren, bin mir aber nicht sicher, ob mir dies gelungen ist.

Nun einige Informationen zur geplanten Untersuchung bzw. dem Problem:

Teilnehmer
Circa 125 Teilnehmmer nehmen über einen Zeitraum von 2 Wochen jeweils dreimal täglich an kurzen Befragungen teil, die in bestimmten Zeiträumen zugesendet werden sollen. (Diese Einstellungsmöglichkeit gibt es ja bei den Serienmails.)

Zu Beginn der Erhebungen (z.B. eine Woche davor) gibt es eine längere Eingangsbefragung.

Quasi-Randomisierung

Nun möchte ich realisieren, dass Teilnehmer an 3 zufälligen Tagen der 10 Tage andere Fragebögen bekommen. Für jeden dieser drei Tage gibt es eine besondere Art von Fragebögen. Das sind sozusagen Kontrolltage (wie in einer Experimentaluntersuchung Kontrollgruppen).

Man kann sich dies so veranschaulichen:
N = normaler Tag
K1 = Kontrolltag Typ1
K2 = Kontrolltag Typ2
K3 = Kontrolltag Typ3

Teilnehmer 1 Reihenfolge: N K2 N N N N K1 N K3 N
Teilnehmer 2 Reihenfolge: K1 N N N K3 K2 N N N N
Teilnehmer 3 Reihenfolge: N N N N K1 N K3 N N K2

Die Reihenfolge der Tage ist quasi-zufällig, nur mit der Bedingung, dass 3 der Tage jeweils K1,K2 und K3 sein müssen.

Weitere Bedingungen

Weiterhin muss jeder Fragebogenlink spezifisch an eine individuelle Mailadresse, d.h. Teilnehmer gesendet werden. Es ist wichtig, dass ich die Teilnehmerserial sozusagen immer "weitergebe", weil ich über eine Liste Informationen zu einem spezifischen Teilnehmer (seine Serial) hinterlege und diese Informationen immer wieder angezeigt werden müssen.

Ich kann dies nun natürlich über einen riesigen Aufwand realisieren, indem ich für jeden Teilnehmer unter Serialmails das Ergebnis einer irgendwie extern-realisierten randomiserten Zuordnung von Tagen eintrage. Aber bei 125 Personen mit 3 Fragebögen am Tag über 10 Tage hätte ich damit 3750 Zuweisungen von Personen zu 120 möglichen Fragebögen zu machen (d.h. 3 pro Tag in jeweils 4 möglichen Ausprägungen für 10 Tage).

Dann hatte ich gedacht das Ganze über Gruppe zu realisieren, aber dann ist der Aufwand nicht viel geringer, wenn ich viele Gruppen habe und die Randomisierung ist noch "unreiner."

Nun habe ich auch gesehen, dass es die Möglichkeit einer gewichteten Zufallsauswahl von Fragebögen gibt. Aber dies führt wohl nicht dazu, dass jeder Teilnehmer notwendig jeweils die drei verschiedenen Kontrolltage bekommt.

Weiterhin hatte ich gedacht, dass das Ziehen aus Urnen eine Richtung weiterzudenken ist, aber das bezieht sich ja eher auf Fragebogen interne Dinge.

Wie würden Sie dieses Problem angehen? Ich hoffe ich konnte meine Herausforderung gut beschreiben.

Viele Grüße und vielen Dank für Ihre tolle Unterstüzung, die Sie hier immer leisten!
Wilken Wehrt

in SoSci Survey (dt.) by s072745 (225 points)

1 Answer

0 votes

Puh - nicht ganz trivial. Ich denke, die einfachste Lösung besteht darin, dass man die Randomisierung direkt in der Vorherbefragung vornimmt. Das würde allerdings bedeuten, dass Sie die Zeitpunkte der Einladungen nicht in der Serienmail randmisieren, sondern ebenfalls in der Vorher-Befragung. Dann würde Sie mittels mailSchedule() festlegen, wann der Teilnehmer welchen Fragebogen erhält. Und zwar 10-mal (oder sogar 30-mal), also einmal für jede Einladung, die verschickt werden soll.

Die Rotation der Fragebögen selbst wäre recht einfach. Ich gehe hier einmal davon aus, dass Sie 4 Serienmails (1-4) mit einer EInladung zu "N" und je einer Einladung zu K1 is K3 vorbereitet haben:

$fb = array(1,1,1,1,1,1,1,2,3,4);
shuffle(fb);  // Evtl. noch mittels put() speichern

Auch die Zeiten sind nicht so schlimm - wenn Sie z.B. eine Zeit zwischen 9 und 11 Uhr ziehen möchten (also 120 Minuten), würden Sie z.B. nur die Minuten randomisieren:

$min = random(0, 120);
$time1 = strtotime('2017-11-09 9:00 +'.$min.' minutes');

Und das Ganze dann noch in mailSchedule() verwenden. Das $fb[0] wäre dann die Serienmail, die für Tag 1 verschickt werden soll.

mailSchedule(false, $fb[0], $time1);

Nachdem jede Mail pro Teilnehmer nur einmal verschickt werden kann, haben Sie natürlich noch ungleich mehr Kopien der Serienmails und müssten da noch ein wenig addieren (z.B. immer +0 für die erste Mail pro Tag, +1 für die zweite Mail und +2 für die dritte Mail). Aber um solche Detals kümmern wir uns, wenn das Gerüst steht.

by SoSci Survey (199k points)
Hallo Herr Leiner,

wir haben uns nun dazu entschlossen die Randomiserung der Tage weniger "rein" zu gestalten, um so den Aufwand und vor allem die Fehleranfälligkeit gering zu halten.

Daher ist es der neue Plan nun 5 Gruppen zu bilden, in denen jeweils 25 Personen sind. Jede Person in einer Gruppe  erhält somit die Fragebögen entsprechend der Reihenfolge, die einer Gruppe zugeordnet ist


Man kann sich dies so veranschaulichen:
N = normaler Tag
K1 = Kontrolltag Typ1
K2 = Kontrolltag Typ2
K3 = Kontrolltag Typ3
Gruppe 1 Reihenfolge: N    K2  N    N   N     N     K1   N    K3   N
Gruppe 2 Reihenfolge: K1  N    N    N   K3   K2   N     N    N     N
Gruppe 3 Reihenfolge: N    N    N    N   K1   N     K3   N    N     K2
Gruppe 4 Reihenfolge: N    N    K1  N   N     K2   N     N    K3   N
Gruppe 5 Reihenfolge: N    N    N    K1 N     N     K2   K3  N     N


Ich kann nun problemlos Gruppen erstellen und Teilnehmer den Gruppen zuordnen. Zur Zeit gehe ich weiterhin davon aus, dass ich für jede Gruppe jeweils 30 Serienmails benötige (3 pro Tag über zwei Wochen). Damit käme ich auf 150 Serienmails.

(Ich würde für jeden Tag zumindest 3 Fragebögen haben; dadurch habe ich im Datensetz nachher klar den Tag hinterlegt - die Ausfüllzeit ist hier manchmal "trügerisch" - oder wird auch die Versandzeit im Datensatz hinterlegt?)

Natürlich werde ich bei nur fünf Gruppen Tage haben, an denen nicht nur die Teilnehmer einer, sondern mehrere Gruppen  "normale" Fragebögen bekommen. Anhand meines Beispiel würden die Gruppen 1,3,4,5 am ersten Tag alles normale Fragebögen am ersten Tag bekommen. Dadurch reduziert sich die Anzahl der Fragebögen, die benötigt werden, noch einmal. Wenn man das Beispiel oben komplett durchspielt, bräuchte ich 63 Fragebögen.

Ich habe nun gedacht, ob man die Zuordnung nicht irgendwie (vielelicht auch nur optisch) "umdrehen" kann, um Aufwand zu sparen und Übersicht zu gewinnen.
Das heisst, man erstellt die Gruppen, ordnet dann die Reihenfolge der Fragebögen zu, sowie Versandzeiten zu.

Es geht mir auch etwas darum, dass Personen ggf. etwas abweichende Versandzeiten für die jeweilligen Fragebögen haben, sodass es sozusagen wieder Teilgruppen innerhalb der Gruppen geben muss etc.

Ich wollte die Frage oder Anregung einfach mal aritkulieren. Es ist in dem Sinne kein Problem, aber vielleicht habe ich eine Funktion in SoSciSurvey übersehen.

Liebe Grüße,
Wilken Wehrt
Sie können für alle Gruppen eine gemeinsame Serienmail verwenden - die Gruppenzugehörigkeit können Sie im Fragebogen dann über panelData() ermitteln.

>  wird auch die Versandzeit im Datensatz hinterlegt?

Wenn Sie die E-Mail-Adressen als "anonym" importierten ist das derzeit deaktiviert (sonst Variable MAILSENT), weil sich aus dem Versandzeitpunkt sehr einfach auf den Teilnehmer schließen lässt. Allerdings können Sie in jeder Serienmail bei "Link zum Fragebogen" als "Zusätzliche GET-Parameter" eine eindeutige Referenz für die Serienmail hinterlegen, z.B. "r=1", "r=2" u.s.w.

> Es geht mir auch etwas darum, dass Personen ggf. etwas abweichende Versandzeiten für die jeweilligen Fragebögen haben

Ich kenne nicht das komplette Setting. Aber Sie können in jedem Adresseintrag auch noch benutzerdefinierte Werte speichern und den Versand mittels mailSchedule() wie gewünscht terminieren.

Ich kann auch nochmal prüfen, ob wir eine Option ergänzen können, um das Entfernen von MAILSENT bei anonym importierten Adressen abzuschalten.
Hallo Herr Leiner,

(1) Das Hinterlegen der Versandzeit erlaubt in unserem Falle (glaube ich) normalerweise keinen eindeutigen Rückschluss auf den Teilnehmer, weil mehrere Teilnehmer denselben Fragebogen zur gleichen Zeit gesendet bekommen. Es kann aber einzelne Fälle geben, zu denen nur eine Person einen Fragebogen zum Zeitpunkt X bekommt.

Vielleicht kann man die Versandzeit nicht exakt, sondern "ungefähr" abspeichern.  Ich bräuchte - so wie ich es sehe - zwei Dinge: (a) Tag, an dem der Fragebogen gesendet wurde, (b) und ob der Fragebogen innerhalb von (z.B.) 5 Stunden ausgefüllt wurde.

Das komplette Zulassen von Mailsent erscheint problematisch, da es die Anonymität aufweicht. Man muss irgendwie die Anonymität gewährleisten, aber trotzdem wissen, dass ein Fragebogen noch "zeitig" ausgefüllt wurde. So stellt es sich mir momentan dar.
Der Nutzen bestünde für mich dadrin, dass ich nur 12 Fragebögen bräuchte, da ich Tage nicht kopieren müsste.

(2) Das Nutzen von mailSchedule() erscheint mir noch komplizierter bzw. ich kenne nötige Versendezeiten, aber diese variieren zwischen Teilnehmern, d.h. es gibt kaum eine allgemeine Regel, die ich dazu anwenden könnte. Ich kann es also im Fragebogen so gut wie nicht implementieren, sondern müsste es irgendwie händsich bei den Serienmails machen. Ich kann nicht sagen in so und so viel Stunden muss für jeden Teilnehmer der Gruppe der Fragebogen x kommen.
Selbst für einen spezifischen Teilnehmer kann das unterschiedlich sein.

Weiterhin ist meine fragebogen-interne Programmierung schon recht komplex, ich möchte in den Fragebogen selbst nichts mehr ändern müssen. (Auch weil dies intern so "abgesegnet" wurde etc.)

Es wäre also der Traum, wenn man Versandzeiten von verschiedenen Fragebögen für verschiedene Teilnehmer in einer "Tabelle" einmalig festlegen und dann auf einmal einlesen könnte. Aber sowas lässt sich nicht auf die Schnelle realisieren.

Ich versuche hier nochmal das "Setting" genau zu beschreiben:

125 Menschen (jeweils 25 in einer von fünf Gruppen) bekommen vor Arbeitsbeginn, gegen Mittag und vor Arbeitsende über 2 Wochen einen Kurzfragebogen zugesendet, d.h. 30 Fragebögen pro Person. An sieben Tagen gibt es die normalen Arbeitsbeginn-, Mittag- und Arbeitsendefragebögen. An drei Tagen gibt es andere Fragebögen, die sich untereinander unterschieden. Das heisst es gibt insg. 12 verschiedene Fragebögen, die jede Person verschieden häufig bekommt. (Aber immer an 7 Tagen die "normalen" Fragebögen.)

Personen werden zufällig einer von fünf Gruppen zugeordnet. Jede Gruppe legt sozusagen die Reihenfolge fest, wann welche Fragebogenart verschickt wird. Wie in meinem Beispiel:
N = normaler Tag
K1 = Kontrolltag Typ1
K2 = Kontrolltag Typ2
K3 = Kontrolltag Typ3
Gruppe 1 Reihenfolge: N    K2  N    N   N     N     K1   N    K3   N
Gruppe 2 Reihenfolge: K1  N    N    N   K3   K2   N     N    N     N
Gruppe 3 Reihenfolge: N    N    N    N   K1   N     K3   N    N     K2
Gruppe 4 Reihenfolge: N    N    K1  N   N     K2   N     N    K3   N
Gruppe 5 Reihenfolge: N    N    N    K1 N     N     K2   K3  N     N

Weiterhin ist es so, dass jede Person auch individuell angibt, wann die Arbeit begonnen wird, Mittag gemacht wird und die Arbeit beendet wird. Es kann daher sein, dass man auch noch zwischen Menschen unterscheiden muss, die die Arbeit früh oder spät beginnen, früh oder spät Mittagspause machen und früh oder spät die Arbeit beenden. (Es gibt aber keine Menschen, die Nachtschicht arbeiten.)

Jede Person soll den "richtigen" Fragebogen (definiert durch Tag und Gruppenzugehörigkeit) relativ zeitnah vor dem individiduellen Arbeitsbgeinn, der invidiuellen Mittagspause und dem Arbeitsende bekommen. Und ich möchte sicherstellen, dass die Beantwortung relativ zeitnah geschehen ist und die Anonymität muss gewährleistet bleiben.

Man sieht, das ist schon eine komplexe Angelegenheit ;-)

Liebe Grüße,
Wilken Wehrt
>  zwei Dinge: (a) Tag, an dem der Fragebogen gesendet wurde, (b) und ob der Fragebogen innerhalb von (z.B.) 5 Stunden ausgefüllt wurde.

Da muss ich nochmal in mich gehen ... aber ich bin zuversichtlich, dass es da eine Lösung gibt.

Das mit dem Einlesen der Versand-Zeitpunkte aus einer Tabelle ist eine gute Idee. Nichts, was kurzfristig implementiert werden kann, aber das kommt auf jeden Fall auf die Wunschliste künftiger Funktionen. Wie wird denn in Ihrem Fall die Zuordnung der Zeitpunkte erfolgen - haben Sie personenbezogene Informationen zu den Teilnehmern, von denen das abhängig sein wird?

>  An sieben Tagen gibt es die normalen Arbeitsbeginn-, Mittag- und Arbeitsendefragebögen. An drei Tagen gibt es andere Fragebögen, die sich untereinander unterschieden.

Ich zähle da - ehrlich gesagt - nur 4 Fragebögen. Nur am Rande: Sie können denselben Teilnehmer mit unterschiedlichen Serienmails auch mehrmals zum selben Fragebogen einlagen.
Zu den Fragebögen: Es gibt vier verscheidene Tage, aber an jedem Tag wieder 3 verschiedene Fragebögen, d.h. 4 x 3 = 12. Das hatte ich wohl nicht klar ausgedrückt.

Noch ein weiterer Punkt: Meine Kollegin teilte mir mit, dass man eine Serienmail nur einmal an eine Person versenden kann. Das verlangt von mir natürlich zumindest das Kopieren der Serienmails für jeden Tag. Richtig?

Viele Grüße
Wilken Wehrt
> Das verlangt von mir natürlich zumindest das Kopieren der Serienmails für jeden Tag. Richtig?

Ja, das ist korrekt.
So ... ich konnte mich mittlerweile des Problems mit MAILSENT und der Anonymität annehmen. Als Lösung wurde die Funktion panelData() erweitert. Die Lösung für Ihr Problem ist hier als letztes Beispiel nachzulesen:
https://www.soscisurvey.de/help/doku.php/de:create:functions:paneldata
...