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

Ich möchte einen Fragebogen erstellen, bei dem aus 163 Items zufällig 55 gezogen und auf drei aufeinanderfolgenden Seiten angezeigt werden. Die Beantwortung der Items soll auf einer 6-Punkt-Likert Skala erfolgen.

Wähle ich >Frage hinzufügen >Typ >Bewertungen (Ratings) >Skala (Zwischenwerte beschriftet), kann ich die Items reinladen, jedoch funktioniert die zufällige Auswahl nicht.

Wähle ich >Frage hinzufügen >Typ >Funktionale Bausteine >Zufallsgenerator (--> 55 Zettel, gleichverteilte Ziehung), kann ich die Items in der Urne platzieren, jedoch werden mir bei der Testung Fehlermeldungen angezeigt:
Die Funktion random_items() kann aus 0 gegebenen Items keine 54 Items ziehen.//Die Frage AK03 unterstützt keine individuelle Steuerung der enthaltenen Items/Optionen. Der Parameter wird ignoriert.//Im php-Code trat ein Fehler auf.

Bei >Fragebogen zusammenstellen habe ich versucht, einen Randomisierungs-Code für den betreffenden Zettel hinzuzfügen, das funktioniert aber leider nicht (Code über oder unter dem Fragebogenbaustein?).

Vielen Dank für hilfreiche Ideen!

1 Answer

0 votes
by SoSci Survey (302k points)

Eine Herausforderung besteht darin, dass Sie aus einem Pool von mehr als 99 Items auswählen. Das bekommen Sie in einer einzelnen Skalen-Frage nicht unter - und damit wird es komplizierter. Aber ich vermute, die Items ließen sich unproblematisch in 2 Fragen aufteilen und es wäre nicht weiter problematisch, wenn ein Teil der Items jeweils weiter vorne im Fragebogen käme und ein anderer Teil jeweils weiter hinten.

Gehen wir einmal davon aus, Sie haben zwei Fragen SK01 und SK02, die 80 und 83 Items enthalten. Dann legen Sie in den Zufallsgenerator (z.B. RG01) erstmal die Codes 1=A01, 2=A02, ... bis 80=A80 und 101=B01, 102=B02 bis 183=B83. Daraus 55 Codes zu ziehen ist kein Problem.

Jetzt lesen wir mit valueList() die gezogenen Werte in ein Array aus - und sortieren gleich in zwei Listen (die Codes < 100 in eine Liste, die Codes > 100 in eine andere).

$allItems = valueList('RG01');
$listA = array();
$listB = array();
foreach ($allItems as $code) {
  if ($code < 100) {
    $listA[] = $code;
  } else {
    $listB[] = $code - 100;
  }
}

So, nun haben wir zwei Listen - und in der zweiten haben wir die führende 1 gleich abgeschnitten. Die Codes in den Listen entsprechen also den Kennung in den Fragen. Und schon können wir die beiden Frage einfach anzeigen:

question('SK01', $listeA);
question('SK02', $listeB);

Wenn Sie die Items noch auf mehrere Seiten verteilen möchten, müssen Sie die Listen evtl. noch ein wenig zerlegen und die Variablen mit registerVariable() für spätere Seiten verfügbar machen. Aber das ist dann die Feinarbeit.

by s092700 (305 points)
edited by s092700
Danke für die Antwort. Da ich noch Anfänger in Sachen php und soscisurvey bin, brauche ich ein paar kleinschrittigere Hinweise.

"Pool von mehr als 99 Items auswählen. Das bekommen Sie in einer einzelnen Skalen-Frage nicht unter - [...] Items ließen sich unproblematisch in 2 Fragen aufteilen
--> habe A102 mit 82 Items, A103 mit 81 Items

"und es wäre nicht weiter problematisch, wenn ein Teil der Items jeweils weiter vorne im Fragebogen käme und ein anderer Teil jeweils weiter hinten."
--> Aus den 163 Items sollen 55 Items gezogen werden. Wann welche Frage kommt ist irrelevant. Allerdings sollen nicht aus A102 bspw. 30 und aus A103 bspw. 25 Items zufällig gezogen werden, da dies dazu führt, dass immer aus beiden Fragen Items angeboten werden. Handelt es sich um eine einzige Itemliste, könnten in einem Fall ja auch sozusagen nur aus A102 55 Items ausgewählt werden.

"Gehen wir einmal davon aus, Sie haben zwei Fragen SK01 und SK02, die 80 und 83 Items enthalten."
--> A102 (à 82 Items) und A103 (à 81 Items)

"Dann legen Sie in den Zufallsgenerator (z.B. RG01)
--> erstelle ich den über die angegebene Funktion?
--> $allItems = valueList('RG01');
--> mir scheint, da fehlt noch die Definition von RG01?

"Daraus 55 Codes zu ziehen ist kein Problem."
--> Hiermit?
$items = random_items('[welche Bezeichnung?]', 55);
question('[welche Bezeichnung?]', $items);
--> Warum das Verteilen in Arrays?

"Jetzt lesen wir mit valueList() die gezogenen Werte in ein Array aus - und sortieren gleich in zwei Listen (die Codes < 100 in eine Liste, die Codes > 100 in eine andere)."

--> Und eigentlich soll ja aus dem Pool von 163 Items eine zufällige Anzahl gezogen werden und nicht aus zwei Listen à 83/80 Items nacheinander.

Ist es möglich, einen kurzen Verweis zu geben, wie ich den Schritt "Listen zerlegen und Variabel für spätere Seiten verfügbar machen" genau umsetze mit meinen Benennungen?

Vielen Dank!
by SoSci Survey (302k points)
> "Dann legen Sie in den Zufallsgenerator (z.B. RG01)
> --> erstelle ich den über die angegebene Funktion?

Nein, das ist einfach ein Fragetyp, s. Anleitung "Randomisierung".

> "Daraus 55 Codes zu ziehen ist kein Problem."
> --> Hiermit?

Nein, das stellen Sie direkt in der Zufallsgenerator-"Frage" ein.

> --> Und eigentlich soll ja aus dem Pool von 163 Items eine zufällige Anzahl gezogen werden und nicht aus zwei Listen à 83/80 Items nacheinander.

Das ist auch nicht der Fall. Sie müssen die Items nur auf 2 Fragen verteilen. Gezogen wird unabhängig von den Fragen.

> Ist es möglich, einen kurzen Verweis zu geben, wie ich den Schritt "Listen zerlegen und Variabel für spätere Seiten verfügbar machen" genau umsetze mit meinen Benennungen?

Gerne, aber bitte in einer neuen Frage (wenn Sie sich den Zufallsgenerator einmal angesehen haben). Hier in den Kommentaren wird das schnell unübersichtlich. Vor allem, wenn die Kommentare länger sind. Verwenden Sie gerne den Knopf "ask related question".
by s092700 (305 points)
Mir ist bei folgendem ein Punkt noch nicht ganz klar.
>> Gehen wir einmal davon aus, Sie haben zwei Fragen SK01 und SK02, die 80 und 83 Items enthalten. Dann legen Sie in den Zufallsgenerator (z.B. RG01) erstmal die Codes [...] <<

Weist SK1 bzw. darauf hin, dass Sie eine SKala-Frage erstellt haben?
Später kommentieren Sie, dass ich das zufällige Ziehen der 55 Items direkt in der Zufallsgeneratorfrage einstelle --> Also doch unter Rubrik --> neue Frage erstellen --> Zufallsgenerator?

An dieser Stelle (https://support.soscisurvey.de/?qa=4694/zufallsgenerator-kombinieren-mit-likert-skala&show=4710#c4710) bestätigen Sie, dass ich direkt 163 Items in die Zufallsgeneratorfrage einspeisen kann , dann habe ich jedoch keine SK1 und SK2-Fragen erstellt mit à 80 bzw. 83 Items, sondern lediglich eine einzige Frage mit 163 Items.

Ich bin verwirrt - danke, für Ihre Antworten bisher - auch wenn ich die Enden noch nicht so zusammenführen kann.
by SoSci Survey (302k points)
> Weist SK1 bzw. darauf hin, dass Sie eine SKala-Frage erstellt haben?

Ich dachte an eine Frage vom Typ "Skala", ja.

> Später kommentieren Sie, dass ich das zufällige Ziehen der 55 Items direkt in der Zufallsgeneratorfrage einstelle --> Also doch unter Rubrik --> neue Frage erstellen --> Zufallsgenerator?

Ja, korrekt. Aber den Zufallsgenerator benötigen Sie zusätzlich (!) zu den Fragen mit den Items.

> bestätigen Sie, dass ich direkt 163 Items in die Zufallsgeneratorfrage einspeisen kann

Ein Zufallsgenerator zieht einfach nur zufällig Werte. Prinzipiell könnten diese Werte auch Items sein. Wenn Sie z.B. eine große Anzahl Bilder (als Items) haben und einige davon bewerten lassen möchten. Es können auch Texte sein. Aber dann benötigen Sie auf jeden Fall noch eine oder mehrere Fragen, um auch die passenden Antwortoptionen zu bekommen/darzustellen.

Wenn Sie Skalenitems haben (also Items, die jeweils mit den gleichen Antwortoptionen beantwortet werden sollen), dann empfehle ich, die Itemtexte nicht im Zufallsgenerator sondern direkt in einer (bzw. in Ihrem Fall 2) Skalenfragen zu verwalten. Ansonsten wird das eine sehr ambitionierte Auswertung.

Meine Empfehlung also nochmal zusammenfassend: 1x Zufallsgenerator mit 163 Zetteln. 2x Skalenfrage mit insg. 163 Items. Und ein PHP-Code, der dafür sorgt, dass aus den Skalenfragen jene Items angezeigt werden, die den im Zufallsgenerator gezogenen Zetteln entsprechen.
by s092700 (305 points)
Vielen Dank für Ihre zügigen Rückmeldungen und Ihr Bemühen! Auch für die prägnante zusammenfassende Darstellung des Vorgehens Ihres letzten Beitrags, den Humor allgemein und die relative Ausführlichkeit.

Bedauerlicherweise reicht mein Wissensstand, mein guter Wille sowie all mein Studieren der Hilfeseiten nicht dazu aus, die Hinweise zusammen zu setzen.
Beantwortet Ihr Beitrag eine gestellte Frage, stehe ich prompt vor der nächsten, sodass ich keine andere Lösung für mich sehe, als auf unipark umzusteigen - auch wenn ich soscisurvey sehr viel ansprechender finde.

Ich weiß, Sie machen das alles nebenher und ich bin jemand von einigen zehntausend Nutzerinnen und Nutzern, welcher Fragen stellt.
 
Ich habe den Eindruck, meine Frage könnte mit Ihrer Zusammenarbeit innerhalb von einer halben Stunde gelöst werden. Das scheint aber nicht möglich zu sein.
Wenn meine Frustration jetzt anklagend herüberkommt, dann tut es mir Leid. Ich bin mir bewusst, dass ich keine Ansprüche stellen kann, sondern dankbar sein sollte für das, was geht. Allerdings geht es leider nicht vorwärts Richtung Ziel.
Ich würde mir eine auf mich angepasste Hilfestellung wünschen.
Meine Uni stellt leider keine Ausbildung oder Workshops für den Umgang mit soscisurvey zur Verfügung und in meinem Bekanntenkreis habe ich ebenfalls keine Profis gefunden.
by SoSci Survey (302k points)
Tut mir leid das zu hören.

> keine andere Lösung für mich sehe, als auf unipark umzusteigen

Viel Glück ;) (Anm. das ist gerade schwarzer Humor, weil ich befürchte, dass Sie bei UniPark nicht die erforderlichen Werkzeuge haben, um die gewünschte Aufgabestellung zu realisieren)

Es tut mir leid, wenn Ihnen die Hilfe hier im Support nicht so hilft, wie Sie es bräuchten. Aber ich bezweifle auch, dass es am Telefon besser ginge. Dafür hatte ich zu viele Telefongespräche auch im Programmier-Kontext...

Meine Einschätzung nach haben Sie vier Möglichkeiten: (1) Aufgeben, (2) einen Programmierer buchen, (3) es mit UniPark ausprobieren und voraussichtlich feststellen, dass es auch dort nicht so geht, wie Sie es gerne realisieren würden und (3) die drei Fragen anlegen wie oben beschrieben, den PHP-Code aus dem anderen Posting in den Fragebogen kopieren und einfach mal schauen wie weit Sie kommen (und dann natürlich gerne wieder fragen). Ich habe ein wenig das Gefühl, Sie trauen es sich nicht zu und deshalb probieren Sie es gar nicht.

Sollten Sie wider Erwarten mit (3) erfolgreich sein, reiben Sie mir das übrigens bitte gerne unter die Nase. Dann weiß ich, dass meine Einschätzung falsch war und werde so etwas auch nie wieder behaupten.
by s092700 (305 points)
Legende:
AK04 ist eine Zufallsgeneratorfrage, welche den Zahlen 0-183 die Kennwerte A1-A80 und B1-B83 zuweist.
AK02 und AK03 sind vollbeschriftete Likert-Skalenfragen à 80 (AK02, bzw. A) und 83 Items (AK03, bzw. B).

Lasse ich diesen Code ausführen
$allItems = valueList('AK04');
$listA = array();
$listB = array();
foreach ($allItems as $code) {
  if ($code < 100) {
    $listA[] = $code;
  } else {
    $listB[] = $code - 100;
  }
}
question('AK02', $listA);
question('AK03', $listB);

wird im debug-Testmodus gleich zur "end" Seite geleitet.

Die Informationen lauten wie folgt:
[Verarbeitung]    Erstelle Fragebogen-Seite Nr. 3
[Inhalt]    Erstelle Frage AK02
[Inhalt]    Erstelle Frage AK03
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr.
[Verarbeitung]    Erstelle die letzte Seite des Fragebogens

Wieso erstellt "er" die Items nicht?
by SoSci Survey (302k points)
Okay, das ist etwas, womit wir arbeiten können. Könnten Sie bitte unter der ersten Zeile folgendes Zeile einfügen und kurz posten, was der Fragebogen im Debug-Modus über $allItems erzählt? Danke.

debug($allItems);
by s092700 (305 points)
Das ging ja fix! Danke. Er erzählt folgendes:
[Verarbeitung]    Erstelle Fragebogen-Seite Nr. 3
debug()    Inhalt: AK04x01, AK04x02, AK04x03, AK04x04, AK04x05, AK04x06, AK04x07, AK04x08, AK04x09, AK04x10, AK04x11, AK04x12, AK04x13, AK04x14, AK04x15, AK04x16, AK04x17, AK04x18, AK04x19, AK04x20, AK04x21, AK04x22, AK04x23, AK04x24, AK04x25, AK04x26, AK04x27, AK04x28, AK04x29, AK04x30, AK04x31, AK04x32, AK04x33, AK04x34, AK04x35, AK04x36, AK04x37, AK04x38, AK04x39, AK04x40, AK04x41, AK04x42, AK04x43, AK04x44, AK04x45, AK04x46, AK04x47, AK04x48, AK04x49, AK04x50, AK04x51, AK04x52, AK04x53, AK04x54, AK04x55, AK04x56, AK04x57, AK04x58, AK04x59, AK04x60, AK04x61, AK04x62, AK04x63, AK04x64, AK04x65, AK04x66, AK04x67, AK04x68, AK04x69, AK04x70, AK04x71, AK04x72, AK04x73, AK04x74, AK04x75, AK04x76, AK04x77, AK04x78, AK04x79, AK04x80
[Inhalt]    Erstelle Frage AK02
[Inhalt]    Erstelle Frage AK03
[Information]    Die Seite zeigt keine Inhalte, automatisch weiter mit Seite Nr.
[Verarbeitung]    Erstelle die letzte Seite des Fragebogens
by SoSci Survey (302k points)
Okay, es scheint, als hätten Sie den Zufallsgenerator noch keine Zettel ziehen lassen. Bitte ziehen Sie die Frage AK04 einmal über dem PHP-Code in die Fragebogen-Seite. Dann sollte sich sowohl die Anzeige ändern - und vielleicht klappt es auch schon mit den Items.
by s092700 (305 points)
Der Wahnsinn, dass das funktioniert!
Er zieht 80 Items, sie werden angezeigt, allein diese eine Fehlermeldung stört mich noch:
"Für die Frage AK02 wurde kein Item mit der Kennung 81 gefunden."
Womit "er" ja auch recht hat, denn AK02 geht nur bis 80.
Hab ich irgendwo eine fehlleitende Info versteckt?
by SoSci Survey (302k points)
> "Für die Frage AK02 wurde kein Item mit der Kennung 81 gefunden."

Prüfen Sie bitte nochmal den Zufallsgenerator. Steht da irgendwo 81 = ...?

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

...