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

Ich habe folgendes Problem: Ich würde gerne das Alter von Teilnehmenden separat zum restlichen Datensatz speichern (ansonsten könnte die Befragung nicht anonym durchgeführt werden). Über die Funktion zur getrennten Speicherung von Kontaktdaten lässt sich dies leider nicht realisieren, da mehrere Teilnehmende dort ja nicht dieselbe Eingabe machen dürfen. Gibt es eine Alternative für die datenschutzkonforme Speicherung des Alters als getrennte Variable? Vielen Dank!

ago in SoSci Survey (dt.) by s036623 (160 points)
Wie haben Sie sich denn die Auswertung vorgestellt, wenn Sie das Alter separat speichern?

Und was ist Ihre Grundgesamtheit, sodass das Alter ausreicht, um Personen eindeutig zu identifizieren?
Ich muss nur das Durchschnittsalter ermitteln, aber ansonsten muss ich das Alter nicht weiter analysieren. Zusammen mit dem Geschlecht könnte ich bei nichtgetrennter Speicherung des Alters einzelne Personen in der betreffenden Kleingruppe identifizieren.

1 Answer

0 votes
 
Best answer

Nun, im Prinzip können Sie Angaben aus dem Fragebogen (normal abgefragt) in die Datenbank für Inhalte kopieren und anschließend mittels dropValue() aus dem Datensatz löschen. Das könnte z.B. so aussehen:

$alter = (int)value('SD01_01');
if ($alter && !isset($alterSet)) {
  $key = 'A'.$alter;
  $cnt = dbGet($key);
  if (!$cnt) {
    $cnt = [1];
  } else {
    $cnt[0]++;
  }
  dbSet($key, $cnt);
  // Nur ein Alter pro Interview speichern
  $alterSet = true;
  registerVariable($alterSet);
}
dropValue('SD01_01');

In der Datenbank für Inhalte bekommen Sie dann die Häufigkeiten. Allerdings könnte die Zeitstempel vorübergehend eine Zuordnung zu einzelnen Interviews ermöglichen. Dies könnten Sie umgehen, wenn Sie mittels dbTouch() jedesmal alle Zeitstempel überschreiben.

Eventuell wäre es aber einfacher, das Alter wegzulassen oder in Kategorien anzufragen.

ago by SoSci Survey (190k points)
selected ago by s036623
Vielen Dank schon mal für diese Idee und den Beispielcode! Werden die Datenbanken für Inhalte auch wie die getrennt erhobenen Kontaktdaten ohne spezielle Reihenfolge gespeichert oder ließe sich anhand der Abfolge der Altersangaben in der Datenbank in Kombination mit der Abfolge der Interviews ermitteln, welche Teilnehmede welches Alter eingegeben haben?
Noch eine weitere Idee: Wäre es nicht auch möglich, die Funktion zur getrennten Speicherung der Kontaktdaten zu "überlisten", indem man mit JavaScript oder PHP einen längeren String aus Zufallszahlen einfach an die Eingabe anhängt? Dann würde man der Variable statt "23" sowas wie "23-0932840983498234" übergeben und eine doppelte Eingabe im Datensatz wäre praktisch ausgeschlossen. Dann müssten bei der Analyse nur die Zeichen ab dem Bindestrich gelöscht werden. Ginge das so?
> Werden die Datenbanken für Inhalte auch wie die getrennt erhobenen Kontaktdaten ohne spezielle Reihenfolge gespeichert

Sie würden dort - mit obigem Code - sogar nur die Häufigkeiten pro Alter speichern. Sonst hätte ich das doch gar nicht vorgeschlagen :)

> Wäre es nicht auch möglich, die Funktion zur getrennten Speicherung der Kontaktdaten zu "überlisten", indem man mit JavaScript oder PHP einen längeren String aus Zufallszahlen einfach an die Eingabe anhängt?

Ziemlich wackelig ... von solchen Basteleien würde ich die Finger lassen. Der Code müsste in den richtigen Moment zwischen dem Klick auf "Weiter" um dem Senden der Daten "grätschen". Und dann muss JavaScript auch aktiviert sein. Hinzu kommt, dass man das Eingabefeld nicht so flexibel formatieren kann wie bei der offenen Texteingabe.
Ach so, jetzt habe ich den Code oben erst richtig verstanden. Das würde in Kombination mit dbTouch() aber dann genau mein Problem lösen! dbtouch() müsste dann einfach am Ende des Code-Ausschnitts oben hinzugefügt werden oder schon nach dbSet($key,$cnt);?
> dbtouch() müsste dann einfach am Ende des Code-Ausschnitts oben hinzugefügt werden oder schon nach dbSet($key,$cnt);?

Sie müssten alle relevanten Altersklassen berühren, etwa am Ende des Codes wie folgt:

for ($alter=18; $alter<=50; $alter++) {
  $key = 'A'.$alter;
  dbTouch($key);
}
...