OscatsAlgAstrat

OscatsAlgAstrat

Synopsis

struct              OscatsAlgAstrat;
gdouble             (*OscatsAlgAstratCriterion)         (const OscatsModel *model);
void                (*OscatsAlgAstratNotify)            (OscatsAlgAstrat *Param1,
                                                         OscatsExaminee *Param2,
                                                         GBitArray *Param3,
                                                         gpointer Param4);
void                oscats_alg_astrat_register_model    (GType model,
                                                         OscatsAlgAstratCriterion a,
                                                         OscatsAlgAstratCriterion b);
void                oscats_alg_astrat_restratify        (OscatsAlgAstrat *alg_data);

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----OscatsAlgorithm
               +----OscatsAlgAstrat

Properties

  "Nblocks"                  guint                 : Read / Write / Construct
  "Ncur"                     guint                 : Read
  "Nequal"                   guint                 : Read / Write / Construct
  "Nitems"                   GValueArray*          : Read / Write
  "Nstrata"                  guint                 : Read / Write / Construct
  "equal"                    gboolean              : Read / Write / Construct Only
  "modelKey"                 gchar*                : Read / Write
  "stratum"                  GBitArray*            : Read

Signals

  "stratum"                                        : Action

Description

Details

struct OscatsAlgAstrat

struct OscatsAlgAstrat;

Item selection support algorithm. This algorithm implements (part of) the a-Stratified item selection method. On registration, the algorithm will stratify the item bank into the given number of strata. Then, the algorithm uses the test hint to indicate the current stratum [see oscats_test_set_hint()]. The test hint is updated on the "administered" signal, after the given number of items for each stratum has been recorded for the examinee.

Note: This algorithm only implements item stratification. It must be used in conjunction with an algorithm to pick an item from within the current stratum (e.g. OscatsAlgClosestDiff or OscatsAlgMaxFisher).

Note: This algorithm does not terminate the test. It must be used in conjunction with an algorithm that signals completion of the CAT (e.g. OscatsAlgFixedLength). If the CAT proceeds beyond that last stratum, a warning will be issued.

OscatsAlgAstrat needs some way of knowing how to find the a-parameter for each model type. This is accomplished by registering a callback using oscats_alg_astrat_register_model(). Default callbacks are automatically registered for OscatsModelL1p, OscatsModelL2p, and OscatsModelL3p. These define discrimination as: [sum_i a_k^2]^{1/2} for each dimension i.

OscatsAlgAstrat emits the "stratum" signal when the test moves into a new stratum (including at the start of the test), for coordination with other algorithms that may need this information.

References:

Hua-Hua Chang and Zhiliang Ying (1999). "a-Stratified Multistage Computerized Adaptive Testing." Applied Psychological Measurement, 23, 211-222.

Hua-Hua Chang, Jiahe Qian, and Zhiliang Ying (2001). "a-Stratified Multistage Computerized Adaptive Testing Adaptive Testing With b Blocking." Applied Psychological Measurement, 25, 333-341.

Mark Reckase and Robert McKinley (1991). "The Discriminating Power of Items That Measure More Than One Dimension." Applied Psychological Measurement, 15, 361-373.


OscatsAlgAstratCriterion ()

gdouble             (*OscatsAlgAstratCriterion)         (const OscatsModel *model);


OscatsAlgAstratNotify ()

void                (*OscatsAlgAstratNotify)            (OscatsAlgAstrat *Param1,
                                                         OscatsExaminee *Param2,
                                                         GBitArray *Param3,
                                                         gpointer Param4);


oscats_alg_astrat_register_model ()

void                oscats_alg_astrat_register_model    (GType model,
                                                         OscatsAlgAstratCriterion a,
                                                         OscatsAlgAstratCriterion b);

Registers functions to identify the discrimination and difficulty parameters for model. Note that this happens automatically for OscatsModelL1p, OscatsModelL2p, and OscatsModelL3p.

model :

the GType of the OscatsModel

a :

function that returns the discrimination

b :

function that returns the difficulty

oscats_alg_astrat_restratify ()

void                oscats_alg_astrat_restratify        (OscatsAlgAstrat *alg_data);

Performs the stratification again. This function only needs to be called in complex simulations for which the stratification parameters (such as the number of strata, number of items per statum, the model key, etc.) change after the test has been constructed, which is not usual.

Note: This will reset the internal iterator to the first stratum, but does not emit "stratum".

alg_data :

the OscatsAlgAstrat agorithm data

Property Details

The "Nblocks" property

  "Nblocks"                  guint                 : Read / Write / Construct

The number of b blocks. If 0, then b blocking is not used.

Default value: 0


The "Ncur" property

  "Ncur"                     guint                 : Read

The number (0-based) of the current stratum.

Default value: 0


The "Nequal" property

  "Nequal"                   guint                 : Read / Write / Construct

The number of items to select from each stratum if "equal" is TRUE. Otherwise, see "Nitems".

Allowed values: >= 1

Default value: 5


The "Nitems" property

  "Nitems"                   GValueArray*          : Read / Write

An array indicating how many items to select from each stratum. May only be set if "equal" is FALSE. The number of strata is inferred from the length of the array.


The "Nstrata" property

  "Nstrata"                  guint                 : Read / Write / Construct

The number of strata. Note: If "equal" is FALSE, this value may not be set. Instead, the number of strata is taken from "Nitems".

Allowed values: >= 1

Default value: 2


The "equal" property

  "equal"                    gboolean              : Read / Write / Construct Only

If TRUE, the number of items selected from each stratum is the same, namely "Nequal", and "Nitems" is ignored. If FALSE, the number of items selected from each stratum must be specified by "Nitems", and both "Nequal" and "Nstrata" are ignored.

Default value: TRUE


The "modelKey" property

  "modelKey"                 gchar*                : Read / Write

The key indicating which model to use for stratification. A NULL value or empty string indicates the item's default model.

Default value: NULL


The "stratum" property

  "stratum"                  GBitArray*            : Read

The bit array indicating which items are in the current stratum.

Signal Details

The "stratum" signal

void                user_function                      (OscatsAlgAstrat *test,
                                                        OscatsExaminee  *e,
                                                        GBitArray       *stratum,
                                                        gpointer         user_data)      : Action

The "stratum" signal is emitted when the examinee moves to a new stratum (including at the beginning of the test).

test :

an OscatsTest

e :

an OscatsExaminee

stratum :

the proposed OscatsItem

user_data :

user data set when the signal handler was connected.