0 votes
in SoSci Survey (dt.) by s092700 (305 points)

Hallo supporter!

Mittels Zufallsgenerator wurden jedem Teilnehmer*in Fragen zugewiesen. In der Auswertungstabelle kann ich nicht ablesen, auf welcher Seite, welche Items abgefragt wurden. Könnt ihr mir sagen, wie ich dahin komme, es zu können? Die Alternative, mir für jeden Fragebogen anzuschauen und herauszusuchen, welche Itemnummern die angekreuzten Items haben, erschien mir nicht das Sinnvollste zu sein...

Danke!

by SoSci Survey (312k points)
Könnten sie kurz den PHP-Code schildern, der für Ihren Fragebogen zum Einsatz kam? Geht es um eine Rotation (alles gezeigt, nur in gemischter Abfolge) oder um eine Randomisierung (nur einzelne Elemente gezeigt)?
by s092700 (305 points)
Antwort s. u.

1 Answer

0 votes
by s092700 (305 points)
edited by s092700

Sie werden lachen, weil Ihnen dieses Projekt vielleicht bekannt vorkommt...

AK21 ist eine Zufallsgeneratorfrage mit den Zetteln
001=A01, 002=A02, ... 081=A81, 082=A82, 101=B01,..., 181=B81 (nach 082 kommt 101).
Pro Interview werden 170 Zettel gezogen.
Insgesamt werden die gezogenen Items auf 5 aufeinanderfolgenden Seiten angezeigt (also jeweils 8+8 = 16). Am Ende jeder Seite gibt es ein Freitextfeld zum Kommentieren. Daher wäre es gut zu wissen, welche Items die Probanden gesehen haben, um die Kommentare zuordnen zu können.

$allItems = valueList('AK21');
$listA = array();
$listB = array();
foreach ($allItems as $code) {
  if ($code < 100) {
    $listA[] = $code;
  } else {
    $listB[] = $code - 100;
  }
}
$listA = array_chunk($listA, 8);
registerVariable($listA);
$listB = array_chunk($listB, 8);
registerVariable($listB);
question('AK02', $listA[0]);
question('AK03', $listB[0]);

In der Datentabelle gibt es die Spalten AK21x01,... AK21170, was ja den gezogenen Zetteln entspricht. Leider wird daraus keine Reihenfolge für die Seiten ersichtlich, ich habe das an den Fragebögen überprüft.
Beispielhaft hier in Spalte 1 die Ziffern, die in Spalte AK21x01 bis AK21x16 stehen und in Spalte 2 die Items, die ich einzeln herausgesucht habe, basierend auf der Druckausgabe des Fragebogens unter "Daten ansehen".

by SoSci Survey (312k points)
Oh ja :)

Also, die gute und zugleich schelchte Nachricht ist: Die Druckansicht des Datensatzes entspricht wahrscheinlich nicht (!) der Ansicht, wie sie im Interview war. Denn bei Abschluss des Interviews werden solche irrelevanten Daten gelsöcht. Testen Sie einmal, ob Sie bei mehrfachem Aufruf der Druckansicht, ob die Abfolge die gleiche bleibt.

Kurzum: Wenn Sie die Reihenfolge nicht mittels put() in internen Variablen abgespeichert haben, dann ist sie vermutlich auch nicht mehr vorhanden. Aber: Benötigen Sie die Reihenfolge?
by s092700 (305 points)
Bei mehrfachem Aufrufen der Druckansicht bleibt die Anzeige der Items sowie ihre Reihenfolge erhalten.
Das mit put() kommt mir bekannt vor, das hatte ich damals als ich es las in Bezug auf diese Thematik nicht in Verbindung gebracht. Somit kein put() in meinem Code, nur registerVariable.
Ja, ich benötige die Reihenfolge bzw. zumindest die Information, welche Items auf welcher der 5 Seiten angezeigt wurde, weil sich die Kommentare/Freitextantworten ja auf die einzelnen Seiten beziehen.
by SoSci Survey (312k points)
Ah - mein Fehler. Sie hatten gar nicht mit shuffle() gearbeitet, sondern mit einem Zuallsgenerator, oder? Dann haben Sie die Zuordnung auch im Datensatz (Zufallsgenerator-Variablen), wo was erschienen ist.

Wenn nicht, dann posten Sie doch bitte nochmal kurz, wie die Rotation in Ihrem Fall (am Ende) erfolgte.
by s092700 (305 points)
Ich habe den verwendeten Code oben im Detail gepostet.

Leider kann ich aus der Datenausgabe (zu lesen unter meinem Code oben) nicht herausinterpretieren, in welcher Reihenfolge die Items angezeigt wurden.

Das ist leider immer noch meine Frage.
by SoSci Survey (312k points)
Also: Wenn in AK21x1 der Code 7 steht, dann heißt das: Item A7 wurde auf Seite 1 angezeigt. Allerdings ist die Seite aufgrund der A-B-Abfolge davon abhängig, wie viele A- und B-Items jeweils "vorneweg" kommen.

Wenn Sie in R auswerten, ist die Lösung recht einfach. Dort erstellen Sie neue Variablen, in denen Sie die A- und B-Items getrennt listen. Aus 5,2,108,52,142,155,34 wird dann

5,2,52,34 und
108,142,155

Was in dieser Liste auf den Platz 1 steht, wurde auf Seite 1 abgefragt.

In Stata sollte es analog funktionieren. Wie man das in SPSS realisiert, kann ich leider nicht sagen.
by s092700 (305 points)
Danke für die Hinweise. Den zweiten Satz verstehe ich noch nicht ganz: Was meinen Sie genau mit "vorneweg"?

R ist gut. Wäre es möglich, dass Sie mir einen heißen Tip für den Aufbau dieser (wahrscheinlich) if-Schleife geben? Oder fehlen Ihnen dazu nötige Informationen?
by SoSci Survey (312k points)
Nein, in R läuft alle über subsets :)

Wenn also Ihr Datensatz z.B. df heißt, dann könnte das wie folgt aussehen:

varAK21 = grep("^AK21x", names(df), value=T)
parts = function(x) {
  items = x[varAK21]
  setA = items[items <= 100]
  setB = items[items > 100] - 100
  return(c(setA, setB))
)
newSet = gsub("^AK21", "AP", varAK21)
for (varID in newSet) {
  df[[newSet]] = NA
}
df[, newSet] = apply(df[, varAK21], MARGIN=1, parts)

Bei MARGIN in der letzten Zeile bin ich nicht sicher, ob es 1 oder 2 sein muss - und vermutlich hakt es auch noch an der ein oder anderen Stelle. Aber vom Prinzip her sollte es laufen.
by s092700 (305 points)
edited by s092700
Danke vielmals!! Probier' ich gleich mal aus.
Stimmt, das hakt noch... aber das ist eine Frage für den R-Support ;-)

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

...