Description Usage Arguments Details Value Note Author(s) See Also Examples

The function `klausur`

expects an object of class `klausuR.answ-class`

,
containing some
identification data on all subjects and their answers to the test items,
a vector with the correct answers, and optionally a vector with
marks assigned to the points achieved. It will compute global test results as well as some item analysis (including Cronbach's alpha,
discriminatory power and Lienert's selection index of the test items),
and anonymous feedback for the test subjects.

1 2 3 |

`data` |
An object of class |

`marks` |
A vector assigning marks to points achieved (see details). Alternatively,
set it to |

`mark.labels` |
If |

`items` |
Indices of a subset of variables in |

`wght` |
A vector with weights for each item (named also according to |

`score` |
Specify the scoring policy, must be one of |

`matn` |
A matriculation number of a subject, to receive detailed results for that subject. |

`na.rm` |
Logical,
whether cases with NAs should be ignored in |

`cronbach` |
Logical. If TRUE, Cronbach's alpha will be calculated. |

`item.analysis` |
Logical. If TRUE, some usual item statistics like difficulty, discriminatory power and distractor analysis will be calculated. |

`sort.by` |
A character string naming the variable to sort the results by. Set to |

`maxp` |
Optional numeric value, if set will be forced as the maximum number of points achievable. This should actually not be needed, if your test has no strange errors. But if for example it later turns out you need to adjust one item because it has two instead of one correct answers, this option can become handy in combination with "partial" scoring and item weights. |

For details on the ecpected data structure refer to `klausur.data`

,

**Scoring functions**

In combination with multiple (correct) answers for certain items you can specify one of six scoring policies via the `score`

-parameter.
If you set it to something othe than `"solved"`

,
as the names may suggest you **allow partially given answers** under the condition that the test subject didn't
check more alternatives than there are correct ones (that is,
if you checked four alternatives where three correct ones were possible, you're out):

`"solved"`

Multiple Choice: Check all correct alternatives. This is the default, which means that one will only get any points for an item if the answer was 100% correct (that is, all or nothing).`"partial"`

Multiple Choice: Check all correct alternatives, allow partially given answers, but none of the distractors must be checked.`"liberal"`

Multiple Choice: Check all correct alternatives, allow partially given answers, even distractors can be checked.`"pick-n"`

Multiple Choice: Check all correct alternatives, allow partially given answers, even distractors can be checked. Difference to`"liberal"`

is that you will also get points for unchecked distractors.`"ET"`

Elimination Testing: In contrast to the usual MC procedure, eliminate/strike all*wrong*alternatives.`"NRET"`

Number Right Elimination Testing: Like ET+MC, eliminate/strike all*wrong*alternatives*and*check the correct one.`"NRET+"`

Number Right Elimination Testing, more strict: Like NRET, but if more alternatives are checked right than there are right anwers, it will automatically yield to 0 points for that item.`"NR"`

Number Right: The usual MC scoring, but works with ET/NRET data. It was implemented for completeness, e.g. to compare results of different scoring techniques.

An example for `"solved"`

,
`"partial"`

and `"liberal"`

: If an item has five answer alternatives, the correct answer is "134" and a subject checked "15",
`"solved"`

will give no point (because "15" is not equal to "134"),
as will `"partial"`

(because "5" is wrong),
but `"liberal"`

will give 1/3 (because "1" is correct),
and `"pick-n"`

will give 2/5 (because "1" was correctly checked and "2" correctly unchecked).

**(Number Right) Elimination Testing**

Note that `"ET"`

,
`"NRET"`

/`"NRET+"`

and `"NR"`

will disable `wght`

as of now,
and **need the data in different format** than the other scoring functions (see `klausur.data`

for details).
`klausur`

will evaluate each answer individually and sum up the points for each item. The alternative-wise evaluations will be documented in the
`trfls`

slot of the results.
Therefore, in these cases that matrix is not boolean,
but more complex. For each item and each subject, a character string represents
the evaluated answer alternatives, with the following elements:

`P`

True positive: Alternative was checked as right and is right.*Points: +1 (+ constant)*`p`

False positive: Alternative was checked as right but is wrong.*Points: 0 (+ constant)*`N`

True negative: Alternative was checked as wrong and is wrong.*Points: +1 (+ constant)*`n`

False negative: Alternative was checked as wrong but is right.*Points: -(alternatives-1) (+ constant)*`0`

Missing: Alternative wasn't checked at all.*Points: 0 (+ constant)*`*`

Error: Alternative was checked both wrong and right.*Points NRET+: 0 (+ constant); NR scores 1 point if this was the correct alternative, ET 1 point if it hit a wrong one, and NRET sums up the points for both the positive and negative answer (all + constant)*

An example: If we have an item with four alternatives, and the third one is right (i.e.,
"`--+-`

"), and a test subject considered the first alternative
to be correct and eliminated all others (i.e., "`+---`

"),
it would be evaluated as "`pNnN`

", that is 0+1-3+1=-1 point, not considering the constant.
As you can see,
it would be possible to end up with a negative sum of points. If you consider how in the end a mark will be assigned to the achieved points,
this would be a problem,
because a vactor cannot have negative indices. To circumvent this issue, klausuR automatically adds a constant to all results, so
that the worst possible result is not negative but 0. This constant is simply (alternatives-1),
i.e. 3 for the example. In other words, if our test had 10
such items,
the results minus 30 would be equivalent to scoring without that constant. You can use `nret.rescale`

to remove
the constant from the results afterwards.

**Marks**

The **assigned marks** are expected to be in a certain format as well (see `klausur.data`

for details),
as long as you don't want `klausur`

to suggest them itself. If you want to let klausuR make a suggestion,
set `marks="suggest"`

,
and `klausur.gen.marks`

kicks in and takes either the `mark.labels`

you have defined here or will
ask you step by step. See the documentation of that function for details. To see the suggested result in detail,
have a look at the slot
`marks`

of the returned object.

To calculate Cronbach's alpha and item analysis methods from the package `psychometric`

are used. Lienert's selction index
("Selektionskennwert") aims to consider both discriminatory power (correlation of an item with the test results) and difficulty to determine the
quality of an item. It is defined as

*S = \frac{r_{it}}{2 \times{} √{Difficulty \times{} (1-Difficulty)}}*

An object of class `klausuR-class`

with the following slots.

`results` |
A data.frame with global results |

`answ` |
A data.frame with all given answers |

`corr` |
A vector with the correct answers |

`wght` |
A vector with the weights of items |

`points` |
A data.frame with resulting points given for the answers |

`marks` |
A vector with assignments of marks to achieved score |

`marks.sum` |
A more convenient matrix with summary information on the defined marks |

`trfls` |
A data.frame of TRUE/FALSE values, whether a subject was able to solve an item or not |

`anon` |
A data.frame for anonymous feedback |

`mean` |
A table with mean, median and quartiles of the test results |

`sd` |
Standard deviation of the test results |

`cronbach` |
Internal consistency, a list of three elements "alpha", "ci" (confidence interval 95%) and "deleted" (alpha if item was removed) |

`item.analysis` |
A data.frame with information on difficulty, discriminatory power, discriminant factor and Lienert's selection index of all items. |

`distractor.analysis` |
A list with information on the selected answer alternatives for each individual item (only calculated if |

`misc` |
Anything that was stored in the |

Not all slots are shown by default (refer to `show`

and `plot`

).

`klausur`

allows some tweaks that are probably not as useful as they seem. For instance,
having items with more than one correct answer doesn't
necessarily yield more diagnostic information,
allowing for those being answered partially adds to that, and binding marks blindly to a normal distribution can
give quite unfair test results! In addition,
please do **always check a sample of the results** to make sure no errors accurred.

m.eik michalke meik.michalke@uni-duesseldorf.de

`klausur.data`

,
`klausur.report`

,
`compare`

,
`klausur.gen`

,
`klausur.gen.marks`

,
`klausur.gen.corr`

,
`plot`

, `psychometric`

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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | ```
data(antworten)
# vector with correct answers:
richtig <- c(Item01=3, Item02=2, Item03=2, Item04=2, Item05=4,
Item06=3, Item07=4, Item08=1, Item09=2, Item10=2, Item11=4,
Item12=4, Item13=2, Item14=3, Item15=2, Item16=3, Item17=4,
Item18=4, Item19=3, Item20=5, Item21=3, Item22=3, Item23=1,
Item24=3, Item25=1, Item26=3, Item27=5, Item28=3, Item29=4,
Item30=4, Item31=13, Item32=234)
# vector with assignement of marks:
notenschluessel <- c()
# scheme of assignments: marks[points_from:to] <- mark
notenschluessel[0:12] <- 5.0
notenschluessel[13:15] <- 4.0
notenschluessel[16:18] <- 3.7
notenschluessel[19:20] <- 3.3
notenschluessel[21] <- 3.0
notenschluessel[22] <- 2.7
notenschluessel[23] <- 2.3
notenschluessel[24] <- 2.0
notenschluessel[25:26] <- 1.7
notenschluessel[27:29] <- 1.3
notenschluessel[30:32] <- 1.0
# now combine all test data into one object of class klausur.answ
data.obj <- klausur.data(answ=antworten, corr=richtig, marks=notenschluessel)
# if that went well, get the test results
klsr.obj <- klausur(data.obj)
# to try pick-n scoring, we must also define all distractors
falsch <- c(Item01=1245, Item02=1345, Item03=1345, Item04=1345, Item05=1235,
Item06=1245, Item07=1235, Item08=2345, Item09=1345, Item10=1345, Item11=1235,
Item12=1235, Item13=1345, Item14=1245, Item15=1345, Item16=1245, Item17=1235,
Item18=1235, Item19=1245, Item20=1234, Item21=1245, Item22=1245, Item23=2345,
Item24=1245, Item25=2345, Item26=1245, Item27=1234, Item28=1245, Item29=1235,
Item30=1235, Item31=245, Item32=15)
data.obj <- klausur.data(answ=antworten, corr=richtig, wrong=falsch,
marks=notenschluessel)
klsr.obj <- klausur(data.obj, score="pick-n")
############################
# example for an NRET test
############################
# load sampla data in SPSS format
data(spss.data)
# define correct answers
spss.corr <- c(
item01=2, item02=3, item03=3, item04=3, item05=2,
item06=2, item07=3, item08=1, item09=1, item10=2)
# convert into klausuR type coding
klausuR.data <- nret.translator(spss.data, spss="in")
klausuR.corr <- nret.translator(spss.corr, spss="in", corr=TRUE,
num.alt=3, spss.prefix=c(corr="item"))
# now create the data object; "Nickname" must be renamed
data.obj <- klausur.data(answ=klausuR.data, corr=klausuR.corr,
rename=c(Pseudonym="Nickname"))
# finally, the test can be evaluated, using the scoring functions available
NRET.results <- klausur(data.obj, marks="suggest", mark.labels=11, score="NRET")
NRETplus.results <- klausur(data.obj, marks="suggest", mark.labels=11, score="NRET+")
NR.results <- klausur(data.obj, marks="suggest", mark.labels=11, score="NR")
ET.results <- klausur(data.obj, marks="suggest", mark.labels=11, score="ET")
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.