Skip to content

Instantly share code, notes, and snippets.

@schluppeck
Last active October 27, 2019 21:53
Show Gist options
  • Select an option

  • Save schluppeck/13635989972d46cfd20d0fe6fdf013d2 to your computer and use it in GitHub Desktop.

Select an option

Save schluppeck/13635989972d46cfd20d0fe6fdf013d2 to your computer and use it in GitHub Desktop.
Reality check on design matrices

Reality check on design matrices

Denis Schluppeck, 2019-10-27

A quick note to answer some questions that came up during a Functional Imaging Methods class (related to GLM/design matrices).

Including a quick example of

  1. how to load in txt files (matlab code)
  2. look at design matrix
  3. do some linear alebgra checks (as per question during class)
  4. explanation of how the temporal derivative column allows for shifts in time

effect of shifting

Check the matlab file designMatrixCheck in this gist for code. The raw m-file is here

Temporal derivatives

  • Q: What happens when we mix together EV1 and EV2 (the temporal derivative of EV1) in different proportions?

  • A: Adding different amount of the temporal derivative effectively shifts the model in time (positive weight... makes resulting EV happen earlier in time; negative weight... later)

Rank ok?

  • Q: "Is the design matrix actually ok? It looks like each EV and their temporal derivatives are quite similar... doesn't that cause problems?"

  • A: check rank of matrix... In order for linear regression to work, X, the design matrix needs to be invertible... for this it needs to be full rank. See eg: https://en.wikipedia.org/wiki/Rank_(linear_algebra)

fprintf('the number of EVs in X is %i, the rank(X) is %i\n', size(X,2), rank(X))
if size(X,2) == rank(X)
    disp('rank is ok... the world is a good place')
end

We can also check that EV1 and its temporal derivative are not similar... as that's what causes the actual problem. This must be true if X is full rank. But just to bring the point home:

% rank of the first two columns, should be 2!
rank(X(:, [1,2]))

You can also check what rref() returns. This is reduced row echelon form (Gauss-Jordan) and underlies the determination of rank and therefore how matlab determines if a matrix is invertible. (MIT OCW example: https://www.youtube.com/watch?v=xCIXkm3-ocQ)

/ContrastName1 face
/ContrastName2 objects
/ContrastName3 scenes
/ContrastName4 faces versus scenes
/ContrastName5 scenes versus faces
/NumWaves 6
/NumContrasts 5
/PPheights 8.888311e-01 8.892543e-01 8.888422e-01 8.887986e-01 8.887986e-01
/RequiredEffect 1.092 1.077 1.083 1.139 1.139
/Matrix
1.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00 0.000000e+00
1.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 -1.000000e+00 0.000000e+00
-1.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00 0.000000e+00
5.789082e-03 -6.408451e-03 -2.140328e-01 4.209714e-03 -8.340043e-02 -5.693331e-03
-9.410459e-04 -6.348726e-03 -2.094839e-01 4.110563e-03 -8.936415e-02 -5.586775e-03
-7.553930e-03 -6.228164e-03 -2.051389e-01 3.937278e-03 -9.511908e-02 -5.377447e-03
-1.404510e-02 -6.076975e-03 -2.009419e-01 3.809545e-03 -1.006683e-01 -5.171274e-03
-2.035774e-02 -5.855068e-03 -1.968575e-01 3.708579e-03 -1.060149e-01 -4.968234e-03
-2.640717e-02 -5.583205e-03 -1.928675e-01 4.605015e-03 -1.111620e-01 -4.768324e-03
-3.217806e-02 -5.322961e-03 -1.869952e-01 3.742736e-02 -1.161125e-01 -4.571540e-03
-3.770889e-02 -5.107161e-03 -1.173678e-01 1.255650e-01 -1.208695e-01 -4.377877e-03
-4.305000e-02 -4.937209e-03 6.469341e-02 2.032226e-01 -1.254362e-01 -4.187353e-03
-4.824268e-02 -4.818372e-03 2.894107e-01 2.109260e-01 -1.298155e-01 -3.999959e-03
-5.334781e-02 -4.763326e-03 4.866002e-01 1.702845e-01 -1.340105e-01 -3.815705e-03
-5.843208e-02 -4.748264e-03 6.297902e-01 1.170436e-01 -1.380244e-01 -3.634602e-03
-6.350876e-02 -4.726903e-03 7.203206e-01 4.033698e-02 -1.418601e-01 -3.456670e-03
-6.855196e-02 -4.675051e-03 7.099853e-01 -7.815770e-02 -1.455209e-01 -3.281908e-03
-7.352659e-02 -4.590837e-03 5.635390e-01 -1.745634e-01 -1.490098e-01 -3.110330e-03
-7.840300e-02 -4.471085e-03 3.605736e-01 -1.930198e-01 -1.523299e-01 -2.941951e-03
-8.313972e-02 -4.308780e-03 1.774660e-01 -1.582551e-01 -1.554844e-01 -2.776760e-03
-8.769308e-02 -4.120286e-03 4.425688e-02 -1.091287e-01 -1.584765e-01 -1.630275e-03
-9.205431e-02 -3.935523e-03 -4.043285e-02 -6.699689e-02 -1.593402e-01 3.143251e-02
-9.623957e-02 -3.769784e-03 -8.927347e-02 -3.773257e-02 -9.620729e-02 1.197449e-01
-1.002707e-01 -3.624079e-03 -1.153741e-01 -1.971790e-02 7.959945e-02 1.974661e-01
-1.041659e-01 -3.499865e-03 -1.281530e-01 -9.395890e-03 2.983023e-01 2.051914e-01
-1.079498e-01 -3.400446e-03 -1.335937e-01 -3.848775e-03 4.897181e-01 1.645993e-01
-1.116474e-01 -3.315145e-03 -1.352717e-01 -1.055086e-03 6.273756e-01 1.114613e-01
-1.152620e-01 -3.226136e-03 -1.351230e-01 2.714773e-04 7.126153e-01 3.490974e-02
-1.187827e-01 -3.125133e-03 -1.341480e-01 9.330296e-04 6.972315e-01 -8.333067e-02
-1.221965e-01 -3.012639e-03 -1.326774e-01 1.228425e-03 5.459791e-01 -1.793485e-01
-1.254933e-01 -2.892401e-03 -1.311135e-01 1.214567e-03 3.384501e-01 -1.973585e-01
-1.286677e-01 -2.768145e-03 -1.296725e-01 1.093031e-03 1.510273e-01 -1.621607e-01
-1.317171e-01 -1.657993e-03 -1.283534e-01 9.726571e-04 1.375800e-02 -1.126490e-01
-1.326721e-01 3.137187e-02 -1.271549e-01 8.537134e-04 -7.474101e-02 -7.018717e-02
-6.966209e-02 1.196660e-01 -1.260752e-01 7.364618e-04 -1.271508e-01 -4.063907e-02
1.059919e-01 1.973930e-01 -1.251124e-01 6.211643e-04 -1.565917e-01 -2.237304e-02
3.245134e-01 2.051336e-01 -1.242645e-01 5.080644e-04 -1.724908e-01 -1.182151e-02
5.157202e-01 1.645524e-01 -1.235290e-01 3.973908e-04 -1.808400e-01 -6.059018e-03
6.531420e-01 1.114153e-01 -1.229034e-01 2.893835e-04 -1.852202e-01 -3.056195e-03
7.381198e-01 3.485490e-02 -1.223847e-01 1.842679e-04 -1.875670e-01 -1.521121e-03
7.224486e-01 -8.341391e-02 -1.219699e-01 8.225442e-05 -1.888788e-01 -6.504768e-04
5.708837e-01 -1.794870e-01 -1.216557e-01 -1.646864e-05 -1.894853e-01 -1.467020e-04
3.630167e-01 -1.975666e-01 -1.214388e-01 -1.124952e-04 -1.897899e-01 4.571538e-05
1.752242e-01 -1.624413e-01 -1.213169e-01 -2.082230e-04 -1.900117e-01 1.272754e-04
3.754637e-02 -1.129942e-01 -1.212916e-01 -3.057801e-04 -1.901534e-01 1.190517e-03
-5.139716e-02 -7.058122e-02 -1.213649e-01 -4.046277e-04 -1.882489e-01 3.417025e-02
-1.042782e-01 -4.106553e-02 -1.215372e-01 -5.027393e-04 -1.224297e-01 1.223997e-01
-1.342077e-01 -2.281942e-02 -1.218065e-01 -5.982773e-04 5.598143e-02 2.000382e-01
-1.506063e-01 -1.227889e-02 -1.221695e-01 -6.882741e-04 2.772070e-01 2.076809e-01
-1.594601e-01 -6.521832e-03 -1.226184e-01 -7.679493e-04 4.710640e-01 1.670066e-01
-1.643475e-01 -3.524295e-03 -1.231401e-01 -8.357486e-04 6.110815e-01 1.137867e-01
-1.672078e-01 -1.998797e-03 -1.237240e-01 -8.947798e-04 6.986002e-01 3.715363e-02
-1.690452e-01 -1.142744e-03 -1.243631e-01 -9.485293e-04 6.854150e-01 -8.116789e-02
-1.701940e-01 -6.573068e-04 -1.250536e-01 -9.989839e-04 5.362811e-01 -1.772664e-01
-1.710608e-01 -4.855480e-04 -1.257928e-01 -1.049439e-03 3.307907e-01 -1.953600e-01
-1.718664e-01 -4.259677e-04 -1.265833e-01 -1.105406e-03 1.453206e-01 -1.602521e-01
-1.726144e-01 6.145317e-04 -1.274335e-01 -1.167474e-03 9.911563e-03 -1.108318e-01
-1.713392e-01 3.357140e-02 -1.283471e-01 -1.230409e-03 -7.681603e-02 -6.845432e-02
-1.061730e-01 1.217902e-01 -1.293220e-01 -1.289552e-03 -1.275331e-01 -3.898037e-02
7.156114e-02 1.994401e-01 -1.303526e-01 -1.342784e-03 -1.553496e-01 -2.077948e-02
2.920854e-01 2.071023e-01 -1.314327e-01 -1.386554e-03 -1.696850e-01 -1.028561e-02
4.852164e-01 1.664417e-01 -1.325496e-01 -1.414910e-03 -1.765241e-01 -4.575392e-03
6.244828e-01 1.132246e-01 -1.336850e-01 -1.428063e-03 -1.794441e-01 -1.624060e-03
7.112251e-01 3.658361e-02 -1.348268e-01 -1.432883e-03 -1.803827e-01 -1.436243e-04
6.972380e-01 -8.176597e-02 -1.359704e-01 -1.435089e-03 -1.803424e-01 6.687426e-04
5.472766e-01 -1.779198e-01 -1.371152e-01 -1.437020e-03 -1.796562e-01 1.112019e-03
3.409326e-01 -1.960839e-01 -1.382612e-01 -1.438780e-03 -1.787289e-01 1.243283e-03
1.545754e-01 -1.610536e-01 -1.394081e-01 -1.439647e-03 -1.777796e-01 1.264098e-03
1.823073e-02 -1.117125e-01 -1.405545e-01 -4.543696e-04 -1.768100e-01 1.283111e-03
-6.948891e-02 -6.940869e-02 -1.397294e-01 3.245450e-02 -1.758219e-01 1.300381e-03
-1.212547e-01 -3.999954e-02 -7.505908e-02 1.206813e-01 -1.748170e-01 1.315953e-03
-1.501730e-01 -2.185498e-02 1.021394e-01 1.984332e-01 -1.737970e-01 1.329904e-03
-1.656591e-01 -1.140697e-02 3.220941e-01 2.062368e-01 -1.727635e-01 1.342292e-03
-1.736865e-01 -5.726579e-03 5.146273e-01 1.657018e-01 -1.717180e-01 1.353170e-03
-1.778145e-01 -2.790656e-03 6.532734e-01 1.125734e-01 -1.706620e-01 1.362615e-03
-1.799714e-01 -1.320139e-03 7.393782e-01 3.598519e-02 -1.695968e-01 1.370678e-03
-1.811591e-01 -5.189248e-04 7.247412e-01 -8.238562e-02 -1.685239e-01 1.377419e-03
-1.817139e-01 -9.032853e-05 5.741225e-01 -1.786625e-01 -1.674445e-01 1.382772e-03
-1.820446e-01 2.306392e-05 3.671184e-01 -1.969855e-01 -1.663601e-01 1.382453e-03
-1.823727e-01 2.404160e-05 1.801100e-01 -1.620834e-01 -1.652805e-01 1.368465e-03
-1.827015e-01 2.250110e-05 4.314177e-02 -1.128160e-01 -1.642233e-01 2.325414e-03
-1.830329e-01 1.944854e-05 -4.516211e-02 -7.054013e-02 -1.612291e-01 3.519665e-02
-1.833679e-01 1.557702e-05 -9.746920e-02 -4.112913e-02 -9.442719e-02 1.233219e-01
-1.837071e-01 1.137836e-05 -1.268863e-01 -2.296564e-02 8.486587e-02 2.008626e-01
-1.840507e-01 7.187859e-06 -1.428300e-01 -1.249315e-02 3.068792e-01 2.084178e-01
-1.843984e-01 3.266264e-06 -1.512823e-01 -6.794358e-03 5.014437e-01 1.676733e-01
-1.847499e-01 -1.704227e-07 -1.558179e-01 -3.848227e-03 6.421090e-01 1.143990e-01
-1.851045e-01 -2.921131e-06 -1.583724e-01 -2.368925e-03 7.302270e-01 3.771774e-02
-1.854617e-01 -4.822077e-06 -1.599462e-01 -1.554784e-03 7.175937e-01 -8.065289e-02
-1.858203e-01 -5.851058e-06 -1.608705e-01 -1.107375e-03 5.689612e-01 -1.768038e-01
-1.861795e-01 -1.043386e-05 -1.615484e-01 -9.702049e-04 3.639182e-01 -1.949527e-01
-1.865474e-01 -2.684676e-05 -1.621975e-01 -9.421085e-04 1.788393e-01 -1.599017e-01
-1.869397e-01 -5.475938e-05 -1.628183e-01 6.986949e-05 4.376416e-02 -1.105387e-01
-1.873635e-01 -8.526706e-05 -1.614427e-01 3.300257e-02 -4.268660e-02 -6.821798e-02
-1.878169e-01 -1.116348e-04 -9.619986e-02 1.212499e-01 -9.318306e-02 -3.879974e-02
-1.882936e-01 -1.315913e-04 8.158962e-02 1.990189e-01 -1.208340e-01 -2.065316e-02
-1.887871e-01 -1.411291e-04 3.021502e-01 2.068361e-01 -1.350573e-01 -1.021208e-02
-1.892831e-01 -1.331948e-04 4.953009e-01 1.663112e-01 -1.418363e-01 -4.553024e-03
-1.897608e-01 -1.093640e-04 6.345725e-01 1.131896e-01 -1.447465e-01 -1.651175e-03
-1.902093e-01 -7.954032e-05 7.213074e-01 3.660485e-02 -1.457240e-01 -2.185506e-04
-1.906275e-01 -5.103287e-05 7.073020e-01 -8.176565e-02 -1.457696e-01 5.477060e-04
-1.910191e-01 -2.627743e-05 5.573133e-01 -1.780454e-01 -1.452145e-01 9.465803e-04
-1.913880e-01 -1.483991e-05 3.509342e-01 -1.963877e-01 -1.444620e-01 1.021007e-03
-1.917568e-01 -4.661544e-06 1.645164e-01 -1.615203e-01 -1.437576e-01 9.882074e-04
-1.921054e-01 9.999723e-04 2.810318e-02 -1.122936e-01 -1.430701e-01 9.708070e-04
-1.904651e-01 3.392459e-02 -5.969234e-02 -7.006476e-02 -1.424000e-01 9.530924e-04
-1.249640e-01 1.221153e-01 -1.115390e-01 -4.070003e-02 -1.417475e-01 9.351235e-04
5.307919e-02 1.997413e-01 -1.405409e-01 -2.257973e-02 -1.411128e-01 9.169599e-04
2.738908e-01 2.073840e-01 -1.561111e-01 -1.214303e-02 -1.404962e-01 8.986985e-04
4.672918e-01 1.667082e-01 -1.642202e-01 -6.461194e-03 -1.398976e-01 8.803840e-04
6.068152e-01 1.134799e-01 -1.684167e-01 -3.507679e-03 -1.393172e-01 8.620835e-04
6.938055e-01 3.683180e-02 -1.706136e-01 -2.008776e-03 -1.387548e-01 8.438791e-04
6.800611e-01 -8.152122e-02 -1.718095e-01 -1.180066e-03 -1.382103e-01 8.258077e-04
5.303408e-01 -1.776749e-01 -1.723476e-01 -7.316206e-04 -1.376837e-01 8.077876e-04
3.242400e-01 -1.958315e-01 -1.726459e-01 -6.072317e-04 -1.371749e-01 7.852290e-04
1.381388e-01 -1.607797e-01 -1.729348e-01 -6.064644e-04 -1.366930e-01 7.496715e-04
2.080663e-03 -1.104182e-01 -1.732313e-01 -6.239334e-04 -1.362550e-01 7.014714e-04
-8.334210e-02 -3.516725e-02 -1.735547e-01 -6.542787e-04 -1.358692e-01 6.497213e-04
-6.892642e-02 8.245522e-02 -1.739115e-01 -6.854047e-04 -1.355344e-01 6.011637e-04
8.090048e-02 1.782459e-01 -1.742968e-01 -7.096938e-04 -1.352454e-01 5.579723e-04
2.869467e-01 1.963500e-01 -1.747017e-01 -7.255089e-04 -1.349968e-01 5.242428e-04
4.730494e-01 1.613543e-01 -1.751180e-01 -7.342902e-04 -1.347751e-01 5.111835e-04
6.091653e-01 1.110488e-01 -1.755400e-01 -7.381278e-04 -1.345524e-01 5.240668e-04
6.947016e-01 3.585351e-02 -1.759635e-01 -7.387254e-04 -1.343049e-01 5.504787e-04
6.804549e-01 -8.171405e-02 -1.763861e-01 -7.371841e-04 -1.340292e-01 5.729391e-04
5.308514e-01 -1.774507e-01 -1.768060e-01 -7.341213e-04 -1.337365e-01 5.825635e-04
3.250823e-01 -1.955019e-01 -1.772220e-01 -7.298266e-04 -1.334413e-01 5.741789e-04
1.393089e-01 -1.604547e-01 -1.776328e-01 -7.243814e-04 -1.331652e-01 5.383085e-04
3.573315e-03 -1.110837e-01 -1.780374e-01 -7.177550e-04 -1.329416e-01 1.456474e-03
-8.350265e-02 -6.874471e-02 -1.784344e-01 -7.098649e-04 -1.308289e-01 3.427793e-02
-1.345887e-01 -3.930087e-02 -1.788227e-01 -7.006358e-04 -6.496087e-02 1.223546e-01
-1.627938e-01 -2.112451e-02 -1.792008e-01 -6.899772e-04 1.133529e-01 1.998555e-01
-1.775364e-01 -1.065145e-02 -1.795673e-01 -6.777692e-04 3.343520e-01 2.073810e-01
-1.848002e-01 -4.955320e-03 -1.799206e-01 -6.639287e-04 5.278770e-01 1.666151e-01
-1.881529e-01 -2.005167e-03 -1.802590e-01 -6.483729e-04 6.674847e-01 1.133253e-01
-1.895175e-01 -5.158629e-04 -1.805807e-01 -6.310335e-04 7.545314e-01 3.663205e-02
-1.898920e-01 3.050886e-04 -1.808840e-01 -6.118498e-04 7.408156e-01 -8.174874e-02
-1.896148e-01 7.501781e-04 -1.811670e-01 -5.909176e-04 5.910907e-01 -1.779089e-01
-1.890991e-01 8.753378e-04 -1.814281e-01 -5.728850e-04 3.849461e-01 -1.960663e-01
-1.885714e-01 8.797067e-04 -1.816747e-01 -5.662428e-04 1.987570e-01 -1.610233e-01
-1.880468e-01 8.672899e-04 -1.819222e-01 4.138172e-04 6.256332e-02 -1.116680e-01
-1.875437e-01 8.424790e-04 -1.802083e-01 3.331324e-02 -2.501393e-02 -6.935476e-02
-1.870686e-01 8.167636e-04 -1.146591e-01 1.215327e-01 -7.664465e-02 -3.994379e-02
-1.866168e-01 7.973329e-04 6.341251e-02 1.992815e-01 -1.054374e-01 -2.180436e-02
-1.861804e-01 7.856012e-04 2.842387e-01 2.070901e-01 -1.208101e-01 -1.137022e-02
-1.857519e-01 7.800250e-04 4.776539e-01 1.665750e-01 -1.287457e-01 -5.713671e-03
-1.853265e-01 7.784278e-04 6.172104e-01 1.134800e-01 -1.328111e-01 -2.803010e-03
-1.849011e-01 7.790361e-04 7.042627e-01 3.692853e-02 -1.349284e-01 -1.352658e-03
-1.844743e-01 7.807319e-04 6.906084e-01 -8.140951e-02 -1.360946e-01 -5.699091e-04
-1.840454e-01 7.827552e-04 5.410015e-01 -1.776599e-01 -1.366472e-01 -1.622142e-04
-1.836144e-01 7.801588e-04 3.350318e-01 -1.959622e-01 -1.369984e-01 -7.355163e-05
-1.831905e-01 7.643685e-04 1.490754e-01 -1.610436e-01 -1.373739e-01 -1.047824e-04
-1.827910e-01 7.357524e-04 1.317324e-02 -1.107781e-01 -1.377879e-01 -1.519212e-04
-1.824242e-01 7.034536e-04 -7.208383e-02 -3.558470e-02 -1.382580e-01 -2.106029e-04
-1.820891e-01 6.742967e-04 -5.749353e-02 8.205793e-02 -1.387896e-01 -2.694039e-04
-1.817806e-01 6.505607e-04 9.251659e-02 1.779746e-01 -1.393777e-01 -3.211734e-04
-1.814929e-01 6.364543e-04 2.987545e-01 1.962487e-01 -1.400134e-01 -3.645512e-04
-1.812125e-01 6.433224e-04 4.850574e-01 1.614074e-01 -1.406886e-01 -4.011495e-04
-1.809109e-01 6.765473e-04 6.213817e-01 1.112171e-01 -1.413980e-01 -4.332129e-04
-1.805639e-01 7.238388e-04 7.071351e-01 3.609733e-02 -1.421379e-01 -4.625831e-04
-1.801677e-01 7.678366e-04 6.931137e-01 -8.147278e-02 -1.429065e-01 -4.904453e-04
-1.797326e-01 7.997357e-04 5.437443e-01 -1.773181e-01 -1.437027e-01 -5.174854e-04
-1.792724e-01 8.144571e-04 3.382174e-01 -1.955220e-01 -1.445260e-01 -5.440612e-04
-1.788077e-01 8.026015e-04 1.526946e-01 -1.606119e-01 -1.453759e-01 -5.703069e-04
-1.783711e-01 1.745773e-03 1.721781e-02 -1.113390e-01 -1.462523e-01 -5.962301e-04
-1.760199e-01 3.459369e-02 -6.959132e-02 -6.906004e-02 -1.471547e-01 -6.217788e-04
-1.098867e-01 1.227106e-01 -1.204027e-01 -3.964834e-02 -1.480829e-01 -6.468935e-04
6.872002e-02 2.002752e-01 -1.483255e-01 -2.148642e-02 -1.490362e-01 -6.714850e-04
2.900410e-01 2.078741e-01 -1.627785e-01 -1.101757e-02 -1.500142e-01 -6.954268e-04
4.839181e-01 1.671774e-01 -1.697457e-01 -5.320133e-03 -1.510161e-01 -7.186074e-04
6.239092e-01 1.139473e-01 -1.727951e-01 -2.365996e-03 -1.520412e-01 -7.409004e-04
7.113720e-01 3.730445e-02 -1.738503e-01 -8.715940e-04 -1.530885e-01 -7.621945e-04
6.981061e-01 -8.104472e-02 -1.739096e-01 -4.525712e-05 -1.541569e-01 -7.823708e-04
5.488662e-01 -1.771990e-01 -1.733120e-01 4.051952e-04 -1.552453e-01 -8.014297e-04
3.432428e-01 -1.953607e-01 -1.724712e-01 5.353188e-04 -1.563527e-01 -8.239313e-04
1.576122e-01 -1.603170e-01 -1.716144e-01 5.440153e-04 -1.574869e-01 -8.582473e-04
2.201526e-02 -1.109500e-01 -1.707572e-01 5.352404e-04 -1.586636e-01 8.057253e-05
-6.492593e-02 -6.861458e-02 -1.699190e-01 5.133184e-04 -1.579211e-01 3.293668e-02
-1.158804e-01 -3.917345e-02 -1.691068e-01 4.896593e-04 -9.338510e-02 1.210502e-01
-1.439561e-01 -2.099863e-02 -1.683169e-01 4.714401e-04 8.363126e-02 1.985826e-01
-1.585702e-01 -1.052599e-02 -1.675420e-01 4.600289e-04 3.033605e-01 2.061333e-01
-1.657053e-01 -4.833423e-03 -1.667759e-01 4.538277e-04 4.956375e-01 1.653922e-01
-1.689366e-01 -1.897021e-03 -1.660144e-01 4.506188e-04 6.340239e-01 1.121360e-01
-1.702000e-01 -4.293702e-04 -1.652557e-01 4.486002e-04 7.198890e-01 3.548479e-02
-1.704964e-01 3.719958e-04 -1.644992e-01 4.466250e-04 7.050351e-01 -8.285419e-02
-1.701572e-01 8.057726e-04 -1.637453e-01 4.438733e-04 5.542115e-01 -1.789782e-01
-1.695859e-01 9.287550e-04 -1.629953e-01 4.353599e-04 3.470002e-01 -1.971060e-01
-1.690006e-01 9.422489e-04 -1.622594e-01 4.124954e-04 1.597709e-01 -1.620417e-01
-1.684021e-01 1.939195e-03 -1.615559e-01 3.756036e-04 2.255241e-02 -1.126778e-01
-1.658227e-01 3.485484e-02 -1.608947e-01 3.337908e-04 -6.604867e-02 -7.036438e-02
-9.939206e-02 1.230346e-01 -1.602757e-01 2.938665e-04 -1.187046e-01 -4.095012e-02
7.956866e-02 2.006473e-01 -1.596951e-01 2.580908e-04 -1.485153e-01 -2.279712e-02
3.012834e-01 2.082741e-01 -1.591483e-01 2.306909e-04 -1.648868e-01 -1.233791e-02
4.955704e-01 1.675796e-01 -1.586232e-01 2.230068e-04 -1.737910e-01 -6.650699e-03
6.359598e-01 1.143298e-01 -1.580925e-01 2.404495e-04 -1.787945e-01 -3.713036e-03
7.237933e-01 3.765726e-02 -1.575331e-01 2.707473e-04 -1.818270e-01 -2.238874e-03
7.108665e-01 -8.072304e-02 -1.569425e-01 2.965494e-04 -1.838844e-01 -1.426656e-03
5.619351e-01 -1.769135e-01 -1.563323e-01 3.093326e-04 -1.852939e-01 -1.000143e-03
3.565784e-01 -1.951106e-01 -1.557169e-01 3.044835e-04 -1.864993e-01 -8.824863e-04
1.711856e-01 -1.600960e-01 -1.551170e-01 2.823095e-04 -1.876744e-01 -8.505815e-04
3.579733e-02 -1.107591e-01 -1.545467e-01 1.229117e-03 -1.888169e-01 -8.162896e-04
-5.096614e-02 -6.845568e-02 -1.520540e-01 3.408631e-02 -1.899242e-01 -7.797081e-04
-1.017760e-01 -3.904890e-02 -8.577241e-02 1.222594e-01 -1.909943e-01 -7.409050e-04
-1.297426e-01 -2.091102e-02 9.298436e-02 1.999627e-01 -1.920248e-01 -6.999257e-04
-1.442858e-01 -1.047789e-02 3.144511e-01 2.077241e-01 -1.930137e-01 -6.568307e-04
-1.513909e-01 -4.823156e-03 5.084564e-01 1.671518e-01 -1.939588e-01 -6.116728e-04
-1.546271e-01 -1.916012e-03 6.485382e-01 1.139890e-01 -1.948580e-01 -5.645050e-04
-1.559189e-01 -4.713639e-04 7.360443e-01 3.736750e-02 -1.957094e-01 -5.153951e-04
-1.562662e-01 3.034044e-04 7.227748e-01 -8.103655e-02 -1.965110e-01 -4.644405e-04
-1.560086e-01 7.009475e-04 5.734892e-01 -1.773471e-01 -1.972610e-01 -4.117239e-04
-1.555607e-01 7.773021e-04 3.677835e-01 -1.957045e-01 -1.979578e-01 -3.573280e-04
-1.551502e-01 7.318011e-04 1.820381e-01 -1.608373e-01 -1.985995e-01 -3.013575e-04
-1.547932e-01 6.688001e-04 4.629672e-02 -1.116055e-01 -1.991848e-01 7.405799e-04
-1.545087e-01 5.927799e-04 -4.081682e-02 -6.936551e-02 -1.977431e-01 3.370338e-02
-1.543036e-01 5.149845e-04 -9.197039e-02 -3.999068e-02 -1.324017e-01 1.219202e-01
-1.541746e-01 4.423947e-04 -1.202709e-01 -2.186344e-02 4.552096e-02 1.995502e-01
-1.541146e-01 3.764398e-04 -1.351349e-01 -1.142709e-02 2.662514e-01 2.071884e-01
-1.541175e-01 3.195849e-04 -1.425443e-01 -5.764178e-03 4.596105e-01 1.665133e-01
-1.541712e-01 2.761941e-04 -1.460734e-01 -2.853537e-03 5.991309e-01 1.132962e-01
-1.542609e-01 2.420925e-04 -1.476571e-01 -1.409172e-03 6.861570e-01 3.666927e-02
-1.543829e-01 2.066180e-04 -1.482955e-01 -6.293280e-04 6.724867e-01 -8.164296e-02
-1.545435e-01 1.633565e-04 -1.483187e-01 -2.154552e-04 5.228783e-01 -1.777293e-01
-1.547521e-01 1.113036e-04 -1.481293e-01 -1.109776e-04 3.169269e-01 -1.958080e-01
-1.550169e-01 4.852377e-05 -1.479439e-01 -1.146849e-04 1.310118e-01 -1.606827e-01
-1.553511e-01 -2.864669e-05 -1.477621e-01 -1.180592e-04 -4.823822e-03 -1.102582e-01
-1.557704e-01 -1.156603e-04 -1.475836e-01 -1.211747e-04 -8.998837e-02 -3.495500e-02
-1.562788e-01 -2.017802e-04 -1.474082e-01 -1.241283e-04 -7.527937e-02 8.269928e-02
-1.568705e-01 -2.804432e-04 -1.472359e-01 -1.269943e-04 7.487530e-02 1.784942e-01
-1.575364e-01 -3.504291e-04 -1.470665e-01 -1.298771e-04 2.812831e-01 1.965908e-01
-1.582683e-01 -4.131399e-04 -1.469001e-01 -1.328958e-04 4.677806e-01 1.615945e-01
-1.590598e-01 -4.704913e-04 -1.467370e-01 -1.361550e-04 6.043309e-01 1.113068e-01
-1.599067e-01 -5.239445e-04 -1.465773e-01 -1.397740e-04 6.903521e-01 3.614543e-02
-1.608054e-01 -5.743493e-04 -1.464216e-01 -1.438647e-04 6.766420e-01 -8.137121e-02
-1.617533e-01 -6.221085e-04 -1.462703e-01 -1.485692e-04 5.276200e-01 -1.770382e-01
-1.627479e-01 -6.672971e-04 -1.461242e-01 -1.540219e-04 3.224679e-01 -1.950172e-01
-1.637866e-01 -7.098037e-04 -1.459840e-01 -1.603501e-04 1.373392e-01 -1.599117e-01
-1.648665e-01 -7.494053e-04 -1.458507e-01 8.167942e-04 2.263718e-03 -1.105054e-01
-1.659847e-01 -7.858564e-04 -1.437564e-01 3.371421e-02 -8.415034e-02 -6.814942e-02
-1.671379e-01 -8.188820e-04 -7.783089e-02 1.219258e-01 -1.345765e-01 -3.869547e-02
-1.683225e-01 -8.481846e-04 1.006049e-01 1.996584e-01 -1.621192e-01 -2.050809e-02
-1.695347e-01 -8.734743e-04 3.217747e-01 2.074388e-01 -1.761905e-01 -1.002096e-02
-1.707703e-01 -8.944611e-04 5.154971e-01 1.668790e-01 -1.827691e-01 -4.312536e-03
-1.720249e-01 -9.108479e-04 6.553076e-01 1.137286e-01 -1.854284e-01 -1.360241e-03
-1.732937e-01 -9.223521e-04 7.425559e-01 3.711824e-02 -1.861044e-01 1.221857e-04
-1.745717e-01 -9.287214e-04 7.290376e-01 -8.128170e-02 -1.857993e-01 9.364459e-04
-1.758536e-01 -9.296959e-04 5.795027e-01 -1.775984e-01 -1.848465e-01 1.380803e-03
-1.771340e-01 -9.250156e-04 3.735363e-01 -1.959720e-01 -1.836520e-01 1.511888e-03
-1.784070e-01 -9.144282e-04 1.875094e-01 -1.611312e-01 -1.824362e-01 1.530983e-03
-1.796666e-01 8.678624e-05 5.145484e-02 -1.119369e-01 -1.812026e-01 1.546584e-03
-1.789376e-01 3.301424e-02 -3.601483e-02 -6.974189e-02 -1.799547e-01 1.558619e-03
-1.143421e-01 1.212137e-01 -8.757099e-02 -4.041306e-02 -1.786962e-01 1.567051e-03
6.280706e-02 1.988544e-01 -1.163191e-01 -2.233014e-02 -1.774305e-01 1.571882e-03
2.827420e-01 2.065176e-01 -1.316738e-01 -1.193695e-02 -1.761613e-01 1.573128e-03
4.752898e-01 1.658684e-01 -1.396166e-01 -6.316770e-03 -1.748923e-01 1.570813e-03
6.139895e-01 1.126731e-01 -1.437211e-01 -3.449438e-03 -1.736268e-01 1.564990e-03
7.001921e-01 3.606427e-02 -1.459241e-01 -2.052850e-03 -1.723685e-01 1.555712e-03
6.857024e-01 -8.224277e-02 -1.472327e-01 -1.329523e-03 -1.711207e-01 1.543033e-03
5.352862e-01 -1.783435e-01 -1.479874e-01 -9.821904e-04 -1.698868e-01 1.527044e-03
3.285457e-01 -1.964402e-01 -1.486004e-01 -9.533712e-04 -1.686701e-01 1.507850e-03
1.418683e-01 -1.613211e-01 -1.492967e-01 -1.040043e-03 -1.674737e-01 1.485541e-03
5.304839e-03 -1.108848e-01 -1.500822e-01 -1.130667e-03 -1.663008e-01 1.460246e-03
-8.054481e-02 -3.555152e-02 -1.509588e-01 -1.222010e-03 -1.651541e-01 1.432106e-03
-6.646986e-02 8.216112e-02 -1.519259e-01 -1.313260e-03 -1.640366e-01 1.401243e-03
8.311038e-02 1.780499e-01 -1.529838e-01 -1.406049e-03 -1.629509e-01 1.367844e-03
2.890120e-01 1.962601e-01 -1.541351e-01 -1.502562e-03 -1.618994e-01 1.332065e-03
4.750802e-01 1.613764e-01 -1.553846e-01 -1.604455e-03 -1.608844e-01 1.294086e-03
6.112753e-01 1.111831e-01 -1.567382e-01 -1.712664e-03 -1.599082e-01 1.254118e-03
6.970015e-01 3.609754e-02 -1.582024e-01 -1.827587e-03 -1.589725e-01 1.212346e-03
6.830537e-01 -8.135908e-02 -1.597840e-01 -1.949385e-03 -1.580790e-01 1.169010e-03
5.338621e-01 -1.769787e-01 -1.614899e-01 -2.078107e-03 -1.572294e-01 1.124333e-03
3.286260e-01 -1.949035e-01 -1.633269e-01 -2.213758e-03 -1.564247e-01 1.078541e-03
1.435177e-01 -1.597139e-01 -1.653018e-01 -2.356363e-03 -1.556660e-01 1.031894e-03
8.599956e-03 -1.101740e-01 -1.674215e-01 -2.505980e-03 -1.549541e-01 1.969149e-03
-7.747280e-02 -6.763712e-02 -1.696930e-01 -2.662650e-03 -1.523204e-01 3.482559e-02
-1.273449e-01 -3.797631e-02 -1.721232e-01 -2.826391e-03 -8.589364e-02 1.229348e-01
-1.541124e-01 -1.957412e-02 -1.747192e-01 -2.997269e-03 9.300655e-02 2.004562e-01
-1.671890e-01 -8.872102e-03 -1.774880e-01 -3.175339e-03 3.146060e-01 2.079852e-01
-1.725567e-01 -2.949619e-03 -1.804367e-01 -3.360628e-03 5.087248e-01 1.671918e-01
-1.737901e-01 2.178767e-04 -1.835724e-01 -3.553201e-03 6.488781e-01 1.138293e-01
-1.728232e-01 1.919043e-03 -1.869023e-01 -3.753099e-03 7.363736e-01 3.702749e-02
-1.706539e-01 2.957455e-03 -1.904337e-01 -3.960348e-03 7.229867e-01 -8.147173e-02
-1.676095e-01 3.632612e-03 -1.941738e-01 -4.174969e-03 5.734740e-01 -1.777404e-01
-1.640889e-01 4.001859e-03 -1.981298e-01 -4.396996e-03 3.674413e-01 -1.959885e-01
-1.603049e-01 4.266785e-03 -2.023090e-01 -4.626454e-03 1.812833e-01 -1.610040e-01
-1.562531e-01 4.535898e-03 -2.067187e-01 -3.878823e-03 4.508447e-02 -1.116494e-01
-1.519296e-01 4.809095e-03 -2.093972e-01 2.878282e-02 -4.246308e-02 -6.927909e-02
-1.473300e-01 5.086247e-03 -1.484804e-01 1.167525e-01 -9.398481e-02 -3.978437e-02
-1.424506e-01 5.367184e-03 2.470499e-02 1.942373e-01 -1.225803e-01 -2.156190e-02
-1.372876e-01 5.651031e-03 2.403770e-01 2.017639e-01 -1.376778e-01 -1.105764e-02
-1.318388e-01 5.915453e-03 4.283483e-01 1.609420e-01 -1.452757e-01 -5.348930e-03
-1.261452e-01 6.116069e-03 5.621436e-01 1.075170e-01 -1.489613e-01 -2.406954e-03
-1.202933e-01 6.248579e-03 6.430994e-01 3.062274e-02 -1.506779e-01 -9.389021e-04
-1.143328e-01 6.356972e-03 6.230058e-01 -8.806355e-02 -1.514287e-01 -1.380204e-04
-1.082621e-01 6.480129e-03 4.666139e-01 -1.846651e-01 -1.515440e-01 2.974930e-04
-1.020533e-01 6.634810e-03 2.535110e-01 -2.033217e-01 -1.514239e-01 4.266276e-04
-9.567123e-02 6.853813e-03 6.006974e-02 -1.687620e-01 -1.512809e-01 4.521536e-04
-8.902226e-02 6.986196e-03 -8.367397e-02 -1.440022e-01 -1.511096e-01 4.662550e-04
%% reality check on design matrices
% Denis Schluppeck, 2019-10-27
%
%
% Including a quick example of
%
% 1. how to load in txt files
% 2. look at design matrix
% 3. do some linear alebgra checks (as per question during class)
% 4. explanation of how the temporal derivative column allows for shifts in
% time
%% load in design matrix from FSL
%
% design.mat (chopped relevant data out renamed here to design_matrix.txt)
X = load('design_matrix.txt');
%% show as an image
figure
imagesc(X)
colormap(gray() )
colorbar()
xlabel('explanatory variables')
ylabel('Time (volumes)')
%% plot columns 1 and 2 (EV1 and its temporal derivative)
%
% each TR took 1.5s (can check with |fslinfo filtered_func.nii|
nVolumes = size(X,1); % number of rows in design matrix
t = 1.5 .* 0:(nVolumes-1); % time in seconds
figure
plot(t, X(:, [1,2])); % plot only columns 1 and 2
xlabel('Time (s)')
ylabel('Explanatory variable, value')
%% what happens when we mix together EV1 and EV2 in different proportions?
response1 = X*[1; 0; zeros(4,1)]; % MATRIX multiplication ... X*beta
response2 = X*[1; 2; zeros(4,1)]; % MATRIX multiplication ... X*beta
response3 = X*[1; 4; zeros(4,1)]; % MATRIX multiplication ... X*beta
response4 = X*[1; -2; zeros(4,1)]; % MATRIX multiplication ... X*beta
figure
p1 = plot(t, response1, 'k-', 'linewidth',2);
hold on
p2 = plot(t, response2, 'r-', 'linewidth',2);
p3 = plot(t, response3, 'b-', 'linewidth',2);
% p4 = plot(t, response4, 'm-', 'linewidth',2);
legend([p1;p2;p3], {'no shift', '2* EV2', '4* EV2'});
xlabel('Time (s)')
ylabel('Explanatory variable, value')
title('Effect of adding temporal derivative')
pbaspect([3,1,1])
%% linear alegbra check (answer to actual question :)
% Q: "Is the design matrix actually ok? It looks like each EV and their
% temporal derivatives are quite similar... doesn't that cause
% problems?"
% A: check rank of matrix...
% . In order for linear regression to work, X, the design matrix needs to
% be invertible... for this it needs to be full rank.
% see eg: https://en.wikipedia.org/wiki/Rank_(linear_algebra)
fprintf('the number of EVs in X is %i, the rank(X) is %i\n', size(X,2), rank(X))
if size(X,2) == rank(X)
disp('rank is ok... the world is a good place')
end
% can also check that EV1 and its temporal derivative are not similar...
% as that's what causes the actual problem
% rank of the first two columns, should be 2!
rank(X(:, [1,2]))
% you can also check what rref() returns
% Reduced row echelon form (Gauss-Jordan)... this underlies the
% determination of rank... and therefore how matlab determines if a matrix
% is invertible.
% https://www.youtube.com/watch?v=xCIXkm3-ocQ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment