0 votes
in SoSci Survey (dt.) by s120469 (130 points)

Hallo liebes Support-Team,

ich habe in meiner Umfrage 7 Zufallsgeneratoren integriert, die jedoch jeweils nur in einem Item unterscheiden. Ich möchte, falls möglich, gerne am Ende meiner Umfrage eine möglichst gleichgroße Gruppierung aller Items haben.

Meine Frage lautet nun, welche Ziehungsart ich hierfür am besten verwenden sollte:
- Gleichverteilung nach abgeschlossenen Fragebögen
- Systematische Ziehung (sequenzielle Verteilung reihum)

Es geht darum, dass es insgesamt 7 Items (Positionen im Fußball) sind, wovon die Teilnehmer ihre jeweilige Position auswählen. Danach werden sie erst zu ihrer eigenen Position befragt und anschließend werden sie zu zwei weiteren Positionen, die durch den Zufallsgenerator ausgespuckt werden, befragt.

Gilt die Gleichverteilung, wenn die Zufallsgeneratoren sich auf die gleichen Rubriken beziehen, immer nur für den jeweiligen einzelnen Zufallsgenerator oder für alle? In meinen Ergebnissen würde ich, wie bereits erwähnt, gerne eine ungefähre Gleichverteilung auf alle 7 Items haben.

Vielen Dank im Voraus!

Beste Grüße,
Pascal

1 Answer

+1 vote
by SoSci Survey (328k points)

Gilt die Gleichverteilung, wenn die Zufallsgeneratoren sich auf die gleichen Rubriken beziehen, immer nur für den jeweiligen einzelnen Zufallsgenerator oder für alle?

Jeder Zufallsgenerator ist für sich isoliert/selbständig.

Es geht darum, dass es insgesamt 7 Items (Positionen im Fußball) sind, wovon die Teilnehmer ihre jeweilige Position auswählen. Danach werden sie erst zu ihrer eigenen Position befragt und anschließend werden sie zu zwei weiteren Positionen

Sie haben 7 Zufallsgeneratoren, in welchen jeweils die eigene Position fehlt - und verwenden nur einen davon? Prinzipiell keine schlechte Idee. Aber eine Gleichverteilung werden Sie damit nicht bekommen.

Das Problem ist nur ein Stück weit technisch bedingt - eigentlich liegt ein statistisches Problem dahinter. Nehmen wir einmal an, dass viele Teilnehmer Position 1 spielen. Dann können diese alle nicht nochmal zur Position 1 befragt werden. Das heißt aber, dass jeder Teilnehmer der nicht Position 1 spielt fast automatisch Position 1 zugelost bekommen muss, damit die Gleichverteiltung bei den zufällig gezognen Positionen am Ende gewährleistet ist. Damit handeln Sie sich schnell eine Konfundierung ein.

Was ist denn Ihr Ziel? Eine Gleichverteilung bei allen Positionen inklusive der selbst gespielten? Oder eine Gleichverteilung bei den zufällig gezogenen Positionen?

Eine recht einfache Lösung, die zumindest annähernd Gleichverteilung gewährleistet wäre folgende: Sie ziehen aus einem Zufallsgenerator (für alle) 2 Positionen - und falls zufällig die eigene dabei ist, wird mit ein wenig PHP-Code zufällig eine andere gezogen. Diese fällt aus der Gleichverteilung heraus - aber nachdem das nur 1 von 7 Interviews betrifft, ist diese Verzerrung nicht besonders dramatisch.

by s120469 (130 points)
Die Debug-Information ist folgende:
[Processing]    Reading answers from page 2
[Information]    Answer to FI01 = 1
[Information]    Answer to FI02 = 2
[Information]    Answer to FI03_01 = 7.00
[Information]    Answer to FI04 = 2
[Information]    Answer to P001 = 1
[Information]    100% of the questions have been answered so far
[Processing]    Create page 3 in questionnaire SoSciCode
[Information]    value("P001") = 1
[Information]    The internal variable IV01_01 gets a value of 1.
[Information]    The internal variable IV01_02 gets a value of P009x01.
[Information]    The internal variable IV01_03 gets a value of P009x02.
[Information]    value("IV01_02") = "P009x01


Der komplette PHP-Code ist wie folgt (P001 ist die Frage nach der eigenen Position und P009 ist der Zufallsgenerator mit allen 7 Positionen):
$own = value('P001');
$rnd = array_keys(valueList('P009'));

// Doppelung prüfen
$match = -1;
if ($own == $rnd[0]) {
  $match = 0;
}
if ($own == $rnd[1]) {
  $match = 1;
}

// Doppelung ersetzen
if ($match > -1) {
  // Was bleibt für die Ziehung?
  $available = array_diff(
    array(1,2,3,4,5,6,7),
    array_merge(array($own), $rnd)
  );
  // Eines davon verwenden
$rnd[$match] = $available[0];
}

// Und alles abspeichern
put('IV01_01', $own);
put('IV01_02', $rnd[0]);
put('IV01_03', $rnd[1]);

$code = value('IV01_02');
foreach (array(1,2,3,4,5,6) as $number) {
  question(id('P'.$code, $number));
}


Den unteren Teil ab "$code" würde ich dann entsprechend mit IV01_01 und IV01_03 auf anderen Seiten abfragen. Bei IV01_01 gibt es damit keinerlei Probleme. Anfangs hatte ich diesen Teil in einem separaten PHP-Code-Feld. Mittlerweile jedoch in einem gemeinsamen. Ein Unterschied war nicht zu erkennen.
by SoSci Survey (328k points)
Also ... fangen wir mal mit der wichtigsten Sache an:

$rnd = array_keys(valueList('P009'));

... musst heißen

$rnd = array_values(valueList('P009'));
by s120469 (130 points)
Damit funktioniert es weitestgehend! Juhu, vielen vielen Dank!

Ich bin den Bogen jetzt knapp 10mal durchgegangen und soweit hat alles geklappt, außer jetzt bei dem letzten Versuch. Da habe ich folgende Fehlermeldung erhalten:

There is an error in the PHP code:
Questionnaire Error: Undefined offset: 0
line: 23

PHP code

020     array_merge(array($own), $rnd)
021   );
022   
023 $rnd[$match] = $available[0];
024 }
025
026
by SoSci Survey (328k points)
In Ordnung. Dann ergänzen Sie bitte unter

  $available = array_diff(
    array(1,2,3,4,5,6,7),
    array_merge(array($own), $rnd)
  );


noch folgende Zeile:

shuffle($available);

Das fehlte noch Zufall - und dieser erledigt auch gleich die "Lücken" im Array. Das hatten sie mal im Code, aber offenbar ging es irgendwo verloren.
by s120469 (130 points)
Perfekt! So funktioniert es einwandfrei. Ich dachte erst, dass ich nur einen von beiden Befehlen nutzen soll.

Vielen lieben Dank für die ausführliche Hilfe und die große Mühe! :)

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

...