Lets say I have an equal variance SDT framework with an equal number of target present and target absent trials:




where $HR=$ hit rate, $FAR=$ false alarm rate, $d'=$ sensitivity, $C=$ bias, and $ACC=$ accuracy.

If I know the value of $C$ and $ACC$, how do I solve for $HR$ and $FAR$?

To put it another way. In ROC space, I know my iso-bias curve and I know my iso-accuracy curve, and I want to know the coordinates where they intersect in terms of $HR$ and $FAR$.

It seems that I should take my equations for $C$ and $ACC$ in terms of $HR$ and $FAR$, and work them to give me $HR$ and $FAR$ in terms of $C$ and $ACC$, but I haven't managed to successfully untangle the inverse CDFs in order to do that.


I can rearrange the equation for $ACC$, to express $FAR$ in terms of $HR$ and $ACC$:


And then I can plug that into the equation for $C$:


And rearrange that a bit:


And then I could do this:


And then I get stuck, because I'm not sure how to "free" the $HR$ buried on the right-hand side.

  • $\begingroup$ Welcome to Psychology.SE. Although the subject of the equations may fit the scope of this site, I am wondering if this may be more suited to math.stackexchange.com Whether it is better suited here or at math.stackexchange.com, what have you done to try and solve this and what are the results of your attempts? Where are your specific difficulties in solving in relation to "untangling the inverse CDFs"? $\endgroup$ Commented Nov 4, 2018 at 1:11
  • 2
    $\begingroup$ Although I'm in psychophysics, there's basically just one person that can help out here - StrongBad. They are not too active here, but they do seem to keep track of questions marked with the 'Psychophysics' tag, which is now included. They are knowledgeable on the topic and let's wait a bit until they show up. Otherwise, Math is surely another option. Please do not cross-post, but let the mod team migrate the question instead. $\endgroup$
    – AliceD
    Commented Nov 4, 2018 at 20:42
  • 1
    $\begingroup$ @AliceD I am not sure if there is an analytical expression unless you want to approximate the Gaussian CDF. If I am the best hope, then it is probably best to ask over at math.se, but if the OP can phrase the question in terms of the underlying integrals, that is probably better. $\endgroup$
    – StrongBad
    Commented Nov 6, 2018 at 18:24
  • 2
    $\begingroup$ @AliceD I suggest keeping this question here, asking the underlying mathematical question there, and then posting an answer here from the gained knowledge. The current formulation of the question is really nice for cogsci.se. $\endgroup$
    – StrongBad
    Commented Nov 6, 2018 at 18:25
  • 1
    $\begingroup$ @AliceD If it gets an answer over at math.se, than we/I/someone can translate from math speak to psych speak. $\endgroup$
    – StrongBad
    Commented Nov 6, 2018 at 20:59

1 Answer 1


I tried to do the math and got stuck. I asked for help at math.se and didn't get any further. My thinking is that it is not possible to write down a nice simple answer even though it is two equations and two unknowns, since system is not linear. When faced with math I cannot do, sometimes it is easier to just bring out the MATLAB hammer:

function [HR, FAR] = findHRFAR(c, acc)
    ACC = @(HR, FAR)(HR+1-FAR)./2;
    C = @(HR, FAR)(norminv(HR)+norminv(FAR))./2;

    HR = fminbnd(@(HR)temp(HR, c, acc), 0, 1);
    [SSE, FAR] = temp(HR, c, acc);

    [HR, FAR, C(HR, FAR), ACC(HR, FAR), SSE]

    function [SSE, FAR] = temp(HR, c, acc)
        [FAR, SSE] = fminbnd(@(FAR)((c-C(HR, FAR)).^2)+...
            ((acc-ACC(HR, FAR)).^2), 0, 1);

It runs pretty fast, but ... the nested bounded optimization is ugly, and there may be a more efficient way to find the answer. I also don't see any reason this could not be done in Octave, Python, or any similar type program of your choice.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.