Hi Jonatan,
Thanks for the references. I will refer to them as Refs. 1-4.
In Ref. 1, they report the "mean relative size of remaining largest component"
and "mean relative global efficiency". It looks like they take the difference in
the AUC, for each permutation, of the targeted attack curves. However, they both
show asterisks at specific values of vertex removal (Figure 2), and in their
table they report a % for the relative component size which should be 0 after
removing all vertices. So their methods are incomplete and I am not sure how
they calculated this.
In Ref 2., they don't mention how many random graphs they generate for each
group and density. They also don't mention it for the permutation analyses. So I
cannot comment more; they would have had to create N random graphs for each of
the 1,000 permutations (each group and density/threshold, as well) and then
calculate normalized coefficients and group differences. As I mentioned before,
this would be extremely computationally intensive.
In Ref 3., it looks like they do permutation analysis on a single density. This
makes the method a little more understandable, but the actual result doesn't
make much sense to me. For example, if you found a significant between group
difference after removing ~25% of vertices, then what does that mean, really? It
is hard to interpret and it is limited to a single density which in itself is
not very informative, in my opinion. Either way, doing this type of analysis
would require writing your own function.
The methods in Ref. 4 looks to be about the same as those of Ref. 3 and the same
comments/caveats apply. However, they are again not entirely clear in the
methods.
To comment on the use of "fully connected graphs" (at least in Ref. 1), they are
actually using it incorrectly. A fully connected graph is one in which *all*
vertices are connected to *all* others, so the definition you mention is correct
and a fully connected graph with 68 vertices would indeed have 2,278 edges. What
they really mean is that there are no isolate vertices; i.e., all vertices have
at least 1 connection. I don't have a function to search for this, although I
have really thought about adding one since it shouldn't be too hard. This is
sometimes called a "percolation analysis", in which you search for the lowest
density/threshold that results in a graph with 1 large, connected component. If
you are unable to write the code for it, I can help you with that but you would
essentially try a large range of thresholds, calculate the largest connected
component, and return the value that results in e.g. 68. So for Ref. 1, that
value must have been 0.3. Here's a function that is untested but might work:
# "R" is the raw correlation matrix for 1 group
max_comp_size <- function(R, threshes) {
Nv <- nrow(R)
max.comp <- rep(0, threshes)
for (i in seq_along(threshes)) {
r <- matrix(0, Nv, Nv)
r <- ifelse(R > threshes[i], 1, 0)
g <- graph_from_adjacency_matrix(r, mode='undirected', diag=F, weighted=NULL)
max.comp[i] <- max(components(g)$csize)
}
return(data.table(thresholds=threshes, csize=max.comp))
}
Then in your example, you would search for where "csize" changes from 68 to 67;
then you can re-run the function with more thresholds closer to that value.
Chris
> date: Sun, Feb 02 09:58 PM -08:00 2020
> subject: Re: [brainGraph-help] More questions about permutation testing
>> <javascript:>> wrote:
>>
>> > from: Jonatan Ottino <
jonata...@gmail.com <javascript:>>
>> > date: Thu, Jan 30 01:36 PM -08:00 2020
>> > to: brainGraph-help <
brainGr...@googlegroups.com <javascript:>>
>> > reply-to:
brainGr...@googlegroups.com <javascript:>
>> an email to
brainGr...@googlegroups.com <javascript:>.
> --
> You received this message because you are subscribed to the Google Groups "brainGraph-help" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
brainGraph-he...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/brainGraph-help/25c8eb06-3040-4caa-8a94-4463ae32db53%40googlegroups.com.