# mne.stats.linear_regression_raw¶

mne.stats.linear_regression_raw(raw, events, event_id=None, tmin=-0.1, tmax=1, covariates=None, reject=None, flat=None, tstep=1.0, decim=1, picks=None, solver='cholesky')

Estimate regression-based evoked potentials/fields by linear modelling

This models the full M/EEG time course, including correction for overlapping potentials and allowing for continuous/scalar predictors. Internally, this constructs a predictor matrix X of size n_samples * (n_conds * window length), solving the linear system Y = bX and returning b as evoked-like time series split by condition. See [R34].

Parameters: raw : instance of Raw A raw object. Note: be very careful about data that is not downsampled, as the resulting matrices can be enormous and easily overload your computer. Typically, 100 Hz sampling rate is appropriate - or using the decim keyword (see below). events : ndarray of int, shape (n_events, 3) An array where the first column corresponds to samples in raw and the last to integer codes in event_id. event_id : dict As in Epochs; a dictionary where the values may be integers or iterables of integers, corresponding to the 3rd column of events, and the keys are condition names. tmin : float | dict If float, gives the lower limit (in seconds) for the time window for which all event types’ effects are estimated. If a dict, can be used to specify time windows for specific event types: keys correspond to keys in event_id and/or covariates; for missing values, the default (-.1) is used. tmax : float | dict If float, gives the upper limit (in seconds) for the time window for which all event types’ effects are estimated. If a dict, can be used to specify time windows for specific event types: keys correspond to keys in event_id and/or covariates; for missing values, the default (1.) is used. covariates : dict-like | None If dict-like (e.g., a pandas DataFrame), values have to be array-like and of the same length as the columns in events. Keys correspond to additional event types/conditions to be estimated and are matched with the time points given by the first column of events. If None, only binary events (from event_id) are used. reject : None | dict For cleaning raw data before the regression is performed: set up rejection parameters based on peak-to-peak amplitude in continuously selected subepochs. If None, no rejection is done. If dict, keys are types (‘grad’ | ‘mag’ | ‘eeg’ | ‘eog’ | ‘ecg’) and values are the maximal peak-to-peak values to select rejected epochs, e.g.: reject = dict(grad=4000e-12, # T / m (gradiometers) mag=4e-11, # T (magnetometers) eeg=40e-5, # V (EEG channels) eog=250e-5 # V (EOG channels))  flat : None | dict or cleaning raw data before the regression is performed: set up rejection parameters based on flatness of the signal. If None, no rejection is done. If a dict, keys are (‘grad’ | ‘mag’ | ‘eeg’ | ‘eog’ | ‘ecg’) and values are minimal peak-to-peak values to select rejected epochs. tstep : float Length of windows for peak-to-peak detection for raw data cleaning. decim : int Decimate by choosing only a subsample of data points. Highly recommended for data recorded at high sampling frequencies, as otherwise huge intermediate matrices have to be created and inverted. picks : None | list List of indices of channels to be included. If None, defaults to all MEG and EEG channels. solver : str | function Either a function which takes as its inputs the sparse predictor matrix X and the observation matrix Y, and returns the coefficient matrix b; or a string. If str, must be 'cholesky', in which case the solver used is linalg.solve(dot(X.T, X), dot(X.T, y)). evokeds : dict A dict where the keys correspond to conditions and the values are Evoked objects with the ER[F/P]s. These can be used exactly like any other Evoked object, including e.g. plotting or statistics.

References

 [R34] (1, 2) Smith, N. J., & Kutas, M. (2015). Regression-based estimation of ERP waveforms: II. Non-linear effects, overlap correction, and practical considerations. Psychophysiology, 52(2), 169-189.