mne_connectivity.phase_slope_index#
- mne_connectivity.phase_slope_index(data, names=None, indices=None, sfreq=6.283185307179586, mode='multitaper', fmin=None, fmax=inf, tmin=None, tmax=None, mt_bandwidth=None, mt_adaptive=False, mt_low_bias=True, cwt_freqs=None, cwt_n_cycles=7, block_size=1000, n_jobs=1, verbose=None)[source]#
Compute the Phase Slope Index (PSI) connectivity measure.
The PSI is an effective connectivity measure, i.e., a measure which can give an indication of the direction of the information flow (causality). For two time series, and one computes the PSI between the first and the second time series as follows
indices = (np.array([0]), np.array([1])) psi = phase_slope_index(data, indices=indices, …)
A positive value means that time series 0 is ahead of time series 1 and a negative value means the opposite.
The PSI is computed from the coherency (see spectral_connectivity_epochs), details can be found in 1.
- Parameters
data : array_like, shape=(n_epochs, n_signals, n_times)
Can also be a list/generator of array, shape =(n_signals, n_times); list/generator of SourceEstimate; or Epochs. The data from which to compute connectivity. Note that it is also possible to combine multiple signals by providing a list of tuples, e.g., data = [(arr_0, stc_0), (arr_1, stc_1), (arr_2, stc_2)], corresponds to 3 epochs, and arr_* could be an array with the same number of time points as stc_*.
names :
list|np.ndarray|NoneThe names of the nodes of the dataset used to compute connectivity. If ‘None’ (default), then names will be a list of integers from 0 to
n_nodes. If a list of names, then it must be equal in length ton_nodes.indices :
tupleofarray|NoneTwo arrays with indices of connections for which to compute connectivity. If None, all connections are computed.
sfreq :
floatThe sampling frequency.
mode :
strSpectrum estimation mode can be either: ‘multitaper’, ‘fourier’, or ‘cwt_morlet’.
The lower frequency of interest. Multiple bands are defined using a tuple, e.g., (8., 20.) for two bands with 8Hz and 20Hz lower freq. If None the frequency corresponding to an epoch length of 5 cycles is used.
The upper frequency of interest. Multiple bands are dedined using a tuple, e.g. (13., 30.) for two band with 13Hz and 30Hz upper freq.
Time to start connectivity estimation.
Time to end connectivity estimation.
The bandwidth of the multitaper windowing function in Hz. Only used in ‘multitaper’ mode.
mt_adaptive : bool
Use adaptive weights to combine the tapered spectra into PSD. Only used in ‘multitaper’ mode.
mt_low_bias : bool
Only use tapers with more than 90 percent spectral concentration within bandwidth. Only used in ‘multitaper’ mode.
cwt_freqs :
arrayArray of frequencies of interest. Only used in ‘cwt_morlet’ mode.
cwt_n_cycles :
float|arrayoffloatNumber of cycles. Fixed number or one per frequency. Only used in ‘cwt_morlet’ mode.
block_size :
intHow many connections to compute at once (higher numbers are faster but require more memory).
n_jobs :
intHow many epochs to process in parallel.
verbose : bool,
str,int, orNoneIf not None, override default verbose level (see
mne.verbose()for more info). If used, it should be passed as a keyword-argument only.- Returns
conn : instance of
ConnectivityComputed connectivity measure(s). Either a
SpectralConnnectivity, orSpectroTemporalConnectivitycontainer. The shape of each array is either (n_signals ** 2, n_bands) mode: ‘multitaper’ or ‘fourier’ (n_signals ** 2, n_bands, n_times) mode: ‘cwt_morlet’ when “indices” is None, or (n_con, n_bands) mode: ‘multitaper’ or ‘fourier’ (n_con, n_bands, n_times) mode: ‘cwt_morlet’ when “indices” is specified and “n_con = len(indices[0])”.
References
- 1
Guido Nolte, Andreas Ziehe, Vadim V. Nikulin, Alois Schlögl, Nicole Krämer, Tom Brismar, and Klaus-Robert Müller. Robustly estimating the flow direction of information in complex physical systems. Physical Review Letters, 2008. doi:10.1103/PhysRevLett.100.234101.