library(igraph) library(data.table) library(foreach) library(doMC) registerDoMC(cores=4) setwd('~/Documents/Violence Cascades/') load('Raw Data/lcc.RData') load('Results/hyper-lcc.RData') load('Results/dag_dat_all.RData') source('criminal_cascades/R Scripts/temporal.R') source('criminal_cascades/R Scripts/structural.R') ##### Initialize data formula = vic ~ sex + race + age + gang.member + gang.name lcc_verts$sex = as.factor(lcc_verts$sex) lcc_verts$race = as.factor(lcc_verts$race) lcc_verts$age = as.numeric(lcc_verts$age) lcc_verts$gang.name = as.factor(lcc_verts$gang.name) dt = data.table(ir=lcc_verts$ir_no, dem=0, cas=0, comb=0) alpha = 0.0028 delta = 0.06 days = sort(unique(hyp_lcc_verts$vic.day)) # 70:max(hyp_lcc_verts$vic.day, na.rm=T) days = split(days, ceiling(seq_along(days)/456)) lambdas = c(0, exp(seq(log(0.0000001), log(.95), length.out=50)), 1) nvics = sum(hyp_lcc_verts$vic) edges_all = data.table(dag_dat_all) ##### Loop through days correct_rank = c() for(i in 1:length(days)){ ptm = proc.time() print(c(i,length(days))) ds = unlist(days[i], use.names=F) cr = foreach (day = ds, .combine=rbind) %dopar% { ##### Demographics model vics = match(unique(hyp_lcc_verts$ir_no[which(hyp_lcc_verts$vic.day0) risk = risk[, list(weight=sum(weight)), by=ir] # max or sum ##### Combined Model combined = dt combined$dem[match(attr(probs,'name'), dt$ir)] = as.numeric(probs) combined$cas[match(risk$ir, dt$ir)] = risk$weight ##### Gather results infected_irs = hyp_lcc_verts$ir_no[which(hyp_lcc_verts$vic.day==day)] crday = matrix(nrow=length(infected_irs), ncol=length(lambdas)) for (lambda in lambdas){ combined$comb = lambda*combined$dem + (1-lambda)*combined$cas c_idx = which(lambdas==lambda) crday[,c_idx] = rank(-combined$comb,ties.method='average')[match(infected_irs,combined$ir)] } return(crday) } correct_rank = rbind(correct_rank,cr) print(proc.time()-ptm) } # save(correct_rank, file='Results/correct_rank_62815.RData')