Given X = n correlation matrices (between ROIs of the brain) and y = multivariate response variable of dimension n*t, we’d like to implement PLSRegression (using sklearn). t=6 in our case.

pls = PLSRegression(n_components = 6)

pls.fit(correlationmatrices, y)

y_pred=pls.predict(correlationmatrices)

The correlationmatrices are obtained using nilearn as below:

correlationmeasure = ConnectivityMeasure(kind=‘correlation’, vectorize=True)

correlationmatrices = correlationmeasure.fit_transform(abide_subjects)

abide_subjects is a list of timeseries of the images obtained as follows:

timeseries_0=regionExtractor.transform(funcfiles[0])

However, the prediction for y seems very off and the mean classification accuracy is always 0.

What is wrong/missing with the above approach?