Once the data has been pre-processed, we can proceed to Model Fitting and Validation. SIFT currently supports parametric VAR modeling using the Vieira-Morf (Marple, 1987), or ARFIT algorithm (Schneider and Neumaier, 2001). ARFIT must be downloaded separately and installed in
est_checkMVARParams()
) and will let you know if the selected window length is sub-optimal (as well as recommend a better window length). ### 5.4.1.4. Process dynamics and neurophysiology In section 3.5., we discussed how, when selecting an appropriate model order, one should take into account the temporal dynamics and neurophysiology of the data. The same principles hold for window length selection. Although, with a large number of trials, we could theoretically fit our model using a window length as short at p+1 sample points long, we must consider that all interactions being modeled must occur within the selected window. In general, if we expect a maximum interaction lag of seconds between any two brain processes, we should make sure to select a window length of W . Furthermore, if we are interested in frequency-domain quantities, we should consider the time-frequency uncertainty principle, which states that every increase in temporal resolution leads to a concomitant decrease in frequency resolution. In general, a useful rule-of-thumb is to ensure that the window is long enough to span approximately one cycle of the lowest frequency of interest. ## 5.4.2. Selecting the model order Now that we have chosen our VAR algorithm, window length, and step size, we can proceed to model order analysis. Upon pressing **OK** in the previous GUI. You should see a warning window pop up below. It shows the results of a sanity check that evaluates the ratio of parameters to data points, calculates the number of estimable frequencies, checks the time-frequency product, and performs other relevant checks. Information is displayed for each condition, along with suggestions on optimal parameters to use if your parameter selections are sub-optimal. Here, we are being warned that the ratio of free parameters to data points is greater than 0.1, which may cause concern. This is because our upper model order of 30 is quite large. Let’s go ahead and ignore this error (we are likely to use a much lower model order when we fit our final model). The same reasoning goes for the warning about a short window size (0.4 seconds). Simply press **OK**. ![Screen Shot 2023-08-24 at 11 01 40 PM](https://github.com/sccn/SIFT/assets/1872705/0970316e-6302-48db-9106-becacdd37d92) *Figure caption. This GUI shows the results of a sanity check performed on the specified model parameters (this is always performed before model fitting).* A progress bar should now indicate our progress for each condition (*RespCorr*, *RespWrong*). When this is complete, you should see the resulting figures shown below. On the left is the result of the model order selection for *RespWrong*, and on the right is the result for *RespCorr*. The top panel shows the information criteria (averaged across windows) plotted versus the model. The vertical lines indicate each criterion's average optimal model order (model order that minimizes the information criterion). The lower array of histograms shows the distribution of optimal model orders for all windows for each criterion. Note that, as mentioned in section 3.5., for many windows, the AIC and FPE criteria do not appear to exhibit a clear minimum across the specified model range. In contrast, SBC shows a clear minimum peaking around *p*=5 (which is likely too low given that we will only be able to estimate 2.5 spectral peaks for each pair of variables), while HQ shows a clear minimum around *p*=10 for *RespWrong* and *RespCorr*. Note, however, that in both *RespWrong* and *RespCorr*, the upper limit on the model order selection criteria is approximately *p*=15. If we click on the top panel of *RespCorr*, we get an expanded view of the panel. Likewise, clicking on the histogram for HQ pops up an expanded view of the histogram. The shaded region indicates the range where 90% of the optional model order lies, and the text "20+-6" indicates the mean and standard deviation for each model order selection criteria. Note that although the minimum for the HQ criterion (purple) is at *p*=13, the upper limit of the “elbow” for the HQ criterion is around *p*=15 or *p*=16. It also appears that AIC/FPE indicates larger values of about 20 compared to SBC and HQ. From this, we might conclude that a suitable and safe model order for all windows and conditions is *p*=15. ![Screen Shot 2023-08-24 at 11 38 39 PM](https://github.com/sccn/SIFT/assets/1872705/a5f08d2a-8366-4cc2-b9af-1af5078415af) *Figure caption. Results of model order selection for **RespWrong** (left) and **RespCorr** (right). The top panel plots the information criteria versus model order and marks the average optimal model order for the selected criteria.* ![Screen Shot 2023-08-24 at 11 48 05 PM](https://github.com/sccn/SIFT/assets/1872705/d5abe97f-b9d5-4723-b189-b025ad6892e5) *Figure caption. Left: Close-up view of SBC (blue), HQ (purple), FPE (yellow), AIC (red; overlapping with FPE) information criteria plotted versus model order. Note that FPE and AIC plots are almost identical. Right: Distribution over all windows of optimal model order using HQ information criterion. Vertical markers denote the distribution mean. Note the distribution is somewhat bimodal, with one peak around 9 and another around 14.* ## 5.4.3. Fitting the final model Then, the following GUI pops up. ![Screen Shot 2023-08-24 at 11 06 07 PM](https://github.com/sccn/SIFT/assets/1872705/7709ec02-78fd-4b66-bae0-e251ac394f05) *Figure caption. GUI that pops up at the end of model order estimation.* We are now ready to fit the model. You may press **OK** on the previous query window, call menu item **Tools > SIFT > Model fitting and validation > Fit AMVAR model** or use the command line call below: ```matlab EEG = pop_est_fitMVAR(EEG); ``` We now set the model order option to **15** as per the previous discussion. The final set of parameters are shown in the table below: | | | |---------------------------|------------------| | Option | Value | | **Select MVAR algorithm** | **Vieira-Morf** | | **Window length (sec)** | **0.4** (400 ms) | | **Step size (sec)** | **0.01** (10 ms) | | **Model order** | **15** | ![Screen Shot 2023-08-25 at 1 19 50 PM](https://github.com/sccn/SIFT/assets/1872705/8168708b-bac2-4079-b22a-fb274f43a95f) *Figure caption. This GUI allows entering parameters for model order estimation. Our final set of selected parameters for model fitting. Note that we have selected the Vieira-Morf algorithm, a window length of 0.4 seconds with a step size of 0.01 sec, and a model order of 15. Upon clicking OK, a progress bar will show us the status of the model-fitting algorithm.* Click **OK** to continue. SIFT sanity check should proceed and generate no warnings or errors indicating we chose a valid set of model parameters, as shown below. ![Screen Shot 2023-08-25 at 1 20 24 PM](https://github.com/sccn/SIFT/assets/1872705/0b89221c-1b2a-4e0c-9246-0a9721a01da4) *Figure caption. SIFT sanity check.* If you do not wish to use the GUI, the same may be achieved from the command line using: ```matlab EEG = pop_est_fitMVAR( EEG, 'nogui', 'Algorithm', 'Vieira-Morf', 'ModelOrder', 15, 'WindowLength', 0.4, 'WindowStepSize', 0.01, 'verb', 1); ``` For each condition, the VAR\[15\] model will now be fit for each of the 238 windows. We should now see a progress bar indicating the model fitting progress for each condition. Depending on the speed of your computer, this may take a while, so you might want to take a break or do a little yoga. If you have little computer memory or processor speed issues, you can *increase the step size to 0.03 sec*. This will reduce the computation time demands while still producing similar results as in the remainder of this tutorial. ## 5.4.4. Validating the fitted model After you are refreshed from that Yoga session and the model has been fit for each condition, we will need to validate our fitted model. Select menu item **Tools > SIFT > Model Fitting and Validation > Validate Model** or type on the command line: ```matlab pop_est_validateMVAR(EEG); ``` You should now be presented with the GUI shown in the figure below. Here, we have the option to check the whiteness of the residuals, percent consistency, and model stability for each (or a random subset) of our windows. As we discussed in section 3.6., residual whiteness tests include portmanteau and autocorrelation tests for correlation in the residuals of the model (which could indicate a poor model fit). Here, we have the option to choose from the Ljung-Box, Box-Pierce, and Li-McLeod multivariate portmanteau tests and a simple autocorrelation function test. Percent consistency denotes the fraction of the correlation structure of the original data that is captured by the model, while model stability performs an eigenvalue test for the stability/stationarity of the process. The options for this GUI should be set as shown in the table below: | | | |----------------------------------|-----------------| | Option | Value | | **Check Whiteness of Residuals** | **checked** | | **significance level** | **0.05** | | **Check percent consistency** | **checked** | | **Check model stability** | **checked** | | **% windows to sample** | **100** | ![Screen Shot 2023-08-25 at 1 39 39 PM](https://github.com/sccn/SIFT/assets/1872705/de44eb6f-401e-405f-81cf-e014adf85624) *Figure caption. Model Validation GUI generated by `pop_est_validateMVAR()`. Here, we can choose to check the whiteness of residuals, percent consistency, and model stability for all (or some random subset) of windows. In this example, we have chosen a significance threshold of p\<0.05 for our whiteness tests.* Click **OK** to continue. You should now see a sequence of progress bars for each condition. This may take a while. Once the model validation routines have been completed, you should see the results shown for each of the two conditions, as in the figure below. The top panel of each figure shows the results of the whiteness tests as a function of the window index (sorted in order of temporal precedence). For the portmanteau tests, we have plotted the p-value for acceptance of the null hypothesis of correlated residuals (namely 1-*p* where *p* is the p-value for rejection of the null hypothesis). Values greater than 0.05 (blue dashed line) indicates the residuals are white at the p\<0.05 level. For the ACF test (red) we have plotted the probability of an observed ACF coefficient to be within the expected interval for white residuals. Values greater than 0.95 indicate the residuals are white at the p\<0.05 level. The fraction of windows that pass the whiteness test is noted in the legend. Note that the ACF tests classify all windows as having white residuals, while the portmanteau tests (which are much more conservative) indicate that most windows are white. The fact that a range of windows near the end of the epoch marginally fail the portmanteau tests may indicate that we may want to use a slightly larger model order (e.g., *p*=16) or perhaps a smaller window size (to improve local stationarity). The middle panel shows the percent consistency plotted versus the increasing window index. Note that the PC is reliably high (µ≈87%), suggesting a reasonable model fit. The lower panel shows the stability index for each window. Values above or near 0 indicate an unstable (and possibly non-stationary) model. In this case, we might try some additional preprocessing or shorten the window length to improve the local stationarity of the data. In our example, the stability index is reliably low, indicating a stable/stationary model. The validation checks all indicate a reasonably fit model (although there may be room for improvement of the fit). Assuming we are comfortable with this we can now proceed to spectral/connectivity estimation and visualization. ![Screen Shot 2023-08-25 at 1 46 27 PM](https://github.com/sccn/SIFT/assets/1872705/738fb14a-c872-489a-a9b0-6e62ef3ebdb1) *Figure caption. Results of model validation for RespWrong (top) and RespCorr (bottom) conditions. For each condition, a validation statistic is plotted versus the window index (sorted in order of temporal precedence). If only one window is available, bar plots are generated instead. The top panel shows the significance level for rejecting the hypothesis of correlated residuals. For portmanteau tests (LMP, Box-Pierce, Ljung-Box), a value greater than 0.05 (dashed line) and a value greater than 0.95 indicate white residuals at the p > 0.05 level. The middle panel shows the percent consistency. The bottom panel shows the stability index.*