
Statusmatrix fuer SUM_SCORE-Ableitungen
status-matrix-sum-score.RmdDiese Seite dokumentiert die erwartete Statusverrechnung fuer eine
abgeleitete Variable mit sourceType = "SUM_SCORE" und zwei
Quellvariablen. Die Sollwerte stammen aus @iqb/responses
5.2.2 und werden fuer den Versionsvergleich von 5.3.1 auf 5.5.0
unveraendert verwendet.
Die Matrix gilt bei ausgeschalteten Partial-Credit-Optionen. Die seit
5.4.0 verfuegbaren Optionen
TAKE_DISPLAYED_AS_ZERO_IF_PARTIAL und
TAKE_EMPTY_AS_ZERO_IF_PARTIAL sind standardmaessig
ausgeschaltet. Werden sie aktiviert, haengt das Ergebnis zusaetzlich von
den Quellwerten und einer regulaer kodierten Quelle ab.
Die Matrizen fuer valide Antworten und Ableitungen pruefen ergaenzend, ob auch abgeleitete Werte, Codes und Scores stimmen.
Die Matrix ist als Regressionstest in
tests/testthat/test-status_matrix_sum_score.R abgedeckt.
Der Test baut eine vollstaendig geschlossen kodierbare
SUM_SCORE-Ableitung, prueft alle 12 * 12 = 144
Statuskreuzungen und vergleicht den vom Autocoder erzeugten Status mit
dem hier dokumentierten Sollstatus.
VALUE_CHANGED ist in dieser Matrix bewusst nicht
enthalten. Dieser Status ist ein Zwischenstatus vor der Kodierung von
Basisvariablen; als Quellstatus fuer eine bereits zu aggregierende
SUM_SCORE-Ableitung sollte er nach dem vorgelagerten
Kodierschritt nicht mehr auftreten. CODE_SELECTION_PENDING
ist ebenfalls nicht enthalten, weil es in @iqb/responses
5.2.2 nicht Teil der Autocoder-Statuskonstanten ist.
Regelreihenfolge
Die Regeln werden von oben nach unten angewandt. Die erste passende Regel bestimmt den Zielstatus.
| condition | result |
|---|---|
| Mindestens eine Quelle ist UNSET. | UNSET |
| Mindestens eine Quelle ist DERIVE_ERROR oder NO_CODING. | DERIVE_ERROR |
| Mindestens eine Quelle ist CODING_ERROR. | CODING_ERROR |
| Mindestens eine Quelle ist INVALID. | INVALID |
| Mindestens eine Quelle ist CODING_INCOMPLETE oder DERIVE_PENDING, und alle Quellen sind CODING_COMPLETE, INTENDED_INCOMPLETE, CODING_INCOMPLETE oder DERIVE_PENDING. | DERIVE_PENDING |
| Mindestens eine Quelle ist in der zulaessigen/Pending-Gruppe, und mindestens eine andere Quelle ist ausserhalb dieser Gruppe. | INVALID |
| Mindestens eine Quelle ist PARTLY_DISPLAYED oder DISPLAYED, und mindestens eine andere Quelle ist NOT_REACHED. | PARTLY_DISPLAYED |
| Mindestens eine Quelle ist PARTLY_DISPLAYED, und mindestens eine andere Quelle ist DISPLAYED. | PARTLY_DISPLAYED |
| Mindestens eine Quelle ist INTENDED_INCOMPLETE, und alle Quellen sind CODING_COMPLETE oder INTENDED_INCOMPLETE. | CODING_COMPLETE |
| Alle Quellen haben denselben Status. | Quellstatus wird uebernommen |
Vollstaendige Matrix
| case | source_status_1 | source_status_2 | expected_status |
|---|---|---|---|
| 1 | CODING_COMPLETE | CODING_COMPLETE | CODING_COMPLETE |
| 2 | CODING_COMPLETE | INTENDED_INCOMPLETE | CODING_COMPLETE |
| 3 | CODING_COMPLETE | CODING_INCOMPLETE | DERIVE_PENDING |
| 4 | CODING_COMPLETE | DERIVE_PENDING | DERIVE_PENDING |
| 5 | CODING_COMPLETE | UNSET | UNSET |
| 6 | CODING_COMPLETE | NOT_REACHED | INVALID |
| 7 | CODING_COMPLETE | DISPLAYED | INVALID |
| 8 | CODING_COMPLETE | PARTLY_DISPLAYED | INVALID |
| 9 | CODING_COMPLETE | DERIVE_ERROR | DERIVE_ERROR |
| 10 | CODING_COMPLETE | NO_CODING | DERIVE_ERROR |
| 11 | CODING_COMPLETE | INVALID | INVALID |
| 12 | CODING_COMPLETE | CODING_ERROR | CODING_ERROR |
| 13 | INTENDED_INCOMPLETE | CODING_COMPLETE | CODING_COMPLETE |
| 14 | INTENDED_INCOMPLETE | INTENDED_INCOMPLETE | CODING_COMPLETE |
| 15 | INTENDED_INCOMPLETE | CODING_INCOMPLETE | DERIVE_PENDING |
| 16 | INTENDED_INCOMPLETE | DERIVE_PENDING | DERIVE_PENDING |
| 17 | INTENDED_INCOMPLETE | UNSET | UNSET |
| 18 | INTENDED_INCOMPLETE | NOT_REACHED | INVALID |
| 19 | INTENDED_INCOMPLETE | DISPLAYED | INVALID |
| 20 | INTENDED_INCOMPLETE | PARTLY_DISPLAYED | INVALID |
| 21 | INTENDED_INCOMPLETE | DERIVE_ERROR | DERIVE_ERROR |
| 22 | INTENDED_INCOMPLETE | NO_CODING | DERIVE_ERROR |
| 23 | INTENDED_INCOMPLETE | INVALID | INVALID |
| 24 | INTENDED_INCOMPLETE | CODING_ERROR | CODING_ERROR |
| 25 | CODING_INCOMPLETE | CODING_COMPLETE | DERIVE_PENDING |
| 26 | CODING_INCOMPLETE | INTENDED_INCOMPLETE | DERIVE_PENDING |
| 27 | CODING_INCOMPLETE | CODING_INCOMPLETE | DERIVE_PENDING |
| 28 | CODING_INCOMPLETE | DERIVE_PENDING | DERIVE_PENDING |
| 29 | CODING_INCOMPLETE | UNSET | UNSET |
| 30 | CODING_INCOMPLETE | NOT_REACHED | INVALID |
| 31 | CODING_INCOMPLETE | DISPLAYED | INVALID |
| 32 | CODING_INCOMPLETE | PARTLY_DISPLAYED | INVALID |
| 33 | CODING_INCOMPLETE | DERIVE_ERROR | DERIVE_ERROR |
| 34 | CODING_INCOMPLETE | NO_CODING | DERIVE_ERROR |
| 35 | CODING_INCOMPLETE | INVALID | INVALID |
| 36 | CODING_INCOMPLETE | CODING_ERROR | CODING_ERROR |
| 37 | DERIVE_PENDING | CODING_COMPLETE | DERIVE_PENDING |
| 38 | DERIVE_PENDING | INTENDED_INCOMPLETE | DERIVE_PENDING |
| 39 | DERIVE_PENDING | CODING_INCOMPLETE | DERIVE_PENDING |
| 40 | DERIVE_PENDING | DERIVE_PENDING | DERIVE_PENDING |
| 41 | DERIVE_PENDING | UNSET | UNSET |
| 42 | DERIVE_PENDING | NOT_REACHED | INVALID |
| 43 | DERIVE_PENDING | DISPLAYED | INVALID |
| 44 | DERIVE_PENDING | PARTLY_DISPLAYED | INVALID |
| 45 | DERIVE_PENDING | DERIVE_ERROR | DERIVE_ERROR |
| 46 | DERIVE_PENDING | NO_CODING | DERIVE_ERROR |
| 47 | DERIVE_PENDING | INVALID | INVALID |
| 48 | DERIVE_PENDING | CODING_ERROR | CODING_ERROR |
| 49 | UNSET | CODING_COMPLETE | UNSET |
| 50 | UNSET | INTENDED_INCOMPLETE | UNSET |
| 51 | UNSET | CODING_INCOMPLETE | UNSET |
| 52 | UNSET | DERIVE_PENDING | UNSET |
| 53 | UNSET | UNSET | UNSET |
| 54 | UNSET | NOT_REACHED | UNSET |
| 55 | UNSET | DISPLAYED | UNSET |
| 56 | UNSET | PARTLY_DISPLAYED | UNSET |
| 57 | UNSET | DERIVE_ERROR | UNSET |
| 58 | UNSET | NO_CODING | UNSET |
| 59 | UNSET | INVALID | UNSET |
| 60 | UNSET | CODING_ERROR | UNSET |
| 61 | NOT_REACHED | CODING_COMPLETE | INVALID |
| 62 | NOT_REACHED | INTENDED_INCOMPLETE | INVALID |
| 63 | NOT_REACHED | CODING_INCOMPLETE | INVALID |
| 64 | NOT_REACHED | DERIVE_PENDING | INVALID |
| 65 | NOT_REACHED | UNSET | UNSET |
| 66 | NOT_REACHED | NOT_REACHED | NOT_REACHED |
| 67 | NOT_REACHED | DISPLAYED | PARTLY_DISPLAYED |
| 68 | NOT_REACHED | PARTLY_DISPLAYED | PARTLY_DISPLAYED |
| 69 | NOT_REACHED | DERIVE_ERROR | DERIVE_ERROR |
| 70 | NOT_REACHED | NO_CODING | DERIVE_ERROR |
| 71 | NOT_REACHED | INVALID | INVALID |
| 72 | NOT_REACHED | CODING_ERROR | CODING_ERROR |
| 73 | DISPLAYED | CODING_COMPLETE | INVALID |
| 74 | DISPLAYED | INTENDED_INCOMPLETE | INVALID |
| 75 | DISPLAYED | CODING_INCOMPLETE | INVALID |
| 76 | DISPLAYED | DERIVE_PENDING | INVALID |
| 77 | DISPLAYED | UNSET | UNSET |
| 78 | DISPLAYED | NOT_REACHED | PARTLY_DISPLAYED |
| 79 | DISPLAYED | DISPLAYED | DISPLAYED |
| 80 | DISPLAYED | PARTLY_DISPLAYED | PARTLY_DISPLAYED |
| 81 | DISPLAYED | DERIVE_ERROR | DERIVE_ERROR |
| 82 | DISPLAYED | NO_CODING | DERIVE_ERROR |
| 83 | DISPLAYED | INVALID | INVALID |
| 84 | DISPLAYED | CODING_ERROR | CODING_ERROR |
| 85 | PARTLY_DISPLAYED | CODING_COMPLETE | INVALID |
| 86 | PARTLY_DISPLAYED | INTENDED_INCOMPLETE | INVALID |
| 87 | PARTLY_DISPLAYED | CODING_INCOMPLETE | INVALID |
| 88 | PARTLY_DISPLAYED | DERIVE_PENDING | INVALID |
| 89 | PARTLY_DISPLAYED | UNSET | UNSET |
| 90 | PARTLY_DISPLAYED | NOT_REACHED | PARTLY_DISPLAYED |
| 91 | PARTLY_DISPLAYED | DISPLAYED | PARTLY_DISPLAYED |
| 92 | PARTLY_DISPLAYED | PARTLY_DISPLAYED | PARTLY_DISPLAYED |
| 93 | PARTLY_DISPLAYED | DERIVE_ERROR | DERIVE_ERROR |
| 94 | PARTLY_DISPLAYED | NO_CODING | DERIVE_ERROR |
| 95 | PARTLY_DISPLAYED | INVALID | INVALID |
| 96 | PARTLY_DISPLAYED | CODING_ERROR | CODING_ERROR |
| 97 | DERIVE_ERROR | CODING_COMPLETE | DERIVE_ERROR |
| 98 | DERIVE_ERROR | INTENDED_INCOMPLETE | DERIVE_ERROR |
| 99 | DERIVE_ERROR | CODING_INCOMPLETE | DERIVE_ERROR |
| 100 | DERIVE_ERROR | DERIVE_PENDING | DERIVE_ERROR |
| 101 | DERIVE_ERROR | UNSET | UNSET |
| 102 | DERIVE_ERROR | NOT_REACHED | DERIVE_ERROR |
| 103 | DERIVE_ERROR | DISPLAYED | DERIVE_ERROR |
| 104 | DERIVE_ERROR | PARTLY_DISPLAYED | DERIVE_ERROR |
| 105 | DERIVE_ERROR | DERIVE_ERROR | DERIVE_ERROR |
| 106 | DERIVE_ERROR | NO_CODING | DERIVE_ERROR |
| 107 | DERIVE_ERROR | INVALID | DERIVE_ERROR |
| 108 | DERIVE_ERROR | CODING_ERROR | DERIVE_ERROR |
| 109 | NO_CODING | CODING_COMPLETE | DERIVE_ERROR |
| 110 | NO_CODING | INTENDED_INCOMPLETE | DERIVE_ERROR |
| 111 | NO_CODING | CODING_INCOMPLETE | DERIVE_ERROR |
| 112 | NO_CODING | DERIVE_PENDING | DERIVE_ERROR |
| 113 | NO_CODING | UNSET | UNSET |
| 114 | NO_CODING | NOT_REACHED | DERIVE_ERROR |
| 115 | NO_CODING | DISPLAYED | DERIVE_ERROR |
| 116 | NO_CODING | PARTLY_DISPLAYED | DERIVE_ERROR |
| 117 | NO_CODING | DERIVE_ERROR | DERIVE_ERROR |
| 118 | NO_CODING | NO_CODING | DERIVE_ERROR |
| 119 | NO_CODING | INVALID | DERIVE_ERROR |
| 120 | NO_CODING | CODING_ERROR | DERIVE_ERROR |
| 121 | INVALID | CODING_COMPLETE | INVALID |
| 122 | INVALID | INTENDED_INCOMPLETE | INVALID |
| 123 | INVALID | CODING_INCOMPLETE | INVALID |
| 124 | INVALID | DERIVE_PENDING | INVALID |
| 125 | INVALID | UNSET | UNSET |
| 126 | INVALID | NOT_REACHED | INVALID |
| 127 | INVALID | DISPLAYED | INVALID |
| 128 | INVALID | PARTLY_DISPLAYED | INVALID |
| 129 | INVALID | DERIVE_ERROR | DERIVE_ERROR |
| 130 | INVALID | NO_CODING | DERIVE_ERROR |
| 131 | INVALID | INVALID | INVALID |
| 132 | INVALID | CODING_ERROR | CODING_ERROR |
| 133 | CODING_ERROR | CODING_COMPLETE | CODING_ERROR |
| 134 | CODING_ERROR | INTENDED_INCOMPLETE | CODING_ERROR |
| 135 | CODING_ERROR | CODING_INCOMPLETE | CODING_ERROR |
| 136 | CODING_ERROR | DERIVE_PENDING | CODING_ERROR |
| 137 | CODING_ERROR | UNSET | UNSET |
| 138 | CODING_ERROR | NOT_REACHED | CODING_ERROR |
| 139 | CODING_ERROR | DISPLAYED | CODING_ERROR |
| 140 | CODING_ERROR | PARTLY_DISPLAYED | CODING_ERROR |
| 141 | CODING_ERROR | DERIVE_ERROR | DERIVE_ERROR |
| 142 | CODING_ERROR | NO_CODING | DERIVE_ERROR |
| 143 | CODING_ERROR | INVALID | CODING_ERROR |
| 144 | CODING_ERROR | CODING_ERROR | CODING_ERROR |