summaryrefslogtreecommitdiffstats
path: root/R Scripts/find-parents.R
diff options
context:
space:
mode:
authorBen Green <ben@SEASITs-MacBook-Pro.local>2015-06-28 17:38:33 -0400
committerBen Green <ben@SEASITs-MacBook-Pro.local>2015-06-28 17:38:33 -0400
commit6e527bbf612465bf5d739b9652abc0165550993c (patch)
tree9525bed16d9e4568747855afd84a03937090f1cb /R Scripts/find-parents.R
parent7167a81cfb8b872dd1547e5a8669004b191417db (diff)
downloadcriminal_cascades-6e527bbf612465bf5d739b9652abc0165550993c.tar.gz
Worked on synthetic data recovery so we can tell how high the actual
infector is ranked among all potential parents. Cleaned up code for the predicting victims benchmarking test.
Diffstat (limited to 'R Scripts/find-parents.R')
-rw-r--r--R Scripts/find-parents.R40
1 files changed, 40 insertions, 0 deletions
diff --git a/R Scripts/find-parents.R b/R Scripts/find-parents.R
new file mode 100644
index 0000000..3ec8809
--- /dev/null
+++ b/R Scripts/find-parents.R
@@ -0,0 +1,40 @@
+# library(igraph)
+# setwd("~/Documents/Cascade Project/")
+# load('Results/hyper-lcc.RData')
+# load('Results/dag_dat_vics.RData')
+# source('criminal_cascades/R Scripts/temporal.R')
+# source('criminal_cascades/R Scripts/structural.R')
+
+##### Initialize parameters based on what ml2 found
+alpha = 0.061
+delta = 0.082
+
+##### Get weights
+edges = dag_dat_test[!is.na(dag_dat_test$t2),]
+
+dt = edges$t2 - edges$t1
+p_t = exp(-alpha*dt) * (exp(alpha)-1)
+p_s = structural(delta, edges$dist)
+p = p_s * p_t
+p_tilde = 1 - p_s + p_s * exp(-alpha*dt)
+weights = p/p_tilde
+edges$weight = weights
+
+##### Find most likely parents
+parents = data.frame(vic=0,Npars=0,par_rank=0)
+vics = setdiff(vic_ids,seeds)
+for (u in vics){
+ u_parents = edges[edges$to==u,]
+ u_parents = u_parents[order(u_parents$weight,decreasing=T),]
+ Nparents = dim(u_parents)[1]
+ infector = V(g)$infector[u]
+ infectorID = which(u_parents$from==infector)
+ parents[which(vics==u),] = c(u, Nparents, infectorID)
+}
+
+##### Get some summary statistics on how well
+median(parents$par_rank[parents$Npars>9])
+median(parents$par_rank[parents$Npars>99])
+
+
+