Learn R Programming

mmpp (version 0.4)

fmetric: Compute Filter-based Metrics in a Functional Space Between Marked Point Processes

Description

The most commonly used and intensively studied metrics for spike trains, which is based on the continuation of event sequence to a real valued continuous function using a smoother function.

Usage

fmetric(S1, S2, measure = "sim", h = "laplacian", tau = 1, M = NULL, abs.tol = .Machine$double.eps^0.25)

Arguments

S1
marked point process data.
S2
marked point process data.
measure
"sim" for similarity and "dist" for distance. Default "sim".
h
filtering function. Default "laplacian" offers significant computational advantage. A function can be specified here like h=function(x,tau) exp(-x^2/tau). The function should be square integrable and non-negative (not checked in the code).
tau
parameter for filtering function.
M
a precision matrix for filter of marks, i.e., exp( - r' M r) is used for filtering marks. It should be symmetric and positive semi-definite.
abs.tol
absolute tolerance for numerical integration.

Value

Similarity or distance between two inputs (marked) point process S1 and S2.

Details

fmetric computes filter-based measure between MPP realizations. Discrete event timings are transformed into a continuous function by using a kernel smoother, and usual l2 inner product is adopted for defining the similarity between two point process realizations.

References

M. C. W. van Rossum. A Novel Spike Distance. Neural Computation, Vol. 13(4), pp. 751-763, 2001.

S. Schreiber, J.M. Fellous, P.H. Tiesinga, and T.J. Sejnowski. A new correlation-based measure of spike timing reliability, Neurocomputing, Vols. 52-54, pp. 925-931, 2003.

Examples

Run this code
##The aftershock data of 26th July 2003 earthquake of M6.2 at the northern Miyagi-Ken Japan.
data(Miyagi20030626)
## time longitude latitude depth magnitude
## split events by 7-hour
sMiyagi <- splitMPP(Miyagi20030626,h=60*60*7,scaleMarks=TRUE)$S
N <- 10
tau <- 0.1
sMat <- matrix(0,N,N)
  cat("calculating fmetric with tau ",tau,"...")
 for(i in 1:(N)){
   cat(i," ")
   for(j in i:N){
     S1 <- sMiyagi[[i]]$time;S2 <- sMiyagi[[j]]$time
    sMat[i,j] <- fmetric(S1,S2,tau=tau,M=diag(1,4))
   }
 }
 sMat <- sMat+t(sMat)
 tmpd <- diag(sMat) <- diag(sMat)/2
 sMat <- sMat/sqrt(outer(tmpd,tmpd))
image(sMat)

Run the code above in your browser using DataLab