How do I get MATLAB to display the d' when my hit rate = 1 using the norminv function?

3 views (last 30 days)
nehohmee
nehohmee on 19 Oct 2021
Answered: Jeff Miller on 19 Oct 2021
I am calculating d' using the following:
norminv(hit_rate) - norminv(fa_rate)
However, since my hit rate = 1, I am getting an Infinity value. Is there a way I could get MATLAB to overcome the Infinity from norminv(1) to give me my d' value?
Thanks so much for your help.

Answers (1)

Jeff Miller
Jeff Miller on 19 Oct 2021
No, d' cannot be computed when an observed hit_rate is 1 or fa_rate is zero. One of the most common work-arounds for this problem is to replace hit_rate of 1 with 1-1/(2*n), where n is the number of observations that went into the computation of hit_rate. (You can think of this as the average of the observed hit rate and the hit rate that would have been observed if there had been one miss. Alternatively, you can think of it as the observed hit rate with 1/2 of a miss.)
Similarly, replace fa_rate = 0 with 1/(2*n), as if there had been 1/2 of a false alarm.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!