Skip to content

Negative Slope Sigmoids

Heiko Schütt edited this page Apr 4, 2017 · 2 revisions

Psignifit 4 now supports the fitting of psychometric functions with negative slope. This was not described in our paper and not tested in similar detail. However, for symmetry reasons we believe it is quite save to assume that all estimations work as accurately as for the functions with positive slope.

Psignifit 4 does not detect whether the slope should be positive or negative. You need to provide this information to it by choosing the appropriate sigmoid in options.sigmoidName : To fit a function with negative slope simply replace the name of the sigmoid in the options struct with 'neg_[sigmoid name]'. As an example:

options.sigmoidName = 'neg_gauss'

This kind of call works for all sigmoids and sets the unscaled 'neg_' sigmoid to one minus the original sigmoid.

When fitting functions with negative slope all utility functions, changing the threshold definition, etc. work as with the 'normal' positive slope functions.

To illustrate the fitting of negative slope functions we first need data which can be sensibly fit by a function with negative slope:

data =[...
0.0010   89.0000   90.0000;...
0.0015   84.0000   90.0000;...
0.0020   90.0000   90.0000;...
0.0025   90.0000   90.0000;...
0.0030   82.0000   90.0000;...
0.0035   81.0000   90.0000;...
0.0040   72.0000   90.0000;...
0.0045   70.0000   90.0000;...
0.0050   58.0000   90.0000;...
0.0060   55.0000   90.0000;...
0.0070   46.0000   90.0000;...
0.0080   44.0000   90.0000;...
0.0100   44.0000   90.0000];

Fitting and plotting this data can be done like this:

options = struct;
options.expType = '2AFC';
options.sigmoidName = 'neg_gauss';
result = psignifit(data,options);
plotPsych(result)

Which yields the following plot:

Clone this wiki locally