# 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.18 delta = 0.09 ##### 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,rand_rank=0) vics = setdiff(vic_ids,seeds) print(length(vics)) for (u in vics){ if(which(vics==u) %% 500 == 0) print(which(vics==u)) 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) randID = sample(1:Nparents,1) parents[which(vics==u),] = c(u, Nparents, infectorID, randID) } ##### Get some summary statistics on how well mean(parents$par_rank==1) median(parents$par_rank[parents$Npars>9]) median(parents$par_rank[parents$Npars>99]) edges[edges$to==2847,] ## baseline alg # for each vic, find potential parents, pick one at random