Zufällige Auswahl von Antwortoptionen und Fragen

Mehr
1 Monat 1 Woche her #192704 von traffic_123
Hallo,
ich bin ein hoffnungsloser Beginner bei LimeSurvey und ich hoffe, ihr könnt mir helfen. :)

Mein Anliegen ist folgendes: ich möchte erreichen, dass der Proband zwischen zwei Alternativen wählt.
Dazu habe ich einen Pool von ungefähr 100 Alternativen. Insgesamt soll zehnmal zwischen zwei Alternativen gewählt werden.
Entsprechend ist es also notwendig, dass in zehn Fragen jeweils zwei Alternativen aus dem Pool zufällig ausgewählt werden und die Antwortoptionen der Frage sozusagen zusammengewürfelt werden.

Gibt es dafür eine Lösung in LimeSurvey?

Vielen Dank schon Mal für eure Hilfe!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her - 1 Monat 1 Woche her #192714 von Joffm
Gut, um es zu verstehen:
Du hast irgendwo 100 Alternativen, kurz gesagt:
lang, kurz, dick, dünn, oben, unten, schmal, breit,...

Nun stellst Du 10 Fragen mit zwei Antwortmöglichkeiten, die zufällig aus den 100 genommen sind, wie
1: dünn - oben
2: lang - breit
...

Dabei können bereits einmal verwendete Alternativen auch ein zweites Mal auftauchen.
Dies könntest Du z.B. so bewerkstelligen.
In eine Frage vom Typ "kurzer Text" fügst Du dieses kleine javascript-snippet ein:
(Ich habe das Array nur bis 30 gefüllt, das müsstest Du eben bis zur Anzahl Deiner Alternativen erweitern)
<script type="text/javascript" charset="utf-8">
 
function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex;
 
  // While there remain elements to shuffle...
  while (0 !== currentIndex) {
 
    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;
 
    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }
 
  return array;
}
 
 
$(document).on('ready pjax:scriptcomplete',function(){
// Fill the array
      var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30];
      arr = shuffle(arr);
      anumbers = arr.slice(0,2).join(',');
      $('#question{QID} input[type="text"]').val("#,"+anumbers+",");
// Um die Frage zu verstecken, natürlich aktivieren
//      $('#question{QID}').hide();
   });
</script>

Damit erhältst Du schon einmal Folgendes:

also zwei Indizes für Deine Alternativen.

In einer Frage vom Type "langer Text" (LT) könntest Du nun als Vorgabewerte Deine Alternativen eintragen.

Durch das "#" will ich zeigen, dass alle Texte die gleiche Länge haben - mit Leerzeichen aufgefüllt.
Nun kannst Du Dir mithilfe der eingebauten Stringfunktionen Deinen ausgewählten Text herausholen.
Dies widerholst Du einfach 10mal.

Andererseits kannst Du natürlich auch alles in eine große IF-Abfrage packen:
Zunächst erstellen wir wieder eine Frage von Typ Gleichung (eq1) um die erste Zahl zu finden, also
{substr(Q1,2,2)} Obwohl der string ja #,25,20 lautet, beginnt unsere Zahl an der Stzelle 2, da die Funktion "substr" bei "0" anfängt.
Dann könnte man schreiben:
{if(eq1==1,"lang",if(eq1==2,"kurz",if(eq1==3, "dick",if(eq1==4, "dünn",if(eq1==5, "oben",if(eq1==6, "unten",if(eq1==7, "schmal",if(eq1==8,"breit",...))))...}
Das ist wohl nicht so günstig, da Du dann 100 schließende Klammern am Ende hast.

Um sogar sicherzustellen, dass keine Alternative zweimal vorkommt, könntest Du den javascript-Teil ändern, indem Du gleich 20 Zahlen auswählst. Einfach dies Zeile ändern anumbers = arr.slice(0,20).join(',');


So, dass ist erst einmal ein Überblick.
Ich werde noch einmal nachdenken und nach Deinem Input, gerade was die "Alternativen" angeht, ein Beispiel machen.

Joffm

P.S.
Ich habe noch ein kleines Beispiel gemacht, aber nur 5 Vergleiche aus 50.
Aber Du siehst, wie es gehen kann.

Dateianhang:

Dateiname: limesurvey...1-15.lss
Dateigröße:30 KB

Man muss beachten: Obwohl die Texte nur 10 Zeichen lang sind, geht die Formel von 12 Zeichen aus. (Klar, Carriage Return + LineFeed)


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Anhänge:
Letzte Änderung: 1 Monat 1 Woche her von Joffm.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192727 von traffic_123
Erst einmal vielen Dank für die ausführlich und schnelle Antwort, super!
Ich muss für meine Diplomarbeit die Wahlentscheidung zwischen zwei Routen abprüfen.

Diese Routen sind mit Attributen charakterisiert, die in Tabellenform aufgeführt sind. Diese Tabellen sollen sich gegenüberstehen. Also statt des von dir angeführten Beispieles dick - dünn dann Tabelle der Route 1 gegen Tabelle der Route 2.

Das Beispiel schaue ich mir morgen mal an und schaue, wie ich das verwursten kann. Nochmals vielen Dank :)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192729 von Joffm

Diese Routen sind mit Attributen charakterisiert, die in Tabellenform aufgeführt sind.

Toll, da hättest Du aber auch einmal eine Skizze anhängen können.

Dazu habe ich einen Pool von ungefähr 100 Alternativen

Es gibt also schon 100 Tabellen, aus denen ausgewählt wird?

Dann bleibt ja alles mehr oder weniger beim Alten.
Ob es nun "dick vs. dünn" ist oder zwei Tabellen verglichen werden, ist ja nur eine Frage des Layouts.

Außerdem sieht das Ganze ja irgendwie nach conjoint aus.
Es gibt zwar ein recht gutes conjoint-Layout hier im Forum (suche einmal nach user RitaChen), dies ist aber statisch.

Kann man wohl aber evtl. umbauen. Muss ich mir einmal anschauen.

Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her - 1 Monat 1 Woche her #192735 von traffic_123
Hallo Joffm,
ich habe mir jetzt das Beispiel angesehen und bin sehr zufrieden mit der Funktion!


Und dann habe ich noch das Problem, wie ich die Tabellenformatierung dann bei den Vorgabeantworten hinbekomme... da ist ja kein Editor oder so etwas...?

Vielen Dank für deine Hilfe :)
Letzte Änderung: 1 Monat 1 Woche her von traffic_123. Begründung: Teil der Frage hat sich schon erledigt

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her - 1 Monat 1 Woche her #192740 von Joffm
Hallo,
natürlich ist da ein Editor (falls Du nicht gerade auf einer Uni-Installation arbeitest und ein übereifriger Admin es geschafft hat, Euch zu kastrieren.)
Nämlich hier:




Du kannst Dir aber auch einmal diesen Link anschauen:
https://www.limesurvey.org/forum/can-i-do-this-with-limesurvey/118324-single-choice-with-answer-options-in-a-box#184039

Das von mir gezeigte Layout findest Du hier im Beispiel:

Dateianhang:

Dateiname: limesurvey...7519.lss
Dateigröße:39 KB

Es ist zwar dreispaltig, aber das kannst Du ja leicht anpassen.

Und es gibt noch die Beispielstudie von RitaShen hier (nur ihr lss export):
https://www.limesurvey.org/forum/can-i-do-this-with-limesurvey/118644-conjoint-analysis#185681
Die Texte sind zwar chinesisch, aber HTML und javascript ist international.


Viel Erfolg
Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Anhänge:
Letzte Änderung: 1 Monat 1 Woche her von Joffm.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192741 von traffic_123
Hi,
klar, bei Antwortoptionen habe ich den Editor, aber eben nicht bei Vorgabe-Antwortoptionen bearbeiten...



Und ja, es ist eine Uni-Version :laugh:
Da fehlt mir gerade irgendwie die Verbindung, wie ich dann die Tabellen da rein bekomme ;)
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192751 von Joffm
Ach das meintest Du.

Naja, dann musst Du es halt mit der Hand schreiben.
Das würde ich auf jeden Fall vorziehen, denn der eingebaute Editor schreibt sehr umständlichen HTML-Code.
Da ja die Tabellen alle dasselbe Gerüst haben, nur die Texte ändern sich, oder??, kannst Du das ja schnell in irgendeinem guten Editor, wie Notepad++, oder so einmal konstruieren, und dann einfach runterkopieren. Danach dann die Texte einfügen.
Und schlussendlich alles in die Vorgabe hineinkopieren.

Du kannst ja auch den hier eingebauten Editor nehmen, die Tabelle konstruieren, den Quellcode wieder in Notepad++ o.ä. hineinkopieren, runterkopieren, Texte einfügen,...

Mir fällt noch ein: Möglicherweise musst Du die Tabelle gar nicht in der Vorgabe haben, sondern nur die Texte (diese aber wohldefiniert, Gesamtlänge immer 500 (oder so), Länge jedes Einzeltextes 100.
Da machst Du zehn Fragen mit dem Tabellengerüst; mittels EM werden die Texte hineingesetzt.

Dazu solltest Du aber endlich einmal ein sample projekt als lss export schicken.

Bis dann
Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192754 von traffic_123
Im Prinzip soll das ja genau so laufen, wie in deinem ersten Beispiel. Darum ist es ja schwierig, dir ein eigenes Beispiel zu schicken, verstehst du?

Nur, wenn ich das richtig verstanden habe, läuft das Ganze in der Antwortvorgabe ja so, dass die Texte eine bestimme Länge haben dürfen? Und die lege ich in dem Snippet fest, oder wo?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her - 1 Monat 1 Woche her #192761 von Joffm

dass die Texte eine bestimme Länge haben dürfen? Und die lege ich in dem Snippet fest, oder wo?

In meinem Beispiel nicht "dürfen", sondern "müssen".
Und die Länge wird in den Antwortoptionen festgelegt: {substr(H1,(substr(Q1,0,2)-1)*,12,10)}
In diesem Falle beide Male "10 Zeichen lang", allerdings - wie bereits gesagt - die "12" rührt daher, dass am Ende jedes Strings noch ein CR/LF steht.
Theoretisch könnte man das Ganze auch in eine Zeile schreiben; dann würde dort zweimal "10" stehen.

Und man kann natürlich - um auf meinen vorigen Beitrag zurückzukommen - , eine doppelte Auswahl treffen.
Irgendwie so:
{trim(substr(substr(H1,(substr(Q1,0,2)-1)*502,500),0,100))} Erste 100 Zeichen des 1. 500 Zeichen langen Textes.
{trim(substr(substr(H1,(substr(Q1,4,2)-1)*502,500),100,100))} Zweite 100 Zeichen des 3. 500 Zeichen langen Textes.
Natürlich noch ein "trim" darumherum, damit die am Ende vorhandenen Leerzeichen entfernt werden.

Was ich meine:
Du kannst doch einfach einmal - meinetwegen - aufzeichen, wie so eine Frage überhaupt aussehen soll.
Ich kann mir immer noch nichts unter "Routen" und "Attributen" vorstellen.

Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Letzte Änderung: 1 Monat 1 Woche her von Joffm.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192766 von traffic_123
Im Anhang habe ich dir mal angehängt, wie ich mir diese Tabellen vorstellen könnte.
Die Eigenschaften der Routen rotieren dann natürlich entsprechend und haben unterschiedliche Werte.
Von daher kommt mir das mit einer festgelegten Zeichenlänge leider etwas schwierig vor...
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192772 von Joffm
Hallo,
als erstes solltest Du versuchen, die Tabellen zu standardisieren.
Z.B.


In Deinem Beispiel ist es ja etwas verwirrend, dass in einer Tabelle "auf dem Radfahrstreifen,Gehweg, gemeinsamen Geh- und Radweg" als eine Kategorie auftauchen in der anderen aber getrennt sind.

Von daher kommt mir das mit einer festgelegten Zeichenlänge leider etwas schwierig vor...

Das ist es natürlich nicht; da nimmt man einfach die Länge des längsten Einzelwertes. Mit "trim" werden ja später die Leerstellen entfernt.

Und wenn Du die Tabellen so aufbaust, kannst Du ja gut das Gerüst der beiden conjoint-Beispiele nehmen.

Ich werde morgen - aber erst am Nachmittag - ein Beispiel machen.

Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192775 von traffic_123
Ich hatte versucht, die verschiedene Möglichkeiten zu zeigen, die mir recht wären. Ich wusste ja bis dato nicht, was sich leichter verarbeiten lässt... ;)

Vielen Dank, du bist mir echt eine große Hilfe!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her #192795 von Joffm
So, hier ist jetzt ein - für mich - endgültiges Beispiel.

Es werden nur die Texte vorbesetzt (das erste Zeichen ("#") ist wichtig, da sonst die Zählung nicht klappt.)
Außer dem ersten Text, welcher 20 Zeichen lang ist, sind alle anderen Texte 10 Zeichen lang.
Im Beispiel werden im Javascript von "H0" nur 6 Routen aus 6 möglichen ausgewählt.
Es war mir einfach zu viel Arbeit. Etwas soll für Dich ja noch bleiben.

Die Werte sind auch mehr oder weniger kopiert. Nur die Zehnerstelle der Entfernung zeigt die Nummer der Route an.

Okay, Du siehst, dass die Tabellenstruktur in allen Fragen gleich ist.
Nur der Platzhalter für die Werte ändert sich; und auch dort nur der Teilstring von H0:
1. Vergleich, Route 1: H0,0,2
1. Vergleich, Route 1: H0,2,2
2. Vergleich, Route 1: H0,4,2
2. Vergleich, Route 1: H0,6,2
...



Jetzt kannst Du loslegen, die Tabelle so layouten, wie Du möchtest.
Alles up to you.

Dateianhang:

Dateiname: limesurvey...9448.lss
Dateigröße:66 KB


Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
1 Monat 1 Woche her - 1 Monat 1 Woche her #192810 von Joffm
Kleiner Zusatz.

Es ist doch noch nicht endgültig.
Ich habe nicht bedacht, dass Du ja aus 100 verschiedenen Routen auswählen willst.
Das ist dann ja dreistellig.

Daher ist jetzt das javascript in H0 angepasst und auch etwas verbessert.
Es werden 10 Paare ausgeworfen.
Und in H1 gibt es 100 Routen; die Anzahl der Kreuzungen ist die Routennummer.

Im Beispiel habe ich aber nur 5 Vergleiche gemacht.
Das Einzige wäre jetzt:
Noch 5x die Frage kopieren, und den Term (H1,0,3) bzw, (H1,3,3) jeweils anzupassen in
6. Vergleich: (H1,30,3) und (H1,33,3)
7. Vergleich: (H1,36,3) und (H1,39,3)
...

Dateianhang:

Dateiname: limesurvey...1-18.lss
Dateigröße:112 KB


Jetzt musst Du Dir natürlich überlegen, wie Du das Ganze auswerten willst.
a. Du kennst nur die Reihenfolge aus H0 (immer dreistellig):

Hier ist es also:
1. Vergleich: 10 - 71
2. Vergleich: 13 - 9
3. Vergleich: 68 - 11
4. Vergleich: 56 - 22

b. und, ob die erste oder zweite Route bevorzugt wurde.

Hier also:
1. Vergleich: 10
2. Vergleich: 13
3. Vergleich: 11

Das kann man natürlich ganz gut in EXCEL mit einem Makro umstrukturieren.


Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Anhänge:
Letzte Änderung: 1 Monat 1 Woche her von Joffm.
Folgende Benutzer bedankten sich: traffic_123

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Jetzt loslegen!

Melden Sie sich jetzt an, und erstellen Sie in wenigen Minuten Ihre erste Umfrage.

Account einrichten

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für alle Neuigkeiten rund um LimeSurvey
captcha