PXLab Manual

[Home]    [Content]    [Previous Chapter]    [Next Chapter]

Adaptive Stimulus Control

An adaptive procedure is a method for changing the stimuli during an experiment depending on subject responses such that the response probability for a certain response approximates a predefined value after a sufficiently long sequence of trials have been run. Adaptive procedures are used in psychometric experiments where the procedure's purpose is to search for a stimulus that elicits a certain response with a fixed probability. The most simple situation is given by the problem of finding a stimulus x, such that x in context a is in some respect equivalent to stimulus y in context b:

(x,a) = (y,b).

As an example let x and y be small patches of light on a video screen with x and y being the respective luminance values, and let a and b be the respective background luminance values that surround x and y. The subject's task might be to adjust stimulus intensity x such that x on the background a looks as bright as the patch y on background b. An adjustment procedure like this, however, has several disadvantages. Among these are the sequential dependencies that are introduced by letting the subject do successive adjustments. In addition to that the adjustment procedure requires that the subject decides when to stop adjusting and thus the final precision strongly depends on the subject's motivation to do precise adjustments.

Using a psychometric method for finding the equivalent stimulus x in the above example assumes that there exists a strictly monotone increasing function for the probability that x in context a is judged to be brighter than y in context b. Let F(x,a,y,b) be that function. Then we may define x in context a to be equivalent to y in context b if F(x,a,y,b) = 0.5. This means that if we present (x,a) and (y,b) to the subject and ask if (x,a) looks brighter than (y,b) the subject will answer "yes" in approximately half of the presentations and "no" in the other half.

Since we don't know the response probability for any value of x in advance it may be very time consuming to find the proper value of x since it already takes some repeated responses to estimate the response probability at any point x. Here come the adaptive procedures. Suppose a subject responds with "yes" to the presentation of (x0 ,a) and (y,b). This means that x0 seems to be brighter than the equivalence point we are looking for. Thus on the next trial we use a luminance x1 that is a little bit less than x0. If the subject still responds with "yes" we go on decreasing the stimulus intensity until we get a "no" response. After getting a "no" response we increase the stimulus intensity. Thus we finally will get a series of continuously changing responses as the stimulus intensity xt approximates the equivalence point.

Adaptive procedures are very economic since they make optimal use of the information contained in the subject's responses. However, special care has to be taken in order to avoid the sequential effects of adjustment procedures mentioned above. Designing an adaptive procedure requires the solution of four major problems:

  1. What is a good starting value x0?
    It is clear that any sequentially dependent procedure somehow depends on the initial value that starts the sequence. It should be taken care that the starting value is good enough to ensure proper conversion of the whole sequence within the bounds given by the other parameters, especially the stepsize and the length of the procedure.

  2. How should each stimulus be changed, what is a good stepsize?
    Usually the stimulus change after each trial is not constant but is decreasing with increasing trial number. Thus at the beginning a large stepsize is chosen because this allows easy convergence into the range near the final point. At the end of the procedure a small stepsize is preferred since this results in a greater precision at the end of the sequence.

  3. When should the procedure be ended?
    The easiest way to define the stopping rule is to present a fixed number of trials and then stop. More refined rules make stopping depend on the number of response direction changes or on the stepsize reached.

  4. How should we define the result of an adaptive procedure?
    After stopping the data a sequence of stimuli and responses are available. The final stimulus value is an easy choice for the procedure result. Another way to compute the result is to average the stimuli in the final section of the sequence or to average the turning points in the sequence as suggested by Wetherill (1963). The turning points may also be used to compute a crude approximation for the final stimulus value's variance.

Procedure Types

PXLab uses an extended version of the transformed up-down methods of Levitt (1971). These methods may be described as finite state machines. Consider the simple 1-up-1-down procedure described earlier. Each adaptive sequence starts from a state named start. If the subject responds "yes" the sequence goes into state Y and if the first response is "no" then the procedure enters state N. Table 1 gives this simple state transition function. Each but the starting state is a simple description of the subject's response history.

Table 1: A simple state transition function for adaptive procedures. The set of possible states is start, N, Y. The first column shows the state in trial t with t0 = start. The second column shows the state in trial t+1, if the response in trial t was "No" and the third column shows the state in trial t+1 when the response in trial t was "yes".
State "no" "yes"
start N Y

The main purpose of the set of states is to record the response history in one single number. The current state of a sequence may be used to compute the next stimulus value: if the sequence is in state N, then the stimulus intensity has to be increased, if it is in state Y it has to be decreased. The state transition table given in Table 1 is somewhat trivial. So assume that we want to have a more complicated procedure, where the stepsize by which the stimulus is changed should remain constant as long the subject always gives the same response. If the subject changes the response direction, the stepsize should be decreased.

Figure 1: Example for an adaptive sequence of stimuli in the simple 1-up-1-down procedure.

The following list of stimulus-response pairs might result from such a sequence: (80, N), (100, N), (120, N), (140, Y), (130, N), (136.6, Y) .... Figure 1 shows the stimulus values for this example. The initial stimulus intensity is 80. Since there is a "no" response the stimulus is increased by the initial stepsize of 20, such that the second stimulus is 100. The second response is again "no". Thus the stepsize remains 20 and the next stimulus becomes 120. The same holds for the third response, the fourth stimulus is 140. Now there is a "yes" response. This makes a turning point of the adaptive sequence and we reduce the stepsize to half of its previous value. The stepsize becomes 10 and the next stimulus is 130. The response is another change of direction and the stepsize becomes one third of the original size. The general schema is to hold the stepsize constant as long as the subject's response remains constant. If there is a change of the response, the stepsize is reduced. We start out with an initial stepsize T0. The actual step in trial t is computed by the formula Tt = T0 /St where S1 = 1. If the stepsize has to be reduced, we increase St by an amount D. In our example D = 1. Thus the example shows the sequence S1 = 1, S2 = 1, S3 = 1, S4 = 2, S5 = 3. With T0 = 20 we thus get T1 = 20, T2 = 20, T3 = 20, T4 = 10, T5 = 6.6. The actual stimulus value depends on the initial stimulus, the stepsize and the response. If the response is "yes", we decrease the stimulus by the stepsize, if it is "no" we increase the stimulus.

Figure 2: Example for an adaptive sequence of stimuli in the simple 1-up-2-down procedure.

Figure 3: State transition diagram for a transformed 1-up-1-down adaptive procedure
which also detects changes in response direction.

Write P for the type of adaptive procedure. Let St be the state of the procedure in trial t and Rt be the response in trial t. Then there is a function FP that maps pairs of states and responses into the set of states:

St+1 = FP (St , Rt ).

The function FP is the state-transition table of the procedure P. PXLab currently has 3 different state transition functions available, they are shown in Figs. 3, 4, and 5.

Figure 3 corresponds to the simple 1-up-1-down procedure of the previous section. However, it uses a somewhat extended table of states in order to remember whether the subject's response has changed or has remained constant within the last two trials. This makes it possible to decrease the step size on response changes and to increase it if the response remains constant. Table 2 shows the corresponding parameter transformation function. This function has an additional parameter AdaptiveUpwardStepFactor which multiplies upward step sizes. Thus up and down step sizes may be different. Procedures like this have been used by Kaernbach (1990) to find points of the psychometric function with response probabilities different from 0.5.

Figure 4: State transition diagram for a transformed 1-up-2-down adaptive procedure.

Figure 4 is a transformed up-down method. The idea is to consider sequences of trials with constant stimulus values and to change the stimulus only if certain sequences are observed. The 1-up-2-down procedure uses pairs of trials where there are 4 possible sequences: YY, YN, NY, NN. These are partitioned into the up-group: YN, NY, NN and the down-group: YY. Thus the stimulus is decreased only if both trials elicit "yes"-responses. In all other cases the stimulus is increased. Since both the up- and the down-group arrive at a probability of 0.5 for the asymptotic stimulus value we have

P(down) = 0.5 = P(Y) * P(Y)

such that P(Y) = 0.707. Thus we get P(Y) = 0.707 for the asymptotic stimulus value. Note that there is no need to present the second trial of a pair if the subject responds "no" in the first trial, since both NY and NN are in the up-group. The state transition diagram 4 uses an extended set of states which also keeps track of the change history such that sequences of ups and downs may be treated different from sequences containing changes.

Figure 5: State transition diagram for a transformed 1-up-3-down adaptive procedure.

PXLab's 3rd adaptive procedure looks at triples of trials and decreases the stimulus only if there are 3 "yes"-responses. Figure 5 shows the state transition schema. This procedure arrives at a response probability of P(Y) = 0.795.

The purpose of the state machine is to code the response history such that the stimulus for the current trial may be computed from the last trial's stimulus, the current state, and the stepsize control parameters. Let Tt be the stepsize for computing xt, the stimulus in trial t. The formula for computing xt is

xt = xt-1 + sign(Tt ) max(|Tt |, Tmin ).

Here Tmin is a lower limit of the stepsize. If the computed stepsize Tt becomes smaller than Tmin , we take Tmin as the actual stepsize.

The stepsize Tt is a function of the current state, the initial stepsize T0 and a step dividend St

Tt = HP (T0 , St , St ).

The functions HP for the different procedure types are given in the third columns of Tables 2, 3, 4, and 5. The step dividend St is the main control for changes of the step size. It is a function of the procedure's state, the change parameters D and G and the step dividend of the previous trial:

St = GP (St-1 , St , D, G).

The Tables 2, 3, 4, and 5 contain the functions GP for PXL's adaptive procedures in the second column.

Table 2: Parameter transformation table for the 1-up-1-down adaptive procedure. This is the most simple type of adaptive procedure. It only responds to the most recent response but may be modified by additional parameters which allow various modifications of step sizes. This makes it possible to also implement the so called weighted up-down procedure also. If AdaptiveUpwardStepFactor is set to 1 and no weighted up-down-procedure is used then the simple 1-up-1down procedure should arrive at a response probability of 0.5 both for Y and N responses.
State AdaptiveStepDivisor(t) AdaptiveStepSize(t)
YN AdaptiveStepDivisor(t-1) + AdaptiveStepDivisorIncrement AdaptiveUpwardStepFactor * AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NY AdaptiveStepDivisor(t-1) + AdaptiveStepDivisorIncrement - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NN AdaptiveStepDivisor(t-1) - AdaptiveStepDivisorDecrement AdaptiveUpwardStepFactor * AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
YY AdaptiveStepDivisor(t-1) - AdaptiveStepDivisorDecrement - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)

Table 3: Parameter transformation table for the delayed 1-up-1-down adaptive procedure. This procedure keeps the step divisor as long as there is no change of response direction. After a change of response direction, however, the step divisor is incremented by the value which would have been active if there were a change at every trial.
State AdaptiveStepDivisor(t) AdaptiveStepSize(t)
YN 1 + AdaptiveTrialCounter * AdaptiveStepDivisorIncrement AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NY 1 + AdaptiveTrialCounter * AdaptiveStepDivisorIncrement - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NN AdaptiveStepDivisor(t-1) AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
YY AdaptiveStepDivisor(t-1) - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)

Table 4: Parameter transformation table for the 1-up-2-down adaptive procedure. This procedure should arrive at a response probability of 0.707 for Yes responses.
State AdaptiveStepDivisor(t) AdaptiveStepSize(t)
YYN AdaptiveStepDivisor(t-1) + AdaptiveStepDivisorIncrement AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
YY AdaptiveStepDivisor(t-1) + AdaptiveStepDivisorIncrement - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NN AdaptiveStepDivisor(t-1) - AdaptiveStepDivisorDecrement AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
YYYY AdaptiveStepDivisor(t-1) - AdaptiveStepDivisorDecrement - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NYN AdaptiveStepDivisor(t-1) AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NY AdaptiveStepDivisor(t-1) 0
YYY AdaptiveStepDivisor(t-1) 0

Table 5: Parameter transformation table for the 1-up-3-down adaptive procedure. This procedure should arrive at a response probability of 0.795 for Yes responses.
State AdaptiveStepDivisor(t) AdaptiveStepSize(t)
YYYN AdaptiveStepDivisor(t-1) + AdaptiveStepDivisorIncrement AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NYYY AdaptiveStepDivisor(t-1) + AdaptiveStepDivisorIncrement - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NN AdaptiveStepDivisor(t-1) - AdaptiveStepDivisorDecrement AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
YYYYYY AdaptiveStepDivisor(t-1) - AdaptiveStepDivisorDecrement - AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NYN AdaptiveStepDivisor(t-1) AdaptiveStepSize(0) / AdaptiveStepDivisor(t)
NY AdaptiveStepDivisor(t-1) 0
NYY AdaptiveStepDivisor(t-1) 0
NYYYY AdaptiveStepDivisor(t-1) 0
NYYYYY AdaptiveStepDivisor(t-1) 0

Stopping Rules

Up to now there are three valid stopping rules in PXLab: The first one is an empty condition and will never stop. It is selected by setting the variable AdaptiveStoppingRule to DontStop. The second stopping rule TurnPoints uses AdaptiveTurnPointCounter and AdaptiveTurnPointLimit to decide on the length of an adaptive sequence. If AdaptiveTurnPointCounter becomes equal to AdaptiveTurnPointLimit, then the sequence will be stopped. The third rule TurnPointsAtMinimum works similar to the second, but in this case counting of the turns does not start before the actual stepsize Tt is smaller than the minimal step size Tmin. Thus the procedure stops if there are at least AdaptiveTurnPointLimit turn points with minimal step size.

Computing the Results

Most PXLab programs are experimental only. They do not contain data analysis functions. Some adaptive applications are an exception since they are able to compute the results of adaptive procedures. The method used is the one proposed by Wetherill (1963). The idea is to take pairs of turning points of the adaptive sequence and to use them as an estimate of the final value and its variance. PXLab computes the arithmetic mean and standard deviation of the turning points in an adaptive sequence. It uses at most the last AdaptiveComputingPoints turning points of a sequence to compute the results. If less than AdaptiveComputingPoints turning points are available, then an even number of turning points is used. The results of the computations are entered into the experimental variable AdaptiveResults. The actual number of turning points used for computing the results is entered into AdaptiveTurnPointCounter.

The parameter AdaptiveResultComputation determines the actual method used for results computation. If its value is TailMean then the previously described method is used. NoResults results in no computation at all. There are more methods for computing results of adaptive procedures. The respective parameter values are found in AdaptiveResultCodes.

Mixing Different Adaptive Sequences in a Single Block

One single block may contain more than one adaptive sequence for a target. Each sequence is defined by a trial which contains all parameters necessary to define the sequence. The following parameters are needed. AdaptiveTrialCounter (t) counts the number of trials within a sequence. AdaptiveState (St ) stores the current state of the sequence and AdaptiveResponseParameter (Rt ) saves the response. AdaptiveStepDivisor(St ) is the current value of the step size divisor. These parameters must be trial arguments. If results computations are to be saved for each sequence then AdaptiveResults and AdaptiveTurnPointCounter also have to be trial arguments. Aside from these procedural parameters there has to be a stimulus parameter in each trial. This parameter's name is AdaptiveParameter. There still are some more parameters required to define an adaptive procedure, but these need not always be trial arguments. The procedure type is controlled by AdaptiveProcedure (P). If more than a single procedure type is used within a block then AdaptiveProcedure has to be a trial argument. AdaptiveStepDivisorIncrement (D) and AdaptiveStepDivisorDecrement (G) control how the factor AdaptiveStepDivisor(St ) changes. AdaptiveStepSizeMinimum (Tmin ) is the smallest and AdaptiveStepSize(T0 ) the initial step size. AdaptiveStoppingRule determines the stopping rule, AdaptiveTurnPointLimit gives the maximum number of turn points and AdaptiveComputingPoints gives the number of turning points used for computing the results.

There must be exactly one trial definition for each target stimulus in a block. The factor TrialFactor creates copies of the trial which constitute the trials of the adaptive sequence for the respective target. Thus at the start of an experiment each block contains a fixed number of trials for each target. If the stopping condition is satisfied then the remaining trials of the respective target may be deleted by setting AdaptiveRemoveTrailingTrials to ON. If AdaptiveRemoveTrailingTrials is OFF then no trials are deleted and there are exactly TrialFactor trials for each sequence. This may be desirable in order to keep proper randomization of multiple targets. If each sequence is stopped when the individual stopping criterion is satisfied then there will be only trials for a single target at the end of a block.

If there are more than one adaptive sequences in a block then the program must be able do classify each trial according to the target it belongs to. This is done by using some of the trial parameter values. Two trials are considered to belog to the same adaptive sequence if they have the same values of AdaptiveSequenceID.


A horizontal and a vertical line are shown. One of them divides the other at a certain ratio. The task is to select the line which is the longer one. The cursor up/down keys correspond to the vertical the left/right keys to the horizontal line. The point of subjective equality of a horizontal and a vertical line is determined by an adaptive procedure.

Experimental Parameters for Adaptive Procedures

Adaptive procedure type.
Stopping rule for adaptive procedures.
Adaptive procedure result computation method.
ID Code for trials of a single adaptive sequence.
Adaptive procedure state.
Name of the adaptive parameter.
Name of the adaptive procedure response parameter.
Counter which counts trials within an adaptive sequence.
Counter which counts turn points within an adaptive sequence.
Limit for the number of turn points used by the appropriate stopping rule.
Number of points used for computing the result of an adaptive sequence.
Initial step size in an adaptive procedure. The actual step size is limited by the value of AdaptiveStepSizeMinimum. If some transition rule requires to set the step size smaller than AdaptiveStepSizeMinimum, then it is set to the value of AdaptiveStepSizeMinimum and a flag is set which tells the adaptive procedure that the process has arrived at the minimum step size.
Minimum step size in an adaptive procedure.
Divisor for changing the step size during an adaptive procedure. The parameter AdaptiveStepDivisor never gets smaller than the value of AdaptiveStepDivisorDecrement. If any transformation requires setting AdaptiveStepDivisor smaller than AdaptiveStepDivisorDecrement then it is set to the value of AdaptiveStepDivisorDecrement itself.
Decrement for the step size divisor of an adaptive procedure.
Increment for the step size divisor of an adaptive procedure.
Upward step size factor for weighted up-down procedures.
Flag to remove trailing trials after an adaptive sequence is finished.
Flag to switch on a detailed protocol of the adaptive procedure.
If this flag is true then maximum likelihood estimation is used by the estimation procedures of the adaptive stimulus control system. If the flag is false then least square error minimization is used.
Assumed guessing rate for psychometric functions estimation.
Assumed lapsing rate for psychometric functions estimation.
The quantiles which should be returned after psychometric function estimation. The quantiles are returned in AdaptiveResults.
The results array for parameter estimates after adaptive procedures.


Kaernbach, C. (1990). A single-interval adjustment-matrix (SIAM) procedure for unbiased adaptive testing. The Journal of the Acoustical Society of America, 88, 2645--2655.

Levitt, H. (1971). Transformed up-down methods in psychoacoustics. The Journal of the Acoustical Society of America, 49, 467-476.

Wetherill, G. B. (1963). Sequential estimation of quantal response curves. Journal of the Royal Statistical Society, B25, 1--48.

[This file was last updated on July 15, 2010, 12:07:01.]

[Home]    [Content]    [Previous Chapter]    [Next Chapter]