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 *Pi*. 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 *(x_0,a)* and *(y,b)*. This
means that *x_0* seems to be brighter than the equivalence point we are
looking for. Thus on the next trial we use a luminance *x_1* that is a
little bit less than *x_0*. 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 *x_t* 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:

*What is a good starting value x_0?* 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.

*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.

*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.

*How should we define the result of an adaptive procedure?* After
stopping the data available are a sequence of stimuli and responses. 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.

Insert Table

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 yesno 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.

Insert Figure

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 adap1 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 *T_0*. The actual step in trial *t* is
computed by the formula *T_t = T_0/s_t* where *s_1 = 1*. If
the stepsize has to be reduced, we increase *s_t* by an amount
*d*. In our example *d= 1*. Thus the example shows the sequence
*s_1 = 1*, *s_2 = 1*, *s_3 = 1*, *s_4 = 2*, *s_5 =
3*. With *T_0 = 20* we thus get *T_1 = 20*, *T_2 = 20*, *T_3 =
20*, *T_4 = 10*, *T_5 = 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.

Insert Figure

Insert Figure

Insert Figure

Write *P* for the type of adaptive procedure. Let *S_t* be the state of the
procedure in trial *t* and *R_t* be the response in trial *t*. Then there is
a function *F_P* that maps pairs of states and responses into the set of
states:
S_t+1 = F_P(S_t, R_t).
The function *F_P* is the state-transition table of the procedure *P*.
PXL currently has 3 different state transition functions available, they
are shown in Figs. 1up1do, 1up2do, and 1up3do.

Figure 1up1do 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 1u1dval shows the corresponding parameter
transformation function. This function has an additional parameter *a*
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 1up2do 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(yes) * P(no)
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 1up2do 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.

PXL's 3rd adaptive procedure looks at triples of trials and decreases the
stimulus only if there are 3 "yes"-responses. Figure 1up3do
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
*T_t* be the stepsize for computing *x_t*, the stimulus in trial *t*. The
formula for computing *x_t* is
x_t = x_t-1 + sign(T_t) max(|T_t|, T_min).
Here *T_*min is a lower limit of the stepsize. If the
computed stepsize *T_t* becomes smaller than *T_*min,
we take *T_*min as the actual stepsize.

The stepsize *T_t* is a function of the current state, the initial
stepsize *T_0* and a step dividend *s_t*
T_t = H_P(T_0, S_t, s_t).
The functions *H_P* for the different procedure types are given in the
third columns of Tables 1u1dval, 1u2dval, and
1u3dval. The step
dividend *s_t* 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:
s_t = G_P(s_t-1, S_t, d, g).
The Tables 1u1dval, 1u2dval, and 1u3dval
contain the functions *G_P* for PXL's adaptive procedures in the second
column.

Insert Table

Insert Table

Insert Figure

Insert Table

The parameter `comptype` determines the actual method used for results
computation. If its value is `COMPADPROC` then the previously described
method is used. `NONCHANGING` results in no computation at all. There
are two more methods for computing results of adaptive procedures:
`COMPSUM` and `COMPMEAN`. These compute either the sum or the mean of
all adaptive variable values. Together with `adproctype` `NONCHNAGING`
these methods can be used to compute frequencies or means and relative
frequencies of the adaptive variables.

The routines for adaptive procedures are controlled by several experimental variables that are predefined in the library. The default values of these variables are such that no adaptive procedure is used. In order to use one of the adaptive methods described in the previous sections, some of the variables have to be set to new values. Table adpars contains a list of all the experimental variables and the corresponding formal parameters that have been used in the present chapter. The complete description of the experimental variables may be found in Chapter exvars.

Insert Table

There must be exactly one trial definition for each target stimulus in a
block. The factor `dfactor` 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 containes 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
`unlinkothers` to `ON`.
If `unlinkothers` is `OFF` then no trials are deleted and there are exactly `dfactor` 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 in all those trial parameters whose names are listed in the string range
`adapmaskpars`.

Parameter file

Author: Hans Irtel

irtel@psychologie.uni-mannheim.de