-
Notifications
You must be signed in to change notification settings - Fork 10
Negative Slope Sigmoids
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: