This class is a wrapper for robustness calculation and visualization.
new()
robustness$new(
network_list,
remove_strategy = c("edge_rand", "edge_strong", "edge_weak", "node_rand", "node_hub",
"node_degree_high", "node_degree_low")[1],
remove_ratio = seq(0, 1, 0.1),
measure = c("Eff", "Eigen", "Pcr")[1],
run = 10,
delete_unlinked_nodes = FALSE
)
network_list
a list with multiple networks; all the networks should be trans_network
object
created from trans_network
class of microeco
package.
remove_strategy
default "edge_rand";
edges are randomly removed.
edges are removed in decreasing order of weight.
edges are removed in increasing order of weight.
nodes are removed randomly.
node hubs are randomly removed. The hubs include network hubs and module hubs.
nodes are removed in decreasing order of degree.
nodes are removed in increasing order of degree.
remove_ratio
default seq(0, 1, 0.1).
measure
default "Eff"; network robustness measures.
network efficiency. The average efficiency of the network is defined: $$Eff = \frac{1}{N(N - 1)} \sum_{i \neq j \in G}\frac{1}{d(i, j)}$$ where N is the total number of nodes and d(i,j) is the shortest path between node i and node j. When the weight is found in the edge attributes, \(d(i,j)\) denotes the weighted shortest path between node i and node j. For more details, please read the references <doi: 10.1007/s11704-016-6108-z> and <doi: 10.1038/s41598-020-60298-7>.
natural connectivity <doi: 10.1007/s11704-016-6108-z>. The natural connectivity can be regarded as an average eigenvalue that changes strictly monotonically with the addition or deletion of edges. It is defined: $$\bar{\lambda} = \ln(\frac{1}{N} \sum_{i=1}^{N} e^{\lambda~i~})$$ where \(\lambda~i~\) is the \(i\)th eigenvalue of the graph adjacency matrix. The larger the value of \(\bar{\lambda}\) is, the more robust the network is.
critical removal fraction of vertices (edges) for the disintegration of networks <doi: 10.1007/s11704-016-6108-z> <doi: 10.1103/PhysRevE.72.056130>. This is a robustness measure based on random graph theory. The critical fraction against random attacks is labeled as \(P_{c}^r\). It is defined: $$P_{c}^r = 1 - \frac{1}{\frac{\langle k^2 \rangle}{\langle k \rangle} - 1}$$ where \(\langle k \rangle\) is the average nodal degree of the original network, and \(\langle k^2 \rangle\) is the average of square of nodal degree.
run
default 10. Replication number of simulation for the sampling method; Only available when remove_strategy
= "edge_rand", "node_rand" or "node_hub".
delete_unlinked_nodes
default FALSE; whether delete the nodes without any link when removing edges.
res_table
and res_summary
, stored in the object. The res_table
is the original simulation result.
The Mean and SD in res_summary
come from the res_table
.
tmp <- robustness$new(soil_amp_network, remove_strategy = c("edge_rand"),
measure = c("Eff"), run = 3, remove_ratio = c(0.1, 0.5, 0.9))
plot()
Plot the simulation results.
robustness$plot(
color_values = RColorBrewer::brewer.pal(8, "Dark2"),
show_point = TRUE,
point_size = 1,
point_alpha = 0.6,
show_errorbar = TRUE,
errorbar_position = position_dodge(0),
errorbar_size = 1,
errorbar_width = 0.1,
add_fitting = FALSE,
...
)
color_values
colors used for presentation.
show_point
default TRUE; whether show the point.
point_size
default .3; point size value.
point_alpha
default .6; point alpha value.
show_errorbar
default TRUE; whether show the errorbar by using the SD result.
errorbar_position
default position_dodge(0); Position adjustment, either as a string (such as "identity"), or the result of a call to a position adjustment function.
errorbar_size
default 1; errorbar size.
errorbar_width
default 0.1; errorbar width.
add_fitting
default FALSE; whether add fitted smooth line. FALSE denotes add line segment among points.
...
parameters pass to ggplot2::geom_line (when add_fitting = FALSE) or ggplot2::geom_smooth (when add_fitting = TRUE).
ggplot
.
\donttest{
tmp$plot(linewidth = 1)
}
clone()
The objects of this class are cloneable with this method.
robustness$clone(deep = FALSE)
deep
Whether to make a deep clone.
## ------------------------------------------------
## Method `robustness$new`
## ------------------------------------------------
tmp <- robustness$new(soil_amp_network, remove_strategy = c("edge_rand"),
measure = c("Eff"), run = 3, remove_ratio = c(0.1, 0.5, 0.9))
## ------------------------------------------------
## Method `robustness$plot`
## ------------------------------------------------
# \donttest{
tmp$plot(linewidth = 1)
# }
Run the code above in your browser using DataLab