# domagal9/backbone

Extracts the Backbone from Weighted Graphs
R
Latest commit b434751 Dec 2, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information. R Dec 2, 2019 data-raw Oct 2, 2019 data Oct 2, 2019 man Nov 18, 2019 vignettes Dec 1, 2019 .Rbuildignore Oct 2, 2019 .Rhistory Oct 17, 2019 .gitignore Oct 17, 2019 DESCRIPTION NAMESPACE Oct 2, 2019 NEWS.md Dec 1, 2019 README.Rmd Oct 2, 2019 README.md Oct 2, 2019 backbone.Rproj

# backbone

The `backbone` package provides methods for extracting from a weighted graph a binary or signed backbone that retains only the significant edges. The user may input a weighted graph, or a bipartite graph from which a weighted graph is first constructed via projection. Backbone extraction methods include the stochastic degree sequence model (Neal, Z. P. (2014)), hypergeometric model (Neal, Z. (2013)), the fixed degree sequence model (Zweig, K. A., and Kaufmann, M. (2011)), as well as a universal threshold method.

In a graph `G`, edges are either present (i.e. `G_{ij}=1`) or absent (i.e. `G_{ij}=0`). However in a weighted or valued graph, edges can take a range of values that may capture such properties as the strength or capacity of the edge. Although weighted graphs contain a large amount of information, there are some cases (e.g. visualization, application of statistical models not developed for weighted graphs) where it is useful to reduce this information by focusing on an unweighted subgraph that contains only the most important edges. We call this subgraph the backbone of `G`, which we denote as `G’`. Extracting `G’` from `G` requires deciding which edges to preserve. This usually involves selecting a threshold `T_{ij}` such that edges are preserved if they are above the threshold (i.e. `G_{ij}’=1` if `G_{ij} > T_{ij}`), and omitted if they are below the threshold (i.e. `G_{ij}’=0` if `G_{ij} < T_{ij}`). It is also possible to extract a signed backbone by selecting upper `T_{ij}` and lower `T’_{ij}` thresholds such that `G_{ij}’=1` if `G_{ij}>T_{ij}`, `G_{ij}’=-1` if `G_{ij} < T’_{ij}`, and `G_{ij}’=0` if `G_{ij} > T’_{ij}` and `G_{ij} < T_{ij}`. The key to all backbone extraction methods lies in the selection of `T`. The `backbone` package provides several different methods for selecting `T` and thus extracting `G’` from `G`.

## Installation

You can install the released version of backbone from CRAN with:

`install.packages("backbone")`

You can install from GitHub with:

```library(devtools)
install_github("domagal9/backbone", build_vignettes = TRUE)```

## Example

This is a basic example which shows you how to solve a common problem:

```library(backbone)
data(davis)
sdsm_props <- sdsm(davis, trials = 100, dyad = c("EVELYN", "CHARLOTTE"))
#> Finding the Backbone using logit SDSM
#> Estimated time to complete is 1.2 secs
sdsm_bb <- backbone.extract(sdsm_props\$positive, sdsm_props\$negative, alpha = 0.05)```

For more detailed examples and background on the topic, see `vignette("backbone_introduction", package = "backbone")`.

You can’t perform that action at this time.