Skip to content
Cyril Pernet edited this page Oct 4, 2021 · 23 revisions

1st level analysis using mass univariate approach

At import

LIMO.Level = 1
LIMO.Analysis = specifies the analysis domain: Time, Frequency, or Time-Frequency
LIMO.Type = specifies the analysis space: Channels, Components, Sources
LIMO.dir = indicates the location of current LIMO.mat and associated files
LIMO.data = information about the data
LIMO.data.data = file name
LIMO.data.data_dir = directory where to read data
LIMO.data.chanlocs = import channel location information
LIMO.data.sampling_rate = sampling rate of the data in Hz
LIMO.data.start = when to start the analysis in ms
LIMO.data.trim1 = where to start the analysis as matrix index
LIMO.data.end = when to stop the analysis in ms
LIMO.data.trim2 = where to stop the analysis as matrix index
LIMO.data.timevect = vectors of time frames in ms - used when LIMO.Analysis = Time
LIMO.data.tf_times = vectors of time frames in ms - used when LIMO.Analysis = Time-Frequency
LIMO.data.lowf = which freq to start the analysis in Hz
LIMO.data.trim_lowf = where to start the analysis as matrix index
LIMO.data.highf = which freq to stop the analysis in Hz
LIMO.data.trim_highf = where to stop the analysis as matrix index
LIMO.data.freqvect = vectors of frequency frames in Hz - used when LIMO.Analysis = Frequency
LIMO.data.tf_freqs = vectors of frequency frames in Hz - used when LIMO.Analysis = Time-Frequency
LIMO.data.Cat = Categorical variable(s)
LIMO.data.Cont = Continuous variable(s)
LIMO.data.neighbouring_matrix = matrix describing which electrodes are neighbours - used if bootstrap is request
LIMO.data.size4D = data dimension - used when LIMO.Analysis = Time-Frequency
LIMO.data.size3D = data dimension repeating time frames at each frequency - used when LIMO.Analysis = Time-Frequency

Note about time/frequency vectors: the epochs can be for instance from -500ms to 1500ms and in LIMO tools choose to analyse shorter durations e.g. [-50 800] corresponding to LIMO.data.start and LIMO.data.end. If data are sampled at 250Hz this means there are 501 frames per epoch and LIMNO tools will trim the data to match the requested start and end time frames i.e. 113 (which would then actually be -52ms) and 326. The same logic applies to frequencies.

LIMO.design = information about the design
LIMO.design.fullfactorial = 0/1 specify if interaction should be included
LIMO.design.zscore = 0/1 zscoring of continuous regressors
LIMO.design.method = 'OLS',’WLS’ or ‘IRLS’
LIMO.design.type_of_analysis = ‘Mass-univariate’
LIMO.design.bootstrap = 0/1 indicates if bootstrap should be performed or not
LIMO.design.tfce = 0/1 indicates to compute TFCE or not

by default, we use a weighted least squares approach but ordinary least squares are useful if you don't have enough frames relative to the total number of trials.

creation of the design matrix (limo_design_matrix.m)

Once data are imported, the design matrix is created checking dimensions, regressors, etc.

LIMO.design.X = 2 dimensional matrix that describes the experiments' events
LIMO.design.nb_conditions = vector that returns the number of conditions per factor e.g. [2 2 2]
LIMO.design.nb_interactions = vector that returns the number of conditions per interaction e.g. [4 4 4]
LIMO.design.nb_continuous = scalar that returns the number of continuous variables e.g. [3]
LIMO.design.name = name of the design
LIMO.design.status = 'to do'

after estimation (limo_eeg(4) / limo_glm.m / limo_glm_boot.m)

Once the design is created, parameters (and effects) are estimated.

LIMO.design.weights = matrix of trial weights
LIMO.design.status = 'to do'
LIMO.model = information about the statistics
LIMO.model.model_df = df [effect, error]
LIMO.model.conditions_df = df [effect, error]
LIMO.model.interactions_df = df [effect, error]
LIMO.model.continuous_df = df [effect, error]

2nd level analysis using mass univariate approach

LIMO.Level = 2
LIMO.Analysis = specifies the analysis domain: Time, Frequency, or Time-Frequency
LIMO.Type = specifies the analysis space: Channels, Components, Sources
LIMO.dir = indicates the location of current LIMO.mat and associated files
LIMO.data = information about the data
LIMO.data.chanlocs = channel locations for the cap across all subjects
LIMO.data.neighbouring_matrix = neighbourhood matrix

All other fields are the same as 1st level - except those specified below.

One sample t-test (limo_trimci.m)

Computes a one-sample t-test using 20% trimmed mean and winsorized variance. Once the data are selected the LIMO.mat contains the following information is created

LIMO.data.data = 1*N cell array of file namess to read
LIMO.design = information of the design
LIMO.design.bootstrap = how many bootstrap performed
LIMO.design.tfce = 0/1 to compute TFCE
LIMO.design.electrode = vector of channels for 'virtual electrode' analysis'
LIMO.design.component = vector of components to pull for analysis'
LIMO.design.parameters = indicates which 1st level parameter was used
LIMO.design.name = test name with analysis space
LIMO.design.X = fake design matrix
LIMO.design.method = 'Trimmed mean' is the default

Two samples t-test (limo_yuen_ttest.m) and Paired t-test (limo_yuend_ttest.m):

Compute t-tests based on 20% trimmed mean and winsorized variances across samples. Once the data are selected the LIMO.mat contains the following information is created

LIMO.data.data = 2*1 cell array of file namess to read
LIMO.design = information of the design
LIMO.design.bootstrap = how many bootstrap performed
LIMO.design.tfce = 0/1 to compute TFCE
LIMO.design.electrode = vector of channels for 'virtual electrode' analysis'
LIMO.design.component = vector of components to pull for analysis'
LIMO.design.parameters = indicates which 1st level parameters were used
LIMO.design.name = test name with analysis space
LIMO.design.X = []
LIMO.design.method = 'Yuen t-test (Trimmed means)' is the default

Regression analysis (limo_glm.m):

Computes a regression using a standard GLM.

LIMO.data.data = 1*N cell array of file namess to read
LIMO.design = information of the design
LIMO.design.bootstrap = how many bootstrap performed
LIMO.design.tfce = 0/1 to compute TFCE
LIMO.electrode = vector of channels for 'virtual electrode' analysis'
LIMO.design.component = vector of components to pull for analysis'
LIMO.design.parameters = indicates which 1st level parameters were used
LIMO.design.name = test name with analysis space
LIMO.design.X = design matrix
LIMO.design.method = 'OLS' default or 'IRLS'
LIMO.design.type_of_analysis = 'Mass-univariate'
LIMO.design.fullfactorial = always 0
LIMO.design.status = 'to do' or 'done'
LIMO.design.zscore = 0/1
LIMO.design.nb_conditions = always 0
LIMO.design.nb_interactions = always 0
LIMO.design.nb_continuous = specifies how many regressors
LIMO.design.weights = weights used in the GLM

ANOVA (limo_robust_1way_anova.m):

Computes if group differences exist based on trimmed means.

LIMO.data.data = N*1 cell array of file namess to read
LIMO.design = information of the design
LIMO.design.bootstrap = how many bootstrap performed
LIMO.design.tfce = 0/1 to compute TFCE
LIMO.design.electrode = vector of channels for 'virtual electrode' analysis'
LIMO.design.component = vector of components to pull for analysis'
LIMO.design.parameters = indicates which 1st level parameters were used in each group
LIMO.design.name = test name with analysis space
LIMO.design.X = design matrix
LIMO.design.method = Generalized Welch's method
LIMO.design.type_of_analysis = 'Mass-univariate'
LIMO.design.fullfactorial = always 0
LIMO.design.status = 'to do' or 'done'
LIMO.design.zscore = 0/1
LIMO.design.nb_conditions = indicates the number of groups
LIMO.design.nb_interactions = always 0
LIMO.design.nb_continuous = always 0

Repeated measure ANOVA (limo_rep_anova.m):

Computes repeated effects, group and interactions using a Hotteling t^2 approach, i.e. accounting for specificity.

LIMO.data.data = group*repeated measures cell array of file namess to read
LIMO.design = information of the design
LIMO.design.bootstrap = how many bootstrap performed
LIMO.design.tfce = 0/1 to compute TFCE
LIMO.design.electrode = vector of channels for 'virtual electrode' analysis'
LIMO.design.component = vector of components to pull for analysis'
LIMO.design.parameters = indicates which 1st level parameters were used in each group
LIMO.design.name = test name with analysis space
LIMO.design.X = design matrix
LIMO.design.method = 'Mean'
LIMO.design.type_of_analysis = 'Mass-univariate'
LIMO.design.fullfactorial = always 0
LIMO.design.status = 'to do' or 'done'
LIMO.design.zscore = always 0
LIMO.design.nb_conditions = indicates the number of factors
LIMO.design.nb_interactions = if group
LIMO.design.nb_continuous = always 0
LIMO.design.factor_names = names of each factor
LIMO.design.effects = which effects are computed
LIMO.design.C = contrasts used to compute each effect
Clone this wiki locally