*The Weibull Family of Psychometric Functions*

with the Weibull, Gumbel, Quick, and log-Quick functions defined as, respectively:

in which *ψ* refers to the proportion of correct (or 'yes') responses as a function of the stimulus intensity *x*. The lower asymptote
of *ψ* is given by *γ* (often referred to as the guess rate), while its upper asymptote is determined by *λ* (aka the lapse rate). *F* in the equation
characterizes the sensory mechanism. It has two parameters, *α* (aka the location or threshold) and *β* (aka the slope parameter).

Let's say you perform a 2AFC contrast detection task. You use five stimulus contrasts: 0.01, 0.02, 0.04, 0.08, and 0.16. You present 100 trials at each of the five stimulus contrasts, and the number of trials in which the stimulus was detected are 58, 62, 78, 85 and 95 respectively for the five stimulus contrasts.

If used correctly, the four functions mentioned above (Weibull, Gumbel, Quick, and logQuick) will all lead to the same exact fitted psychometric function. The code below shows how maximum-likelihood fitting should proceed for each of the four functions using fixed values for the guess and lapse rates. Note that the Weibull and the Quick function expect the stimulus intensities to be passed on a linear scale. An important thing to consider here is that both the Weibull and the Quick evaluate to zero when the stimulus intensity equals zero. In other words, a stimulus intensity of zero should correspond to a complete absence of signal. Moreover, negative values for stimulus intensities are meaningless. The Gumbel and the logQuick, on the other hand, expect stimulus intensities that have been log transformed.

StimLevels = [.01 .02 .04 .08 .16];OutOfNum = 100*ones(size(StimLevels));

NumPos = [58 62 78 85 95];

paramsFree = [1 1 0 0]; %estimate threshold and slope, fix guess and lapse rate

%search through this grid of parameter values for seed to be used in iterative parameter search

searchGrid.alpha = [.01:.01:.16];

searchGrid.beta = 10.^[-1:.1:1];

searchGrid.lambda = 0.01;

searchGrid.gamma = .5;

%fit Weibull

[paramsFittedW LLW] = PAL_PFML_Fit(StimLevels, NumPos, OutOfNum, searchGrid, paramsFree, @PAL_Weibull)

%fit Quick

[paramsFittedQ LLQ] = PAL_PFML_Fit(StimLevels, NumPos, OutOfNum, searchGrid, paramsFree, @PAL_Quick)

%prepare for Gumbel and logQuick fit

logStimLevels = log10(StimLevels);

searchGridlog = searchGrid;

searchGridlog.alpha = log10(searchGridlog.alpha);

%fit Gumbel

[paramsFittedG LLG] = PAL_PFML_Fit(logStimLevels, NumPos, OutOfNum, searchGridlog, paramsFree, @PAL_Gumbel)

%fit logQuick

[paramsFittedlQ LLlQ] = PAL_PFML_Fit(logStimLevels, NumPos, OutOfNum, searchGridlog, paramsFree, @PAL_logQuick)

The output produced by the above code:

paramsFittedW = 0.0594 0.9380 0.5000 0.0100 %these are α, β, γ, and λ respectively

LLW = -249.8085 %log Likelihood

paramsFittedQ = 0.0402 0.9380 0.5000 0.0100

LLQ = -249.8085

paramsFittedG = -1.2260 0.9380 0.5000 0.0100

LLG = -249.8085

paramsFittedlQ = -1.3957 0.9380 0.5000 0.0100

LLlQ = -249.8085

These four fits all correspond to one and the same psychometric function, namely the green curves in the figures below. Note that the fitted parameter values differ only in the value of the fitted threshold. The value of the threshold estimate for the Gumbel is simply the log-transform of the threshold estimate for the Weibull [log10(0.0594) = -1.226]. Thus the Weibull and the Gumbel are identical except that the Weibull uses a linear scale for contrast whereas the Gumbel uses a logarithmic scale. Similarly, the Quick and the logQuick functions are identical to each other except that the Quick operates on a linear scale but the logQuick operates on a logarithmic scale. The difference between the Weibull and Gumbel on the one hand and the Quick and the logQuick on the other is that, for the former pair, F (in the equation above) evaluates to 0.6321 (1 – e

^{-1}) at threshold whereas for the latter pair F evaluates to 0.5.

Note that two PFs of the same kind (i.e., both are Weibull, or both are Gumbel, etc.) that differ only in the value for the threshold are (rigid) translations of each other when plotted on a logarithmic scale, whereas they will differ in their shape when plotted on a linear scale.