# Calculating d prime in SPSS - Signal Detection

I have conducted an experiment in which participants saw one figure (target) briefly followed by a figure (probe) and asked if they were the same (yes) or not (no). Five different figures total, and when the probe did not match the target, one of the other four figures were used. This has given me an Excel file with one column that tells me the correct response to the given trial (either yes  or no ) and one column that tells me what the participant responded (yes or no). The combination of 1 and 1 would be hit, and 2 and 1 would be false alarm. I need to calculate d prime for each of the five figures and these are randomly ordered in my output. I want to get this into SPSS and use SPSS to calculate d prime (z[hit] - z[false alarm]) - unless it is miles easier to just calculate d prime in Excel?

This gives me a couple issues. (1) Given SPSS wants one row per participant, how can I do this when I need 3-4 variables (correct response, observed response, target identity and probe identity) for each trial (96 trials)? Unsure how to plot this correctly. (2) How do I calculate the Z scores? (3) How do I calculate the d prime?

And if this is much easier to deal with in Excel, how do I do it there? SPSS would be ideal since that is where we are meant to analyse our data.

Thank you so much if you are able to help me out!

Calculate the number of hits (hit rate) and number of false alarms (FA rate) for each participant. Then to calculate dprime run the following in your SPSS Synatx file dprime = PROBIT(Hit_rate) - PROBIT(False_Alarm_Rate).

You can calculate Z scores from SPSS quite easily and there are several tutorials online (e.g. https://www.youtube.com/watch?v=Soi1iXxpGmA) However, do not use these Z scores for calculating your dprime. It will give you incorrect values, including negative scores. Because that function finds the z-score relative to the mean and standard deviation in the sample, N(x-bar,sigma).

Use the above syntax. Or alternatively you can also use this syntax, and it will yield the same results.

COMPUTE HitZScore=IDF.NORMAL(HitRate,0,1)

to get the correct z transformations for hits with N(0,1).

COMPUTE FAZScore=IDF.NORMAL(HitRate,0,1)

to get the correct z transformations for False alarms with N(0,1).

COMPUTE Dprime = HitZScore - FAZScore