stCEG README

stCEG

The goal of stCEG is to facilitate the creation of Chain Event Graphs over spatial areas. It allows users to fully customise both the structure and underlying model of the Chain Event Graph, offering a high degree of flexibility for tailored analyses.

Installation

You can install the stable version of stCEG from CRAN with:

install.packages("stCEG")

Or the development version from GitHub with:

remotes::install_github("holliecalley/stCEG")
## Using github PAT from envvar GITHUB_PAT. Use `gitcreds::gitcreds_set()` and unset GITHUB_PAT in .Renviron (or elsewhere) if you want to use the more secure git credential store instead.

## Skipping install of 'stCEG' from a github remote, the SHA1 (f79d14af) has not changed since last install.
##   Use `force = TRUE` to force installation

Usage

With the stCEG package, it is simple for a user to create an event tree from a given dataset, colour it to turn it into a staged tree, specify priors over this, and then convert this into a Chain Event Graph (CEG). The package also allows for model comparison and the creation of maps based on spatial CEGs, as well as a Shiny user-interface.

library(stCEG)
data <- homicides
event_tree <- create_event_tree(data, columns = c(1,2,4,5), "both")
event_tree$eventtree
## file:////private/var/folders/8q/_ftph8z911d1mg099mv8rt6h0000gn/T/RtmpJkb7Tq/filef92d77fde3b2/widgetf92d3d6ff8a9.html screenshot completed

coloured_tree <- ahc_colouring(event_tree)
coloured_tree$stagedtree
## file:////private/var/folders/8q/_ftph8z911d1mg099mv8rt6h0000gn/T/RtmpJkb7Tq/filef92d1b1c0f8e/widgetf92d4f414189.html screenshot completed

tree_priors <- specify_priors(coloured_tree, prior_type = "Uniform", ask_edit = FALSE)
## 
## Stage Colour Key:
##         #FFFFFF 
##         #A54BE3 
##         #CFB8D1 
##         #D2D9B9 
##         #84DF9D 
##         #9DE956 
##         #DA74C8 
##         #DCCD64 
##         #7CD1D3 
##         #8287D4 
## Calculated priors:
## # A tibble: 10 × 6
##    color   level2 outgoing_edges2 number_nodes prior   stage
##    <chr>    <int>           <int>        <dbl> <chr>   <chr>
##  1 #FFFFFF      1               4            1 1,1,1,1 u1   
##  2 #A54BE3      2               2            1 1,1     u2   
##  3 #CFB8D1      2               2            1 1,1     u3   
##  4 #D2D9B9      2               2            2 2,2     u4   
##  5 #84DF9D      3               2            3 3,3     u5   
##  6 #9DE956      3               2            1 1,1     u6   
##  7 #DA74C8      3               2            2 2,2     u7   
##  8 #DCCD64      3               2            2 2,2     u8   
##  9 #7CD1D3      4               2            7 7,7     u9   
## 10 #8287D4      4               2            9 9,9     u10  
## # A tibble: 10 × 7
##    Stage Colour  Level `Outgoing Edges` Nodes Prior   `Prior Mean`       
##    <chr> <chr>   <int>            <int> <dbl> <chr>   <chr>              
##  1 u1    #FFFFFF     1                4     1 1,1,1,1 0.25,0.25,0.25,0.25
##  2 u2    #A54BE3     2                2     1 1,1     0.5,0.5            
##  3 u3    #CFB8D1     2                2     1 1,1     0.5,0.5            
##  4 u4    #D2D9B9     2                2     2 2,2     0.5,0.5            
##  5 u5    #84DF9D     3                2     3 3,3     0.5,0.5            
##  6 u6    #9DE956     3                2     1 1,1     0.5,0.5            
##  7 u7    #DA74C8     3                2     2 2,2     0.5,0.5            
##  8 u8    #DCCD64     3                2     2 2,2     0.5,0.5            
##  9 u9    #7CD1D3     4                2     7 7,7     0.5,0.5            
## 10 u10   #8287D4     4                2     9 9,9     0.5,0.5
staged_tree <- staged_tree_prior(coloured_tree, tree_priors)
staged_tree$stagedtree
## file:////private/var/folders/8q/_ftph8z911d1mg099mv8rt6h0000gn/T/RtmpJkb7Tq/filef92d135a61e4/widgetf92d12d0c9a9.html screenshot completed

ceg <- create_ceg(staged_tree, view_table = FALSE)
## # A tibble: 13 × 8
##    contract_id                         ids   label level color id    font   size
##    <chr>                               <chr> <chr> <int> <chr> <chr> <chr> <dbl>
##  1 1-#FFFFFF                           s0    w0        1 #FFF… w0    80px    100
##  2 2-#CFB8D1-3-#84DF9D-4-#7CD1D3-5-#F… s1    w1        2 #CFB… w1    80px    100
##  3 2-#A54BE3-3-#9DE956-4-#7CD1D3-5-#F… s2    w2        2 #A54… w2    80px    100
##  4 2-#D2D9B9-3-#DA74C8-4-#7CD1D3-5-#F… s3    w3        2 #D2D… w3    80px    100
##  5 2-#D2D9B9-3-#84DF9D-4-#7CD1D3-5-#F… s4    w4        2 #D2D… w4    80px    100
##  6 3-#84DF9D-4-#7CD1D3-5-#FFFFFF-5-#F… s5    w5        3 #84D… w5    80px    100
##  7 3-#DCCD64-4-#8287D4-5-#FFFFFF-5-#F… s6, … w6        3 #DCC… w6    80px    100
##  8 3-#9DE956-4-#7CD1D3-5-#FFFFFF-5-#F… s7    w7        3 #9DE… w7    80px    100
##  9 3-#DA74C8-4-#7CD1D3-5-#FFFFFF-5-#F… s8, … w8        3 #DA7… w8    80px    100
## 10 3-#84DF9D-4-#7CD1D3-5-#FFFFFF-5-#F… s11,… w9        3 #84D… w9    80px    100
## 11 4-#7CD1D3-5-#FFFFFF-5-#FFFFFF       s13,… w10       4 #7CD… w10   80px    100
## 12 4-#8287D4-5-#FFFFFF-5-#FFFFFF       s15,… w11       4 #828… w11   80px    100
## 13 5-#FFFFFF                           s29,… w∞        5 #FFF… w∞    80px    100
## # A tibble: 26 × 21
##    from  to    label1    colour_from sumlabel2 sumlabel3 total label_individuals
##    <chr> <chr> <chr>     <chr>           <dbl>     <dbl> <dbl> <chr>            
##  1 w0    w1    Adolesce… #FFFFFF           816         1   817 "Adolescent/Youn…
##  2 w0    w2    Adult     #FFFFFF          1522         1  1523 "Adult \n 1523"  
##  3 w0    w3    Child     #FFFFFF           133         1   134 "Child \n 134"   
##  4 w0    w4    Elderly   #FFFFFF           199         1   200 "Elderly \n 200" 
##  5 w1    w5    Female    #CFB8D1           103         1   104 "Female \n 104"  
##  6 w1    w6    Male      #CFB8D1           713         1   714 "Male \n 714"    
##  7 w10   w∞    Solved    #7CD1D3           501         7   508 "Solved \n 508"  
##  8 w10   w∞    Unsolved  #7CD1D3            23         7    30 "Unsolved \n 30" 
##  9 w11   w∞    Solved    #8287D4          1861         9  1870 "Solved \n 1870" 
## 10 w11   w∞    Unsolved  #8287D4           285         9   294 "Unsolved \n 294"
## # ℹ 16 more rows
## # ℹ 13 more variables: font.size <dbl>, stage_total_posterior <dbl>,
## #   posterior_total <dbl>, stage_total_prior <dbl>, prior_total <dbl>,
## #   prior_mean <dbl>, posterior_mean <dbl>, label_posterior <chr>,
## #   label_prior_mean <chr>, label_prior <chr>, color <chr>, smooth <list>,
## #   level <int>
## # A tibble: 13 × 9
##    contract_id            ids   label level color id    font   size fixed       
##    <chr>                  <chr> <chr> <int> <chr> <chr> <chr> <dbl> <list>      
##  1 1-#FFFFFF              s0    w0        1 #FFF… w0    80px    100 <named list>
##  2 2-#CFB8D1-3-#84DF9D-4… s1    w1        2 #CFB… w1    80px    100 <named list>
##  3 2-#A54BE3-3-#9DE956-4… s2    w2        2 #A54… w2    80px    100 <named list>
##  4 2-#D2D9B9-3-#DA74C8-4… s3    w3        2 #D2D… w3    80px    100 <named list>
##  5 2-#D2D9B9-3-#84DF9D-4… s4    w4        2 #D2D… w4    80px    100 <named list>
##  6 3-#84DF9D-4-#7CD1D3-5… s5    w5        3 #84D… w5    80px    100 <named list>
##  7 3-#DCCD64-4-#8287D4-5… s6, … w6        3 #DCC… w6    80px    100 <named list>
##  8 3-#9DE956-4-#7CD1D3-5… s7    w7        3 #9DE… w7    80px    100 <named list>
##  9 3-#DA74C8-4-#7CD1D3-5… s8, … w8        3 #DA7… w8    80px    100 <named list>
## 10 3-#84DF9D-4-#7CD1D3-5… s11,… w9        3 #84D… w9    80px    100 <named list>
## 11 4-#7CD1D3-5-#FFFFFF-5… s13,… w10       4 #7CD… w10   80px    100 <named list>
## 12 4-#8287D4-5-#FFFFFF-5… s15,… w11       4 #828… w11   80px    100 <named list>
## 13 5-#FFFFFF              s29,… w∞        5 #FFF… w∞    80px    100 <named list>
## # A tibble: 26 × 22
##    from  to    label1    colour_from sumlabel2 sumlabel3 total label_individuals
##    <chr> <chr> <chr>     <chr>           <dbl>     <dbl> <dbl> <chr>            
##  1 w0    w1    Adolesce… #FFFFFF           816         1   817 "Adolescent/Youn…
##  2 w0    w2    Adult     #FFFFFF          1522         1  1523 "Adult \n 1523"  
##  3 w0    w3    Child     #FFFFFF           133         1   134 "Child \n 134"   
##  4 w0    w4    Elderly   #FFFFFF           199         1   200 "Elderly \n 200" 
##  5 w1    w5    Female    #CFB8D1           103         1   104 "Female \n 104"  
##  6 w1    w6    Male      #CFB8D1           713         1   714 "Male \n 714"    
##  7 w10   w∞    Solved    #7CD1D3           501         7   508 "Solved \n 508"  
##  8 w10   w∞    Unsolved  #7CD1D3            23         7    30 "Unsolved \n 30" 
##  9 w11   w∞    Solved    #8287D4          1861         9  1870 "Solved \n 1870" 
## 10 w11   w∞    Unsolved  #8287D4           285         9   294 "Unsolved \n 294"
## # ℹ 16 more rows
## # ℹ 14 more variables: font.size <dbl>, stage_total_posterior <dbl>,
## #   posterior_total <dbl>, stage_total_prior <dbl>, prior_total <dbl>,
## #   prior_mean <dbl>, posterior_mean <dbl>, label_posterior <chr>,
## #   label_prior_mean <chr>, label_prior <chr>, color <chr>, smooth <list>,
## #   level <int>, label <chr>
ceg$ceg
## file:////private/var/folders/8q/_ftph8z911d1mg099mv8rt6h0000gn/T/RtmpJkb7Tq/filef92d558d70da/widgetf92d38ec2417.html screenshot completed