misc example code: statistics.pyΒΆ
(Source code, png, hires.png, pdf)
"""
This example shows how to create surrogate connectivity to determine if
connectivity is statistically significant.
"""
import numpy as np
import scot
import numpy as np
# The data set contains a continuous 45 channel EEG recording of a motor
# imagery experiment. The data was preprocessed to reduce eye movement
# artifacts and resampled to a sampling rate of 100 Hz. With a visual cue, the
# subject was instructed to perform either hand or foot motor imagery. The
# trigger time points of the cues are stored in 'triggers', and 'classes'
# contains the class labels. Duration of the motor imagery period was
# approximately six seconds.
from scot.datasets import fetch
midata = fetch("mi")[0]
raweeg = midata["eeg"]
triggers = midata["triggers"]
classes = midata["labels"]
fs = midata["fs"]
locs = midata["locations"]
# Set random seed for repeatable results
np.random.seed(42)
# Prepare data
#
# Here we cut out segments from 3s to 4s after each trigger. This is right in
# the middle of the motor imagery period.
data = scot.datatools.cut_segments(raweeg, triggers, 3 * fs, 4 * fs)
# Set up analysis object
#
# We choose a VAR model order of 35, and reduction to 4 components.
ws = scot.Workspace({'model_order': 35}, reducedim=4, fs=fs, locations=locs)
fig = None
# Perform MVARICA and plot components
ws.set_data(data, classes)
ws.do_mvarica(varfit='class')
p = ws.var_.test_whiteness(50)
print('Whiteness:', p)
fig = ws.plot_connectivity_topos(fig=fig)
p, s, _ = ws.compare_conditions(['hand'], ['foot'], 'ffDTF', repeats=100,
plot=fig)
print(p)
ws.show_plots()
