help > RE: Longitudinal analysis with missed values
Oct 7, 2019  07:10 AM | Emma Muñoz-Moreno - Experimental 7T MRI Unit, Hospital Clínic, Barcelona
RE: Longitudinal analysis with missed values
Hi, Andrew,

Now it's clear to me. I'll take into account your suggestion to simplify the design and avoid the use of exchange blocks.

Thanks very much!

Emma

Originally posted by Andrew Zalesky:
Hi Emma,

I now understand your concern regarding exchange blocks. Yes, your are right. You cannot have multiple missing time points if exchange blocks are used.

I do not think that it is a good idea to generate fake observations to fill in the time points for which data is missing.

I don't mean remove all the rows for the subject. I just mean that if a subject has missing data for one time point, only that time point is removed. (But this is not possible if you use exchange blocks.)

As I mentioned previously, I suggest to simplify your design to begin with: perhaps just consider the first and last time points. You might also want to test for a linear increase or decrease in connectivity as a function of time, in which case you would only include one regressor in which time point 1 would be represented as 1, time point 2 as a 2, etc. This will test for a linear increase/decrease with time.

Andr5ew



Originally posted by Emma Muñoz-Moreno:
Thanks Andrew,

Regarding the exchange blocks with different sizes: I'm using the matlab toolbox NBSv1.2, and it crashes in NBSglm.m line 75 -->

blk_ind=zeros(n_blks,sz_blk)

This is the code:

%Set up exchange blocks
blks=unique(GLM.exchange);
%Number of blocks
n_blks=length(blks);
%Number of observations per block
sz_blk=n/n_blks;
blk_ind=zeros(n_blks,sz_blk);
for i=1:length(blks)
     blk_ind(i,:)=find(blks(i)==GLM.exchange);
end

My GLM.exchange is [1 1 1 1 1 2 2 2 2 3 3 3 3 3 ... ]. In this case I undestand that it is not possible to estimate the number of observations per block as sz_blk=n/n_blks, since there is not a unique sz_blk (i.e. block 1 has 5 observations; block 2, 4 observations ...),  am I right? Am I doing something wrong?

About the NaN connectomes, I meant to include some "fake" observations, that is matrices with all elements set to NaN in the timepoints/subjects where I don't have real observations, so I could define a exchange vector with size N_subjects x 5. But if it is possible to use exchange blocks with different sizes, forget this.

When you say "subjects with missing values at a given time point would not be represented as a row in your design matrix", do you mean remove all the rows corresponding to the subject? (I haven't include rows for the missing observations in the design matrix)

Thanks again!
Emma
Hi Emma,

With 5 time points, testing the interaction between time and group will require a relatively large sample size. 

As a starting point, I suggest to simplify your design. Perhaps consider testing an interaction with respect to the first and last time point only.

It should be possible to use exchange blocks with different sizes.

I am not sure what you mean by NaN connectomes. Do you mean missing values for certain connections in certain subjects?

Subjects with missing values at a given time point would not be represented as a row in your design matrix. You would not include a NaN in the row, you would just not include a row at all.

Andrew




Originally posted by Emma Muñoz-Moreno:
Dear Andrew,

Thanks for the toolbox, it is very useful!

I had a doubt to perform a longitudinal analysis. I want to evaluate the effect of time and the interaction between time and group in a longitudinal study. I have 2 groups and 5 timepoints, but not all the subjects were evaluated at the 5 timepoints. Therefore, in the exchange blocks vector to take into account measures of the same subject, I have included blocks with different number of elements: i.e. [1 1 1 1 1 2 2 2 2 3 3 3 3 3 ...].... but it does not work.

When I try to run NBS with this exchange blocks vector I get an error, because of the differences in block size.

I was wondering if adding NaN connectomes in the missed timepoints, but I don't know how NBS manage NaN and if it would make sense...

Is it possible to perform this kind of analysis with missed values?  How?

Thanks in advance!!

Threaded View

TitleAuthorDate
Emma Muñoz-Moreno Oct 3, 2019
Andrew Zalesky Oct 3, 2019
Emma Muñoz-Moreno Oct 3, 2019
Andrew Zalesky Oct 5, 2019
RE: Longitudinal analysis with missed values
Emma Muñoz-Moreno Oct 7, 2019