# Evaluate multiple choice tests with several test forms

### Description

This function can be used to evaluate tests that have several test forms. Please be aware that its results only make sense if each test form uses the same items, only in a different order.

### Usage

1 2 3 |

### Arguments

`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 and discriminatory power will be calculated.
If |

### Details

Firstly, `klausur.mufo`

will compute partial results for each parallel form,
and in the end combine these to global
results. Cronbach alpha and item analysis will be calculated for all subjects accordingly,
therefore the test items of
all tests will be re-ordered to fit the order of the first given test form (this does not apply to the partial results).

The parameters are mostly the same as those for `klausur`

. However,
in the `data`

object the
slot `corr`

must also contain `corr.key`

,
to communicate the order of items in each test form, and the slot `id`

needs one additional variable called `Form`

.

An example: You have prepared a test in two different parallel forms "A" an "B",
So in addition to the variables in `data@id`

you need to create a variable called `Form`

,
to document which test subject was given which test form. Since form "B" holds the same
items as form "A", only in a different order,
we only need to define these positions and we're done. Therefore `corr.key`

must
be a matrix or data.frame, again with a column called "Form", one column for each item,
and one row of data for each test form. That is, you'd need
one row for test form "A" and one for test form "B",
giving an index for each item where it is placed in the form. For "A" this is
simply ascending numbers from 1 to how many questions you asked,
but for row "B" each number indicates at which position an item
of "A" is to be found. See the example below.

### Value

An object of class `klausuR.mult-class`

with the following slots.

`forms` |
A character vector naming all test forms |

`results.part` |
A list of objects of class |

`results.glob` |
An object of class |

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

).

### Author(s)

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

### See Also

`klausur`

, `klausur.data`

### Examples

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 | ```
# this will create the data.frame "antworten.mufo"
# and the matrix "corr.key"
data(antworten.mufo)
# 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
mufo.data.obj <- klausur.data(answ=antworten.mufo, corr=richtig, marks=notenschluessel,
corr.key=corr.key)
# expect some warnings here, because some items have no variance
# in their subtest results, hence item analysis fails on them
klsr.mufo.obj <- klausur.mufo(mufo.data.obj)
``` |