Zufällige Auswahl von Antwortoptionen und Fragen

Más
1 mes 1 semana antes #192704 por 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!

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

LimeSurvey Partners
Más
1 mes 1 semana antes - 1 mes 1 semana antes #192714 por 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.

Archivo Adjunto:

Nombre del Archivo: limesurvey...1-15.lss
Tamaño del Archivo: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
Adjuntos:
Última Edición: 1 mes 1 semana antes por Joffm.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192727 por 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 :)

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192729 por 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

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes - 1 mes 1 semana antes #192735 por 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 :)
Última Edición: 1 mes 1 semana antes por traffic_123. Razón: Teil der Frage hat sich schon erledigt

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes - 1 mes 1 semana antes #192740 por 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:

Archivo Adjunto:

Nombre del Archivo: limesurvey...7519.lss
Tamaño del Archivo: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
Adjuntos:
Última Edición: 1 mes 1 semana antes por Joffm.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192741 por 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 ;)
Adjuntos:

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192751 por 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

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192754 por 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?

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes - 1 mes 1 semana antes #192761 por 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
Última Edición: 1 mes 1 semana antes por Joffm.

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192766 por 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...
Adjuntos:

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192772 por 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
Adjuntos:

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192775 por 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!

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes #192795 por 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.

Archivo Adjunto:

Nombre del Archivo: limesurvey...9448.lss
Tamaño del Archivo:66 KB


Joffm


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

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

Más
1 mes 1 semana antes - 1 mes 1 semana antes #192810 por 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)
...

Archivo Adjunto:

Nombre del Archivo: limesurvey...1-18.lss
Tamaño del Archivo: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
Adjuntos:
Última Edición: 1 mes 1 semana antes por Joffm.
El siguiente usuario dijo gracias: traffic_123

Por favor, Identificarse o Crear cuenta para unirse a la conversación.

¡Comenzar ahora!

Simplemente cree una cuenta y comience a usar LimeSurvey hoy mismo.

Registrarse ahora
¡Únase a nuestro boletín informativo!

Iniciar sesión