dPrime: Function for calculating d prime

Description Usage Arguments Details Examples

View source: R/dPrime.R

Description

This function will calculate d prime from a vector of hits and a vector of false alarms.

Usage

1
dPrime(data, h, f)

Arguments

data

A data frame.

h

A vector of hits (0 = miss, 1 = hit).

f

A vector of false alarms (0 = correct rejection, 1 = false alarm).

Details

This metric is common in discrimination experiments. Note: If your participants are at ceiling, you may want to consider another analysis.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Create some data
set.seed(1); library(dplyr)
axb <- data.frame(subj = sort(rep(1:10, each = 20, times = 10)),
                  group = gl(2, 1000, labels = c("g1", "g2")),
                  hit = c(rbinom(1000, size = c(0, 1), prob = .8), 
                          rbinom(1000, size = c(0, 1), prob = .6)),
                  fa =  c(rbinom(1000, size = c(0, 1), prob = .3), 
                          rbinom(1000, size = c(0, 1), prob = .4))
)

# Calculate d prime on entire data frame
dPrime(axb, hit, fa)


# Calculate d prime for each subject by group, plot it, 
# and run a linear model
library(dplyr)
axb %>%
  group_by(subj, group) %>%
  summarize(dp = dPrime(., hit, fa)) %T>%
 {
  plot(dp ~ as.numeric(group), data = ., 
       main = "d' as a function of group", xaxt = "n", 
       xlab = "Group", ylab = "d' prime")
  axis(1, at = 1:2, labels = c("g1", "g2"))
  abline(lm(dp ~ as.numeric(group), data = .), col = "red")
 } %>%
 lm(dp ~ group, data = .) %>%
 summary()

jvcasill/lingStuff documentation built on April 9, 2021, 10:42 a.m.