Multiple-Choice-Fragen mit negativen Punktzahlen bewerten

More
1 month 1 week ago #219678 by Yatagarasu
Im Rahmen meiner Bachelorarbeit erstelle ich einen Test, der öffentlich sein soll. Darunter wird es auch Multiple-Choice-Fragen geben. Nachdem ich nun ein wenig gesucht habe, konnte ich nichts (mir Verständliches) dazu finden, wie man einfach Multiple-Choice-Fragen bewerten kann. Ich möchte Folgendes machen: Ich möchte für Fragen, für die die wahren Aussagen angekreuzt werden sollen Punkte geben, falls das Kreuz richtigerweise gesetzt worden ist oder falls es richtigerweise nicht gesetzt worden ist und Minuspunkte, wenn die Aussage richtig ist und kein Kreuz gesetzt worden ist oder die Aussage falsch ist, aber ein Kreuz gesetzt worden ist. Für die Aufgabe soll es jedoch insgesamt nicht weniger als 0 Punkte geben. Wie lässt sich dies realisieren? Ich danke euch bereits im Voraus für eure Mithilfe! 

Ich nutze die Version 3.14.9+180917.

Please Log in to join the conversation.

More
1 month 1 week ago #219681 by Joffm
Hallo,
die zunächst sehr lapidare Antwort: Indem Du es ausrechnest.
Also eine Frage vom Typ Gleichung erstellst und dort zunächst für eine Frage die Fälle unterscheidest.
Da Du leider nicht gesagt hast, was Deine Multiple-Choice-Fragen sind, ob Einfach- oder Mehrfachnennungsfragen, kann ich nichts Genaues zeigen.
Nehmen wir einmal eine Mehrfachnennungsfrage.
Dann wäre es so etwas
{sum(if(Q1_SQ001=="Y",0,0),if(Q1_SQ002=="Y",2,-1),if(Q1_SQ003=="Y",-1,1),...)}
Du siehst, es wird für jede Teilfrage für jedes Ereignis (angekreuzt bzw. nicht angekreuzt) ein Wert aufsummiert. Das musst Du dann definieren.

Und bevor wir hier zu sehr herumspekulieren, schicke Deinen Entwurf als lss Export.
Lies auch im Handbuch das Kapitel über ExpressionScript
manual.limesurvey.org/ExpressionScript_-_Presentation

Bis dann
Joffm

Aber erkläre mir dies einmal

und Minuspunkte, wenn die Aussage richtig ist und kein Kreuz gesetzt worden ist oder die Aussage falsch ist, aber ein Kreuz gesetzt worden ist.
Für die Aufgabe soll es jedoch insgesamt nicht weniger als 0 Punkte geben.

Soll das heißen, auch wenn alles falsch ist, der errechnete Wert -14 wäre, würden dann 0 Punkte vergeben?
Das ist jqa auch kein Problem.
Das wäre dann ja die Funktion {max(0,Punktzahl)}
Wie gesagt, Handbuch querlesen, besonderes Augenmerk auf Funktionen und dann einen lss Export.


Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: Yatagarasu

Please Log in to join the conversation.

More
1 month 1 week ago - 1 month 1 week ago #219682 by Joffm
Noch etwas dazu:
Nehmen wir an, es sei eine Mehrfachnennung
 

1. "Adalbert Ameise" sei die richtige Antwort.
Bekommt der Teilnehmer dann 1 Punkt für das richtige Auswählen und zusätzlich 3 Punkte für das richtige Nichtauswählen der übrigen?

2. "Adalbert Ameise" sei die falsche Antwort, sondern "Doris Dachs"
Bekommt der Teilnehmer dann 1 Minuspunkt für das falsche Auswählen vom "Adalbert Ameise", 1 Minuspunkt für das falsche Nichtauswählen vom "Doris Dachs und zusätzlich 2 Punkte für das richtige Nichtauswählen der übrigen?

3. "Adalbert Ameise" und "Carlo Chinchilla" seien die richtigen Antworten.
Bekommt der Teilnehmer dann 1 Punkt für das richtige Auswählen von "Adalbert Ameise", 1 Minuspunkt für das falsche Nichtauswählen von "Carlo Chinchilla" und noch 2 Punkte für das richtige Nichtauswählen der übrigen?

Bleiben wir beim ersten Fall.
Könnte dann so sein
{sum(if(F1_SQ001.NAOK=="Y",-1,1),if(F1_SQ002.NAOK=="Y",-1,1),if(F1_SQ003.NAOK=="Y",1,-1),if(F1_SQ004.NAOK=="Y",-1,1)}

Kann man auch so schreiben, wissend dass eine "WAHRE" Aussage intern als "1" repräsentiert wird, eine "FALSCHE"  als "0".
Ist zwar länger, lässt sich aber besser schnell in EXCEL konstruieren.
{sum(
intval(F1_SQ001.NAOK=="Y") * (-1),
intval(F1_SQ001.NAOK!="Y") *1,
intval(F1_SQ002.NAOK=="Y") *(-1),
intval(F1_SQ002.NAOK!="Y") *1,
intval(F1_SQ003.NAOK=="Y") *1,
intval(F1_SQ003.NAOK!="Y") * (-1),
intval(F1_SQ004.NAOK=="Y") * (-1),
intval(F1_SQ004.NAOK!="Y") *1
)}


Und mit der schon erwähnten Funktion "max()" um alles wird das Ergebnis auch nicht negativ.
{max(0,sum(if(F1_SQ001.NAOK=="Y",-1,1),if(F1_SQ002.NAOK=="Y",-1,1),if(Q1_SQ003.NAOK=="Y",1,-1),if(Q1_SQ004.NAOK=="Y",-1,1))}

Ich habe dies jetzt nur für eine Frage gezeigt. In Wirklichkeit summierst Du natürlich die gesamten Fragen so auf
{sum(if(F1_SQ001.NAOK=="Y",-1,1),if(F1_SQ002.NAOK=="Y",-1,1),...,if(F2_SQ001.NAOK=="Y",1,-1),if(F2_SQ002.NAOK=="Y",-1,1),...,if(F5_SQ001.NAOK=="Y",1,-1),...}

Wird etwas lang werden. Daher kann es auch gut sein einen "Zwischenspeicher" (ZS) anzulegen, nichts anderes als eine versteckte Frage vom Typ "mehrfache Zahleingabe" oder "Matrix(Zahlen), in welche man Zwischenergebnisse speichert, um dann daraus das Endergebnis zu berechnen.
Z.B.
{ZS_SQ001=sum(if(F1_SQ001.NAOK=="Y",-1,1),if(F1_SQ002.NAOK=="Y",-1,1),if(F1_SQ003.NAOK=="Y",1,-1),if(F1_SQ004.NAOK=="Y",-1,1)}
{ZS_SQ002=sum(if(F2_SQ001.NAOK=="Y",-1,1),if(F2_SQ002.NAOK=="Y",-1,1),if(F2_SQ003.NAOK=="Y",1,-1),if(F2_SQ004.NAOK=="Y",-1,1)}
{ZS_SQ003=sum(if(F3_SQ001.NAOK=="Y",-1,1),if(F3_SQ002.NAOK=="Y",-1,1),if(F3_SQ003.NAOK=="Y",1,-1),if(F3_SQ004.NAOK=="Y",-1,1)}

...

Dies kann man alles in eine einzige Frage vom Typ "Gleichung" eintragen. Es soll ja nichts in der Gleichungsfrage gespeichert werden, sondern es werden der Frage "ZS" Werte zugewiesen und dort gespeichert.
Damit ist alles etwas überschaubarer und eine schnelle Kontrolle möglich, ob alle Teilsummen ein richtiges Ergebnis bringen.
Dann musst Du nur noch die einzelnen ZS-Werte aufsummieren (vielleicht hier mit dem "max()"..
{max(0,sum(ZS_SQ001.NAOK,ZS_SQ002.NAOK,ZS_SQ003.NAOK,...))} 

Wenn es sich allerdings um Einfachnennungsfragen handelt, ist alles weitaus weniger auswendig.

Daher noch einmal: Zeige uns, was Du willst (lss-Export)

Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:
Last edit: 1 month 1 week ago by Joffm.
The following user(s) said Thank You: Yatagarasu

Please Log in to join the conversation.

More
1 month 1 week ago - 1 month 1 week ago #219685 by Yatagarasu
Vielen Dank für deine ausführliche Antwort! Das hat mir schon sehr weitergeholfen! Genau, die Bewertung soll so stattfinden, wie du es beschrieben hast. Also wenn ein Kästchen angekreuzt werden soll und dies auch getan worden ist, gibt es einen Punkt. Wenn dies jedoch nicht getan worden ist, dann gibt es einen Minuspunkt. Analog dazu gibt es einen Punkt, wenn ein Kästchen nicht angekreuzt werden soll und auch nicht angekreuzt worden ist und einen Minuspunkt, wenn das Kästchen angekreuzt worden ist. Wenn ich nun aber für eine Frage weniger als 0 Punkte bekommen würde, so bekomme ich immer als Mindestpunktzahl 0 Punkte. Das {max(0, .sum(...))}, welches du erläutert hast, wird also auf jede Multiple-Choice-Frage (MC-Frage) angewendet. Wenn ich von MC-Fragen spreche, dann beziehe ich mich immer auf die eben genannte Definition.

Da die gesamte Umfrage aus nur fünf Fragen bestehen wird, speichere ich alle erfassten Punktzahlen einfach in einer Frage vom Typ "Gleichung". Der von dir beschriebene Ansatz, bei dem man alles in einer Frage vom Typ "Gleichung" speichert und immer das Maximum aus der Summe und 0 nimmt, hat für mich funktioniert. Das bedeutet, dass ich nun dazu in der Lage bin, die Ergebnisse mehrerer MC-Fragen auszuwerten. Im Anhang ist die lss-Datei, bei der ich die MC-Fragen bereits auswerten kann (

File Attachment:

File Name: SingleChoi...oice.lss
File Size:23 KB
). Außerdem ist dort noch eine Single-Choice-Frage, welche aber erstmal ignoriert werden kann. Nun hätte ich noch folgende Fragen:

1.) Ich möchte für jede Antwortmöglichkeit der MC-Fragen eine Weiß-Nicht-Möglichkeit anbieten. Wenn sich also ein Teilnehmer z. B. beim ersten Kästchen einer MC-Frage nicht sicher ist, dann kreuzt er die Weiß-Nicht-Möglichkeit an. Beim Ankreuzen der Weiß-Nicht-Möglichkeit soll es dann für diese Antwort 0 Punkte geben. Lässt sich dies umsetzen?

2.) Ich möchte bei der offenen Umfrage die einzelnen Ergebnisse auswerten. Ich möchte nämlich für jede Person wissen, wie viele Punkte sie in welcher Aufgabe erzielt hat. Außerdem soll die Person noch vor der Bearbeitung der Aufgaben Angaben zur eigenen Person machen, da ich im Rahmen der Bachelorarbeit Korrelationen zwischen den gemachten Angaben und den Punktzahlen (der einzelnen Aufgaben) bilden möchte. Die Korrelationen möchte ich hierbei händisch bilden. Daher ist es mir wichtig, dass die Daten in einem einigermaßen lesbaren Format gespeichert werden. Nun lautet dazu meine Frage: Werden die Daten in so einem Format intern gespeichert, dass ich für jede Person alle gemachte Angaben sehen kann?

3.) Ich möchte neben MC-Fragen auch noch Single-Choice-Fragen (SC-Fragen) stellen. Mit SC-Fragen meine ich Ankreuzaufgaben, bei denen es genau eine richtige Antwort gibt. Hierbei soll es einen Punkt geben für die richtige Antwort und keinen Punkt, wenn eine falsche Antwort angekreuzt worden ist. Wie sollte ich die Punkte aus SC-Fragen speichern, um den Anforderungen aus 2.) gerecht zu werden? Arbeite ich hierbei mit den Bewertungswerten, welche ich über "Antwortoptionen bearbeiten" setzen kann oder mache ich das anders?

Vielen Dank im Voraus für die Mithilfe! :)
Attachments:
Last edit: 1 month 1 week ago by Yatagarasu. Reason: lss-Datei hinzugefügt

Please Log in to join the conversation.

More
1 month 1 week ago #219695 by Yatagarasu
Ok, ich glaube, ich mache es mir hier zu einfach mit der Fragenstellerei. Also 2.) habe ich hinbekommen und an 3.) sollte es auch nicht scheitern. Es wäre aber super, falls ich noch zu 1.) Hilfestellungen bekommen könnte, da das ja ein doch etwas speziellerer Anwendungsfall ist.

LG

Please Log in to join the conversation.

More
1 month 1 week ago - 1 month 1 week ago #219701 by Joffm
Gut, kurz und schmerzlos:
Zu 1. Das is eigentlich am einfachsten.
Die WN-Antwort ist ja - hoffentlich - auf "exklusiv" gesetzt.
Dann gibt es nur eine kleine Verschachtelung.
Statt
Punkte Multiple-Choice 1: {max(0,sum(if(MC1_SQ001=="Y",1,-1),if(MC1_SQ002=="Y",1,-1),if(MC1_SQ003=="Y",1,-1),if(MC1_SQ004=="Y",-1,1)))}
Punkte Multiple-Choice 1: {max(0,if(MC1_SQ005=="Y",0,sum(if(MC1_SQ001=="Y",1,-1),if(MC1_SQ002=="Y",1,-1),if(MC1_SQ003=="Y",1,-1),if(MC1_SQ004=="Y",-1,1))))}
Oder,  da das Maximum von 0 und 0 sicher auch 0 ist,
{if(MC1_SQ005=="Y",0,max(0,sum(if(MC1_SQ001=="Y",1,-1),if(MC1_SQ002=="Y",1,-1),if(MC1_SQ003=="Y",1,-1),if(MC1_SQ004=="Y",-1,1))))}
Und die Fragen sind dann natürlich auch "Pflichtfragen".

Zu 2: Genau dazu sind Tests da. Diese enden ja nicht, wenn die Logik einer Umfrage zu stimmen scheint. Nein, es ist auch notwendig, in eine aktivierte Umfrage wohl definierte Daten einzugeben.
Danach exportiert man in das Tool, mit dem die Analyse gefahren wird, und schaut, ob alles passt, oder wo noch Änderungen zu machen sind.
Hauptpunkte: Man hat die default-Antwortcodes "A1", "A2",... belassen, will aber Mittelwerte, t-Tests, ANOVs, Korrelationen rechnen, und muss dazu alles umcodieren.
Daher gleich numerische Codes verwenden
Rangreihe: Ist für die Logik in LS gut geeignet (in jeder Spalte steht das Item, welches auf diesem Platz ist), aber völlig unbrauchbar, um "mittlere Rangplätze", Vergleichstests, usw. zu rechnen (da möchte man in einer Spalte die verschiedenen Plätze, auf denen das Item gelandet ist). Da hat man keine andere Möglichkeit, als mit einige Gleichungen an Ende der Umfrage in LS schon umzustrukturieren, oder mit einem EXCEL-Makro, oder irgendwie anders.

Zu 3: Kommt darauf an, was Du in den Daten benötigst.
Wenn der echte eingegebene Code in den Daten genügt, Du also nicht die 1 Punkt, 0 Punkt-Geschichte in den Daten benötigst, kannst Du Assessment-Werte nehmen.
Assessment-Werte werden nicht in den Daten gespeichert. Dies ist ein Uralt-Relikt aus Zeiten, als es noch kein EpressionScript / Manager gab.
Aber Du kannst mit der proerty ".value" bzw. ".valueNAOK" in Gleichungen darauf zugreifen.
manual.limesurvey.org/ExpressionScript_-...#Access_to_variables
Willst Du 0/1 in den Daten, dann nimm einfach eine Frage vom Typ "Gleichung" (statt Q1 heißt sie dann eQ1) mit {if(Q1==[Code der richtigen Antwort],1,0)}.
Dann kannst Du hier meinetwegen auch die "A1", "A2",... lassen.
Dann summierst und exportierst Du anstelle von Q1 nur eQ1.
Solange es nominale Daten sind , gut, aber wehe, Du möchtest auch einmal einen Mittelwert rechnen. Der Mittelwert von "A1" und "A4" ist wirklich nicht "A2,5".
Also dann numerische Codes.
Da alle Vergleiche mit numerischen Codes leichter sind, sind diese m.E. immer vorzuziehen.
Nimm einmal dieses Beispiel.
Die nächste Frage soll nur gestellt werden, wenn eine der drei ersten Antwortmöglichkeiten gewählt wurde.
Mit "A1","A2",... sähe dies so aus
Q1=="A1" OR Q1=="A2" OR Q1=="A3"
Numerisch mit 1,2,...
Q1<4, oder Q1 le 3



Samsung 


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 month 1 week ago by Joffm.
The following user(s) said Thank You: Yatagarasu

Please Log in to join the conversation.

More
1 month 1 week ago #219719 by Yatagarasu
Vielen Dank! Damit haben sich alle meine Fragen geklärt. Auch danke für die Tipps bezüglich des Benennens der Variablen zum vereinfachten Auswerten der Ergebnisse! Du hast mir mit Deiner Hilfe wirklich sehr weitergeholfen! :)

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now