Bst_granger_spectral spitting out NaN p values

I am calling the function bst_granger_spectral in script with the following inputs:
X = 14 channels x 2000 samples x 50 trials
Y = 14 channels x 2000 samples x 50 trials
Fs=1000;
order=10;
inputs.freq=[1:60];
inputs.freqResolution = 0.1;
inputs.nTrials=50;
inputs.flagFPE='true';

and I'm calling the function in the following way:

[connectivity, pValues, freq] = bst_granger_spectral(X, Y, Fs, order, inputs);

The contour plots from each frequency seem interesting (https://imgur.com/5JQ6YaQ), however, the P value is a single NaN value. I am new to granger causality analysis and I am still unsure how to interpret these results, especially if the P value is NaN. What is going wrong?

The function bst_granger_spectral.m does not provide a parametric estimation of p-value at the moment, sorry...

oh I see. I am told by my co worker that the granger connectivity matrix is supposed to range between -1 and 1. However, the values outputed by bst_granger_spectral.m gives values between 0 and 1. Why is this the case?

@hossein27en ?

1 Like

For Granger connectivity there is no range of values. It can be anything positive. For spectral Granger also there might be some normalization in code. As far as I know there is no negative value defined for Granger causality. It shows the amount of influence from one channel to another (the direction is coded in the counterpart element). So, [0 1] is an acceptable range.