##### Plot results library(RColorBrewer) library(igraph) setwd('~/Documents/Violence Cascades/') load('Raw Data/lcc.RData') load('Results/correct_rank_91415.RData') ####### nvics = dim(correct_rank)[1] correct_rank1 = correct_rank[,length(lambdas)] # demographics model correct_rank2 = correct_rank[,1] # cascade model lambda_opt = which.max(colMeans(correct_rank<1382)) correct_rank3 = correct_rank[,lambda_opt] # best combined model popsizes = c(0.1,0.5,1.0)/100 vcount(lcc)*popsizes counts = matrix(c( sum(correct_rank1<(vcount(lcc)*popsizes[1])), sum(correct_rank1<(vcount(lcc)*popsizes[2])), sum(correct_rank1<(vcount(lcc)*popsizes[3])), sum(correct_rank2<(vcount(lcc)*popsizes[1])), sum(correct_rank2<(vcount(lcc)*popsizes[2])), sum(correct_rank2<(vcount(lcc)*popsizes[3])), sum(correct_rank3<(vcount(lcc)*popsizes[1])), sum(correct_rank3<(vcount(lcc)*popsizes[2])), sum(correct_rank3<(vcount(lcc)*popsizes[3]))), nrow=3, byrow=T) cols = brewer.pal(3,'Dark2');# cols=cols[c(3,1,2)] barplot(counts, border=NA, xlab="Size of High-Risk Population", ylab="Victims Predicted", names.arg=paste(as.character(popsizes*100),'%',sep=''), ylim=c(0,max(counts)*1.1),axes=F, col=cols, beside=TRUE) axis(2, at=pretty(counts*100/nvics)*nvics/100, lab=paste0(pretty(counts*100/nvics), "%"), las=TRUE) legend("topleft", inset=0.05, c("Demographics Model", "Contagion Model", "Combined Model"), fill=cols,border=NA,bty='n') box(which='plot') par(new=T) axis(side=4, at=pretty(counts), lab=pretty(counts)) mtext(side = 4, line = 3, "Number of Victims Predicted") #### Precision-Recall Curve plot(ecdf(correct_rank1),col=cols[1],lwd=3,main='', xlab='Ranking',ylab='CDF',xlim=c(0,140000)) plot(ecdf(correct_rank2),col=cols[2],lwd=3,add=T) plot(ecdf(correct_rank3),col=cols[3],lwd=3,add=T) legend("bottomright", inset=0.05, c("Demographics Model", "Contagion Model", "Combined Model"), fill=cols,border=NA,bty='n')