adaptive - Initialization - Items API

Items API Initialization

adaptive

Configuration options for an adaptive assessment. Learnosity offers several forms including: Item Adaptive Testing, Item Branching, and Testlet Adaptive.

You would want to use this to perform a dynamic selection of Items based on the learner's current assessment performance, rather than using a pre-defined list of Items. Each subsequent Item is selected and loaded based on the previous Item's responses, whether the learner answered correctly or incorrectly.

Multiple Item selection algorithms are available and can be configured. See below for a description of the different options.

Important Only supported with rendering_type: "assess" and supersedes the items initialization option.

Values

Attribute path adaptive

  • Type ItemTestletAdaptive

    Use the Rasch model and Item Response Theory to select Items or Activities with a psychometrically-calibrated difficulty.

    See the ItemTestletAdaptive type definition for more information.

  • Type ItemBranching

    A basic form of dynamic assessment with pre-configured conditional branches.

    See the ItemBranching type definition for more information.

  • Type SelfHosted

    Implement your own custom algorithm for selecting each Item.

    See the SelfHosted type definition for more information.

Type definitions

  • ItemTestletAdaptive object

    This algorithm uses the Rasch model and Item Response Theory to select Items or Activities with a psychometrically-calibrated difficulty. This difficulty needs to be set as part of the Items or Activities in the Item bank.

    See Using Adaptive Assessments in Learnosity for more information.

    Note Either "termination_criteria" or "sequence" is mandatory.

    The following properties are supported.

    • type string

      Specifies the mode for selecting upcoming Items.

      Possible values

      • "itemadaptive" - Items are selected based on responses to previous Items.
      • "branching" - Activities (testlets) are selected instead of Items. The Activities themselves can be adaptive or fixed-form. The learner's performance on the Activities as well as their Items will be used to calculate their ability estimate.
    • sequence array

      Specific requirements for each individual Item in the session, allowing full control of the profile of every Item. The session will end when the end of this sequence is reached.

      The required_tags are the Tags from which the Item must be selected.

      The blacklist_tags are the Tags from which the Item must not be selected.

      In this example, the first Item in the session must be from Unit 2.7, and must not be technology enhanced.

      The second Item must be tagged with lifecycle:seeding. As this Tag matches the seeding Tag defined above, it will be treated as a seed Item, for instance, it will not be expected to have a difficulty, and responses to it will not be used when calculating ability estimates.

      [
                                                  {
                                                      "required_tags": {
                                                          "unit": [ "2.7 - Conditional statements" ]
                                                      },
                                                      "blacklist_tags": {
                                                          "technology-enhanced": [ "Yes" ]
                                                      }
                                                  },
                                                  {
                                                      "required_tags": {
                                                          "lifecycle": [ "seeding" ]
                                                      }
                                                  }
                                              ]
                                              
    • termination_criteria object

      The criteria used to determine when to finish a user's session (by order of precedence).

      Note Either "error_below" or "max_items" is mandatory.

      {
                                                  "error_below": 0.65,
                                                  "max_items": 45,
                                                  "min_items": 20
                                              }
                                              

      The following properties are supported.

      • error_below integer

        Threshold on the standard error of measurement of the user's ability estimate.

        The session will finish when the estimate's standard error falls below this threshold.

        This value should be set in consultation with psychometricians calibrating the Items' difficulty.

      • max_items integer

        Maximum number of Items to present. Must be at least one Item.

        The session will finish as soon as that many Items have been presented.

      • min_items integer

        Minimum number of Items to present. Must be at least one Item.

        The session will not finish until at least that many Items have been presented.

    • blacklist_tags object

      The Tags from which Items must not be selected.

      {
                                                  "unit": [ "2.7 - Conditional statements" ]
                                              }
                                              
    • exclude_items object

      Items which should not be selected in the session. The type can be "hard" for Items that should never be selected, or "soft" for Items that should only be selected if no similar Items are available.

      {
                                                  "type": "hard",
                                                  "references": [
                                                      "item-A",
                                                      "item-B",
                                                      "item-C"
                                                  ]
                                              }
                                              
    • initial_ability float (logit)

      The initial ability measure for the learner. This will be used as the target difficulty for the first Item.

      Default: 0

    • item_difficulty_offset float (logit)

      An offset to apply to each difficulty target. A positive value will cause more difficult Items to be selected.

      Default: 0

    • item_difficulty_tolerance float (logit)

      The size of the range of difficulties from which an Item should be randomly selected.

      For example, if the target difficulty is 0 logits, a tolerance of 1 will select an Item at random from all Items with a difficulty between -0.5 and 0.5 logits.

      If no Items are found in that range, an Item with difficulty between 0.5 and 1.5 will be selected, followed by the range -1.5 to -0.5, and so on.

      Default: 1

    • max_difficulty_change float (logit)

      When an ability estimate for the learner is not yet available, this value is added or subtracted (depending on the learner's response) from the difficulty of the previous Item to determine the difficulty target for the next Item.

      Default: 0.7

    • max_item_difficulty float (logit)

      The maximum difficulty of all available Items.

      Default: 9

    • min_item_difficulty float (logit)

      The minimum difficulty of all available Items.

      Default: -9

    • required_tags object

      Specifies the TagsV0 from which Items must be selected. Where multiple Tags of the same type are specified, the algorithm will alternate between each Tag.

      By default, the Tags will be distributed equally, but the weighting can be customised by providing the desired weight in an object alongside the name.

      For example, see the JSON configuration below. All Items in the session would be tagged with subject:Math.

      Half of the Items would be tagged with technology-enhanced-item:Yes, and the other half with technology-enhanced-item:No.

      Then 60% of the Items would be tagged with chapter:1 - The Number System, and 40% would be tagged with chapter:2 - Statistics and Probability.

      Note This is also used to select Items for automatic inclusion in Item pools alongside the Activity.

      {
                                                  "chapter": [
                                                      { "name": "1 - The Number System", "weight": 3 },
                                                      { "name": "2 - Statistics and Probability", "weight": 2 }
                                                  ],
                                                  "subject": [ "Math" ],
                                                  "technology-enhanced-item": [ "Yes", "No" ]
                                              }
                                              
    • interim_ability_estimation array[string]

      Ordered list of the preferred estimation methods to use during the session, for example, to determine the target difficulty for the next Item.

      The "eap", "empirical-eap", and "score-lookup" methods can be configured further using their respective properties.

      Default: [ "mle", "eap" ]

      Possible values

      • "mle" - Maximum-Likelihood Estimation

        This method requires a mixed response pattern for the Items seen, i.e., at least one correct response and one incorrect response.

      • "eap" - Expected A Posteriori (EAP)

        This method requires the eap option to be configured.

      • "empirical-eap" - Empirical Expected A Posteriori (EAP)

        As above, but the mean used for the calculation is the final ability estimate for the overall session. empirical_eap can optionally be configured.

      • "score-lookup"

        Use the raw score for the session (the sum of correct Items) to select an ability estimate from a lookup table - this method requires score_lookup to be configured (see below).

    • final_ability_estimation array[string]

      Ordered list of the preferred estimation methods to use for the final ability estimate calculated at the end of the session.

      The "eap", "empirical-eap", and "score-lookup" methods can be configured further using their respective properties.

      Default: [ "mle", "score-lookup", "eap" ]

      Possible values

      • "mle" - Maximum-Likelihood Estimation

        This method requires a mixed response pattern for the Items seen, i.e., at least one correct response and one incorrect response.

      • "eap" - Expected A Posteriori (EAP)

        This method requires the eap option to be configured.

      • "empirical-eap" - Empirical Expected A Posteriori (EAP)

        As above, but the mean used for the calculation is the final ability estimate for the overall session. empirical_eap can optionally be configured.

      • "score-lookup"

        Use the raw score for the session (the sum of correct Items) to select an ability estimate from a lookup table - this method requires score_lookup to be configured (see below).

    • subscore_ability_estimation array[string]

      Ordered list of the preferred estimation methods to use for subscores.

      The "eap", "empirical-eap", and "score-lookup" methods can be configured further using their respective properties.

      Default: [ "empirical-eap", "mle" ]

      Possible values

      • "mle" - Maximum-Likelihood Estimation

        This method requires a mixed response pattern for the Items seen, i.e., at least one correct response and one incorrect response.

      • "eap" - Expected A Posteriori (EAP)

        This method requires the eap option to be configured.

      • "empirical-eap" - Empirical Expected A Posteriori (EAP)

        As above, but the mean used for the calculation is the final ability estimate for the overall session. empirical_eap can optionally be configured.

      • "score-lookup"

        Use the raw score for the session (the sum of correct Items) to select an ability estimate from a lookup table - this method requires score_lookup to be configured (see below).

    • eap object

      Information used to calculate "eap" ability estimates.

      // "eap" example
                                              {
                                                  "mean": -0.25,
                                                  "num_points": 45,
                                                  "standard_deviation": 0.95,
                                                  "theta_max": 2.25,
                                                  "theta_min": -3
                                              }
                                              
    • empirical-eap object

      Information used to calculate "empirical-eap" ability estimates.

      Note These values override those in "eap".

      // "empirical-eap" example
                                              {
                                                  "standard_deviation": 1
                                              }
                                              
    • score-lookup object

      The lookup table used for "score-lookup" estimates.

      The min and max values are mapped to the lowest and highest possible scores, respectively.

      // "score-lookup" example
                                              {
                                                  "min": -3.5,
                                                  "max": 3.5
                                              }
                                              
    • seeding object

      Instructions for how seeding Items should be included in the session for calibration purposes. These Items are not expected to have difficulty measures, and responses to these Items have no effect on the user's ability estimate for the session.

      The tagtype and tagname define the specific Tag that identifies Items for seeding.

      The weight defines the proportion of seed Items that should be selected in the session -0.1 or 10% in this example.

      {
                                                  "tagtype": "lifecycle",
                                                  "tagname": "seeding",
                                                  "weight": 0.1,
                                                  "earliest_seed_item": 3,
                                                  "latest_seed_item": 3 // i.e. 3rd last
                                              }
                                              
  • ItemBranching object

    A lightweight form of dynamic assessment, with conditional branches pre-configured in the Activity definition.

    See Building Item Branching Assessments for more information.

    The following properties are supported.

    • type string

      Must be set to "itembranching".

      Possible values

      • "itembranching"
    • steps array[ItemStep|BinaryStep|GlobalScoreStep]

      An Item branching assessment comprises an array of steps. Steps can define the reference of Items to present to the learner when visited, or decisions to select which branch to visit next.

      Only Item steps result in Items being presented to the learner, decision steps are executed in the backend until the next Item step is visited.

      The assessment starts at the first step defined in the array, which should be an Item step. The order of the rest of the array does not matter.

      The following properties are supported.

      • ItemStep object

        The most basic step provides an Item reference to be presented to the learner when visited, as well as an unconditional pointer to the next step.

        {
                                                                              "id": "step-1",
                                                                              "reference": "item-reference-1",
                                                                              "next": "step-2"
                                                                            }
                                                                            

        The following properties are supported.

        • id string

          The identifier of the step within the Activity.

        • next string|null

          Either null (end of the assessment), or the ID of the next step to unconditionally jump to.

        • reference string

          Reference of the Item to present at this step.

      • BinaryStep object

        A basic step providing an Item reference, along with a conditional decision based on whether the learner answered correctly or not.

        {
                                                                                "id": "step-2",
                                                                                "reference": "item-reference-2",
                                                                                "next": {
                                                                                    "correct": "global-decision-step-1",
                                                                                    "incorrect": "step-3"
                                                                                }
                                                                            }
                                                                            

        The following properties are supported.

        • id string

          The identifier of the step within the Activity.

        • reference string

          The reference of the Item to present at this step.

        • next object

          An object with the identifiers of the steps to jump to depending on whether the last answer to the Item was correct or not.

          The following properties are supported.

          • correct string null

            Either null (end of the assessment), or the ID of the next step to jump to when the response to this Item is correct.

          • incorrect string null

            Either null (end of the assessment), or the ID of the next step to jump to when the response to this Item is incorrect.

      • GlobalScoreStep object

        Specify a global binary decision, depending on whether the total score is at least some ratio of the maximum achievable so far, or not.

        {
                                                                              "<": "step-4",
                                                                              ">=": null,
                                                                              "id": "global-decision-step-1",
                                                                              "percentage": 50,
                                                                              "type": "global-score"
                                                                            }
                                                                            

        The following properties are supported.

        • id string

          The identifier of the step within the Activity.

        • type string

          Must be set to "global-score".

          Possible values

          • "global-score"
        • percentage integer

          An integer between 0 and 100 representing the cut-off ratio of the maximum score.

        • >= string null

          Either null (end of the assessment), or the ID of the next step to jump to when the current score is greater than or equal to, the percentage of the maximum achievable score so far.

        • < string null

          Either null (end of the assessment), or the ID of the next step to jump to when the current score is smaller than the percentage of the maximum achievable score so far.

  • SelfHosted object

    Delegate the Item selection to an external third-party service which implements the Self-Hosted API.

    You would want to use this to implement a fully custom algorithm for selecting each Item, based on the learner's inputs, your own Item metadata and bespoke logic.

    See the full self-hosted object specification for more information.

    [
                    { "type": "subject", "name": "Math" },
                    { "type": "technology-enhanced-item", "name": "yes" },
                    { "type": "technology-enhanced-item", "name": "no" },
                    { "type": "chapter", "name": "1 - The Number System", "weight": 3 },
                    { "type": "chapter", "name": "2 - Statistics and Probability", "weight": 2 }
                ]
                

    The following properties are supported.

    • type string

      Must be set to "selfhosted".

      Possible values

      • "selfhosted"
    • required_tags array[TagsV2]

      The TagsV2 from which Items must be selected.

      Note This is also used to select Items for automatic inclusion in Item pools alongside the Activity.

Related articles

Was this article helpful?

Did you arrive here by accident? If so, learn more about Learnosity.