I have a question about the average degree in an undirected graph compared to a random network. If I have a graph A, with 1250 nodes and 321581 edges with an average degree of 521.423. Then I have a random network with 1250 nodes and 321007 edges with an average degree of 509.94.
So i have:
Graph A Random network
N° nodes=1250 N° nodes=1250
N° edges=321581 N° edges=321007
Average degree=521.423 Average degree=509.94
Density=0.406 Density=0.406
I want to analyze if the structure of the network is entirely determined by the degrees of its nodes, so comparing the graph A with the random network, what can I say about the average degree?
I also built the random network with the erdos-renji model; I used as parameters:
I= nx.erdos_renyi_graph(1259,0.406)
where 1259=numbers of nodes of graph A and
0.406=density of graph A
it's right?does it make sense to use the same number of nodes of graph A as parameters in the model of erdos renji and the same density as probability?
this is my PDF Random network VS Real network:
Related
I am looking for a way to compute the estimated occurrence of a given motif/subgraph in a random network. For example, I am given a network motif M, which has three vertices and three edges: (A->B, B->C, C->A). What is the expected occurrence of M in a random network with n vertices and k edges?
I know methods that generate a random graph and then enumerate M. Since that is computationally expensive, I wondered if there are more straightforward methods to compute the estimated occurrences.
I am writing my MSc. thesis at the moment. I want to optimise a strategy on how to efficiently distribute a constrained budget B among some network nodes.
Let's say my network consists of 120 nodes and it is a directed network. Each edge has one feature/weight. Then my budget constraint is B <= number of nodes = 120.
Input for my Graph Convolutional Network is the specific fixed network topology as graph G and a budget distribution x.
My target is 1 scalar for a distribution x among 120 nodes, not a classification problem.
Is there a specific architecture that is relevant for this task - or do I only have to add 1 linear layer after convolution?
I have a weighted network in which nodes are highly interconnected (250 nodes where 90% of the nodes have degree = 249). The connections are weighted with a normalised index that goes from 0 to 1, where 1 means a strong connection and values close to 0 identify weak connections. The weight distribution of the network is right-skewed and follows a power law, with most edges having proximity close to 0.
I am using degree-preserving randomisation tests in order to compare the network-level characteristics to the distribution of the same characteristics extracted from the randomised graphs. I have implemented a degree-preserving randomisation of the following form:
#Obtain the degree distribution to be preserved in the randomised networks
gdegree <- degree(g)
#Generate 1000 random networks with the same degree distribution as g
g.random <- vector('list', 1000)
g.random.degree <- array(dim = c(1000,vcount(g)))
for(i in 1:1000){
g.random[[i]] <- sample_degseq(gdegree)
g.random.degree[i,] <- degree(g.random[[i]])
}
However, the randomised networks resulting from the code above are unweighted.
Is there a way to obtain weighted random networks using degree preserving randomisation? And secondly, is there a statistical test I can perform in order to select the "significant" connections (those that are observed consistently both in the empirical network and randomised networks)?
Is there a relation between edges and nodes? How could it be expressed in asymptotic notation?
I have a large, dense graph (~33,000 nodes, ~345 million edges, so the graph density is approximately 0.63). I'm interested in estimating the number of 3-edge paths in this graph. Is there an accurate estimation using only this information (ie no adjacency matrices)?
If a rough estimate is good enough (and the number k of edges in the paths is fix and small): let d be the density, then you have n starting nodes, about n * d possible second nodes, ... and about n * d^k end nodes. If k is small the number of paths with cycles are small opposed to the simple paths. The number of all paths would be about n^(k+1) * d^(k(k+1)/2) - so this would be a (quite) rough estimate.