D-prime (d_prime)

Calculation

D-prime uses linear discriminant analysis (LDA) to estimate the classification accuracy between two units.

  • \(v\) denotes a waveform.

  • \(C\) denotes the class (unit) for which the metric is being calculated.

  • \(D\) denotes the set of spikes which are not in \(C\).

  • \(P(v|C)\) probability distributions are assumed to be Gaussian.

LDA is fit to spikes in \(C\), then to spikes in \(D\).

  • \(\mu_C^{(LDA)}\) and \(\mu_D^{(LDA)}\) denote the mean of the LDA for clusters \(C\) and \(D\) respectively.

  • \(\sigma_C^{(LDA)}\) and \(\sigma_D^{(LDA)}\) denote the standard deviation of the LDA for clusters \(C\) and \(D\) respectively.

D-prime is then calculated as follows:

\[D_{\mathrm{prime}}(C) = \frac{ ( \mu_C^{(LDA)} - \mu_D^{(LDA)} ) }{ \sqrt{ 0.5( (\sigma_C^{(LDA)})^2 + (\sigma_D^{(LDA)})^2) } }\]

Expectation and use

D-prime is a measure of cluster separation, and will be larger in well separated clusters.

Example code

    import spikeinterface.qualitymetrics as qm

d_prime = qm.lda_metrics(all_pcs, all_labels, 0)

Reference

Cluster quality metrics computed from principal components.

spikeinterface.qualitymetrics.pca_metrics.lda_metrics(all_pcs, all_labels, this_unit_id)

Calculates d-prime based on Linear Discriminant Analysis.

Parameters
all_pcs2d array

The PCs for all spikes, organized as [num_spikes, PCs].

all_labels1d array

The cluster labels for all spikes. Must have length of number of spikes.

this_unit_idint

The ID for the unit to calculate these metrics for.

Returns
d_primefloat

D prime measure of this unit.

Used to measure cluster separation. The magnitude of D-prime will be higher in well separated clusters, and is therefore expected to be higher in true positive units.

Literature

Introduced by [Hill].

Hill

Hill, Daniel N., Samar B. Mehta, and David Kleinfeld. “Quality Metrics to Accompany Spike Sorting of Extracellular Signals.” The Journal of neuroscience 31.24 (2011): 8699–8705. Web.