pysdt

A module for computing signal detection theory measures.

pysdt – Signal Detection Theory Measures

A module for computing signal detection theory measures. Some of the functions in this module have been ported to python from the ‘psyphy’ R package of Kenneth Knoblauch http://cran.r-project.org/web/packages/psyphy/index.html

pysdt.compute_proportions(nCA, nTA, nIB, nTB, corr)[source]

Compute proportions with optional corrections for extreme proportions.

Parameters:
nCAfloat

Number of correct ‘A’ trials

nTAint

Number of total ‘A’ trials

nIBfloat

Number of incorrect ‘B’ trials

nTBint

Number of total ‘B’ trials

corrstring

The correction to apply, none for no correction, ‘loglinear` for the log-linear correction, and 2N for the ‘2N’ correction.

Returns:
HRfloat

Hit rate

FAfloat

False alarm rate

References

[1]

Hautus, M. J. (1995). Corrections for extreme proportions and their biasing effects on estimated values of d’. Behavior Research Methods, Instruments, & Computers, 27(I), 46–51. http://doi.org/10.3758/BF03203619

[2]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

Examples

>>> H,F = compute_proportions(8, 10, 2, 10, "loglinear")
>>> H,F = compute_proportions(10, 10, 2, 10, "loglinear")
>>> H,F = compute_proportions(10, 10, 2, 10, "2N")
pysdt.dprime_ABX(H, FA, meth)[source]

Compute d’ for ABX task from ‘hit’ and ‘false alarm’ rates.

Parameters:
Hfloat

Hit rate.

FAfloat

False alarms rate.

methstring

‘diff’ for differencing strategy or ‘IO’ for independent observations strategy.

Returns:
dprimefloat

d’ value

References

[1]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

Examples

>>> dp = dprime_ABX(0.7, 0.2, 'IO')
>>> dp = dprime_ABX(0.7, 0.2, 'diff')
pysdt.dprime_ABX_from_counts(nCA, nTA, nCB, nTB, meth, corr)[source]

Compute d’ for ABX task from counts of correct and total responses.

Parameters:
nCAint

Number of correct responses in ‘same’ trials.

nTAint

Total number of ‘same’ trials.

nCBint

Number of correct responses in ‘different’ trials.

nTBint

Total number of ‘different’ trials.

methstring

‘diff’ for differencing strategy or ‘IO’ for independent observations strategy.

corrlogical

if True, apply the correction to avoid hit and false alarm rates of 0 or one.

Returns:
dprimefloat

d’ value

References

[1]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

Examples

>>> dp = dprime_ABX(0.7, 0.2, 'IO')
pysdt.dprime_SD(H, FA, meth)[source]

Compute d’ for one interval same/different task from ‘hit’ and ‘false alarm’ rates.

Parameters:
Hfloat

Hit rate.

FAfloat

False alarms rate.

methstring

‘diff’ for differencing strategy or ‘IO’ for independent observations strategy.

Returns:
dprimefloat

d’ value

References

[1]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

[2]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

Examples

>>> dp = dprime_SD(0.7, 0.2, 'IO')
pysdt.dprime_SD_from_counts(nCA, nTA, nCB, nTB, meth, corr)[source]

Compute d’ for one interval same/different task from counts of correct and total responses.

Parameters:
nCAint

Number of correct responses in ‘same’ trials.

nTAint

Total number of ‘same’ trials.

nCBint

Number of correct responses in ‘different’ trials.

nTBint

Total number of ‘different’ trials.

methstring

‘diff’ for differencing strategy or ‘IO’ for independent observations strategy.

corrlogical

if True, apply the correction to avoid hit and false alarm rates of 0 or one.

Returns:
dprimefloat

d’ value

References

[1]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

[2]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

Examples

>>> dp = dprime_SD(0.7, 0.2, 'IO')
pysdt.dprime_mAFC(Pc, m)[source]

Compute d’ corresponding to a certain proportion of correct responses in m-AFC tasks.

Parameters:
Pcfloat

Proportion of correct responses.

mint

Number of alternatives.

Returns:
dprimefloat

d’ value

References

[1]

Green, D. M., & Swets, J. A. (1988). Signal Detection Theory and Psychophysics. Los Altos, California: Peninsula Publishing.

[2]

Green, D. M., & Dai, H. P. (1991). Probability of being correct with 1 of M orthogonal signals. Perception & Psychophysics, 49(1), 100–101.

Examples

>>> dp = dprime_mAFC(0.7, 3)
pysdt.dprime_oddity(prCorr, meth='diff')[source]

Compute d’ for oddity task from proportion of correct responses. Only valid for the case in which there are three presentation intervals.

Parameters:
prCorrfloat

Proportion of correct responses.

methstring

‘diff’ for differencing strategy or ‘IO’ for independent observations strategy.

Returns:
dprimefloat

d’ value

References

[1]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

[2]

Versfeld, N. J., Dai, H., & Green, D. M. (1996). The optimum decision rules for the oddity task. Perception & Psychophysics, 58(1), 10–21.

Examples

>>> dp = dprime_oddity(0.7)
>>> dp = dprime_oddity(0.8)
pysdt.dprime_yes_no(H, FA)[source]

Compute d’ for one interval ‘yes/no’ type tasks from hits and false alarm rates.

Parameters:
Hfloat

Hit rate.

FAfloat

False alarms rate.

Returns:
dprimefloat

d’ value

References

[1]

Green, D. M., & Swets, J. A. (1988). Signal Detection Theory and Psychophysics. Los Altos, California: Peninsula Publishing.

[2]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

Examples

>>> dp = dprime_yes_no(0.7, 0.2)
pysdt.dprime_yes_no_from_counts(nCA, nTA, nCB, nTB, corr)[source]

Compute d’ for one interval ‘yes/no’ type tasks from counts of correct and total responses.

Parameters:
nCAint

Number of correct responses in ‘signal’ trials.

nTAint

Total number of ‘signal’ trials.

nCBint

Number of correct responses in ‘noise’ trials.

nTBint

Total number of ‘noise’ trials.

corrlogical

if True, apply the correction to avoid hit and false alarm rates of 0 or one.

Returns:
dprimefloat

d’ value

References

[1]

Green, D. M., & Swets, J. A. (1988). Signal Detection Theory and Psychophysics. Los Altos, California: Peninsula Publishing.

[2]

Macmillan, N. A., & Creelman, C. D. (2004). Detection Theory: A User’s Guide (2nd ed.). London: Lawrence Erlbraum Associates.

Examples

>>> dp = dprime_yes_no_from_counts(nCA=70, nTA=100, nCB=80, nTB=100, corr=True)
pysdt.gaussianPsy(x, alphax, betax, gammax, lambdax)[source]

Compute the gaussian psychometric function.

Parameters:
x

Stimulus level(s).

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function (guess rate).

lambdax:

The lapse rate.

Returns:
pc

Proportion correct at the stimulus level(s) x.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

pysdt.gumbelPsy(x, alphax, betax, gammax, lambdax)[source]

Compute the gumbel psychometric function.

Parameters:
x

Stimulus level(s).

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function (guess rate).

lambdax:

The lapse rate.

Returns:
pc

Proportion correct at the stimulus level(s) x.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

pysdt.invGaussianPsy(p, alphax, betax, gammax, lambdax)[source]

Compute the inverse gaussian psychometric function.

Parameters:
p

Proportion correct on the psychometric function.

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function.

lambdax:

The lapse rate.

Returns:
x

Stimulus level at which proportion correct equals p for the listener specified by the function.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

pysdt.invGumbelPsy(p, alphax, betax, gammax, lambdax)[source]

Compute the inverse gumbel psychometric function.

Parameters:
p

Proportion correct on the psychometric function.

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function.

lambdax:

The lapse rate.

Returns:
x

Stimulus level at which proportion correct equals p for the listener specified by the function.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

pysdt.invLogisticPsy(p, alphax, betax, gammax, lambdax)[source]

Compute the inverse logistic psychometric function.

Parameters:
p

Proportion correct on the psychometric function.

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function.

lambdax:

The lapse rate.

Returns:
x

Stimulus level at which proportion correct equals p for the listener specified by the function.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

pysdt.invWeibullPsy(p, alphax, betax, gammax, lambdax)[source]

Compute the inverse weibull psychometric function.

Parameters:
p

Proportion correct on the psychometric function.

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function.

lambdax:

The lapse rate.

Returns:
x

Stimulus level at which proportion correct equals p for the listener specified by the function.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

pysdt.logisticPsy(x, alphax, betax, gammax, lambdax)[source]

Compute the logistic psychometric function.

Parameters:
x

Stimulus level(s).

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function (guess rate).

lambdax:

The lapse rate.

Returns:
pc

Proportion correct at the stimulus level(s) x.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.

pysdt.weibullPsy(x, alphax, betax, gammax, lambdax)[source]

Compute the weibull psychometric function.

Parameters:
x

Stimulus level(s).

alphax:

Mid-point(s) of the psychometric function.

betax:

The slope of the psychometric function.

gammax:

Lower limit of the psychometric function (guess rate).

lambdax:

The lapse rate.

Returns:
pc

Proportion correct at the stimulus level(s) x.

References

[1]

Kingdom, F. A. A., & Prins, N. (2010). Psychophysics: A Practical Introduction. Academic Press.