summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xR Scripts/analyze-cascades.R51
-rw-r--r--R Scripts/predict-victims.R6
-rwxr-xr-xR Scripts/structural.R2
3 files changed, 32 insertions, 27 deletions
diff --git a/R Scripts/analyze-cascades.R b/R Scripts/analyze-cascades.R
index e758d60..b1ce3c3 100755
--- a/R Scripts/analyze-cascades.R
+++ b/R Scripts/analyze-cascades.R
@@ -1,25 +1,40 @@
-# library(igraph)
-# setwd("~/Documents/Cascade Project/")
-#
-# load('Results/dag_dat_all.RData')
-# load('Results/weight-12-1-14.RData')
-# load('Results/hyper-lcc.RData')
+library(igraph)
+setwd("~/Documents/Violence Cascades/")
-# dag = graph.edgelist(as.matrix(dag_dat[,1:2]))
-# dag = set.edge.attribute(dag,'weight',value=weight)
-# dag_dat = dag_dat[which(E(dag)$weight>=0.4),]
-# dag = delete.edges(dag, which(E(dag)$weight<0.4))
+# plot cascade sizes
+data = read.csv('Results/components_dist-91515.csv',header=F)
+data = data[order(data$V1),]
+sizes = data$V1
+counts = data$V2
+plot(sizes,counts,log='xy',type='o',lwd=3,
+ xlab='Size of Cascade', ylab='Number of Cascades', main='Distribution of Cascade Sizes')
+
+# plot cascades
+edges = read.csv('Results/edges-91515.csv',header=F,
+ col.names=c('v1','t1','v2','t2','dist'))
+for(id in unique(union(edges$v1,edges$v2))){
+ e = edges[union(match(id,edges$v1), match(id,edges$v2)),]
+ times = sort(union(e$t1[e$v1==id],e$t2[e$v2==id]))
+ if (length(times)>1){
+ for(time in times[-1]){
+ idx = which(time==times)
+ edges$v1[as.numeric(rownames(e))[e$t1==time]] = e$v1[e$t1==time] + (idx-1)/length(times)
+ edges$v2[as.numeric(rownames(e))[e$t2==time]] = e$v2[e$t2==time] + (idx-1)/length(times)
+ }
+ }
+}
+dag = graph.data.frame(edges[,c(1,3)], directed=TRUE)
table(clusters(dag)$csize)
+
+
+
clusters = clusters(dag)
membership = clusters$membership
csize = clusters$csize
order = rev(order(csize))
-#use table not hist
-plot(sizes,counts,log='xy',type='o',lwd=3,
- xlab='Size of Cascade', ylab='Number of Cascades', main='Distribution of Cascade Sizes')
i = 4
V = which(clusters(dag)$membership==order[i]) # get all nodes in cluster
@@ -46,14 +61,4 @@ indeg = degree(cc,mode='in')
outdeg = degree(cc,mode='out')
ds = mean(cc_dat$dist)
-### node demographic statistics
-from = vic_ids[cc_dat$from]
-to = vic_ids[cc_dat$to]
-V(lcc)$sex[from] == V(lcc)$sex[to]
-V(lcc)$sex[Vi]
-V(lcc)$race[Vi]
-as.numeric(V(lcc)$age[Vi])
-V(lcc)$gang.member[Vi]
-V(lcc)$gang.name[Vi]
-V(lcc)$faction.name[Vi]
diff --git a/R Scripts/predict-victims.R b/R Scripts/predict-victims.R
index ccf894a..7caaf13 100644
--- a/R Scripts/predict-victims.R
+++ b/R Scripts/predict-victims.R
@@ -2,7 +2,7 @@ library(igraph)
library(data.table)
library(foreach)
library(doMC)
-registerDoMC(cores=4)
+registerDoMC(cores=6)
setwd('~/Documents/Violence Cascades/')
load('Raw Data/lcc.RData')
load('Raw Data/dag_dat_lcc.RData')
@@ -14,8 +14,8 @@ source('criminal_cascades/R Scripts/structural.R')
nArrests = function(arrests,day){return(sum(arrests<day))}
##### Set parameters
-alpha = 0.00317
-beta = 0.0039
+alpha = 0.00781529533133
+beta = 0.00373882477787
start_date = as.Date("2005-12-31")
edges_all = data.table(dag_dat_lcc)
diff --git a/R Scripts/structural.R b/R Scripts/structural.R
index 94c85b4..0846662 100755
--- a/R Scripts/structural.R
+++ b/R Scripts/structural.R
@@ -3,5 +3,5 @@
# }
structural = function(alpha,dist){
- return (alpha/dist)
+ return (alpha * (dist^(-2)))
} \ No newline at end of file