J.3 Small World Index and Degree Distribution

Select and run all the code below This will compute the Small World Index and compute the Power Law slope Fit of Small world networks and Scale-free networks

Compare the measures!

# Initialize
set.seed(660)
layout1=layout.kamada.kawai
k=3
n=50

# Setup plots
par(mfrow=c(2,3))
# Strogatz rewiring probability = .00001
p   <- 0.00001
p1  <- plotSW(n=n,k=k,p=p)
PLF1<- PLFsmall(p1)
p11 <- plot(p1,main="p = 0.00001",
            layout = layout1,
            xlab=paste("FON = ",round(mean(neighborhood.size(p1,order=1)), digits=1), "\nSWI = ", round(SWtestE(p1,N=100)$valuesAV$SWI,digits=2), "\nPLF = NA", sep=""))

# Strogatz rewiring probability = .01
p   <- 0.01
p2  <- plotSW(n=n,k=k,p=p)
PLF2<- PLFsmall(p2)
p22 <- plot(p2,main="p = 0.01",
            layout = layout1,
            xlab = paste("FON = ",round(mean(neighborhood.size(p2,order=1)),digits=1),"\nSWI = ", round(SWtestE(p2,N=100)$valuesAV$SWI, digits=2),"\nPLF = ",round(PLF2,digits=2),sep=""))

# Strogatz rewiring probability = 1
p   <- 1
p3  <- plotSW(n=n,k=k,p=p)
PLF3<- PLFsmall(p3)
p33 <- plot(p3,main="p = 1",
            layout = layout1, 
            xlab = paste("FON = ", round(mean(neighborhood.size(p3,order=1)), digits=1), "\nSWI = ", round(SWtestE(p3,N=100)$valuesAV$SWI, digits=2), "\nPLF = ", round(PLF3,digits=2), sep=""))

set.seed(200)
# Barabasi power = 0
p4  <- plotBA(n=n,pwr=0,out.dist=hist(degree(p1,mode="all"),breaks=(0:n),plot=FALSE)$density)
PLF4<- PLFsmall(p4)
p44 <- plot(p4,main="power = 0",layout = layout1, xlab = paste("FON = ", round(mean(neighborhood.size(p4, order=1)), digits=1),"\nSWI = ", round(SWtestE(p4, N=100)$valuesAV$SWI, digits=2), "\nPLF = ", round(PLF4, digits=2),sep=""))

# Barabasi power = 2
p5  <- plotBA(n=n,pwr=2,out.dist = hist(degree(p2,mode="all"),breaks=(0:n),plot=FALSE)$density)
PLF5<- PLFsmall(p5)
p55 <- plot(p5,main="power = 2", layout = layout1, xlab=paste("FON = ", round(mean(neighborhood.size(p5, order=1)), digits=1), "\nSWI = ", round(SWtestE(p5, N=100)$valuesAV$SWI, digits=2), "\nPLF = ", round(PLF5, digits=2), sep=""))

# Barabasi power = 4
p6  <- plotBA(n=n,pwr=4, out.dist = hist(degree(p3,mode="all"), breaks=(0:n),plot=FALSE)$density)
PLF6<- PLFsmall(p6)
p66 <- plot(p6,main="power = 4",layout = layout1, xlab = paste("FON = ", round(mean(neighborhood.size(p6, order=1)), digits=1), "\nSWI = ", round(SWtestE(p6,N=100)$valuesAV$SWI, digits = 2),"\nPLF = ",round(PLF6, digits=2), sep=""))


par(mfrow=c(1,1))

The PLF fit is unreliable, there are not enough nodes and different values for degree. the SWI does seem to follow the small-wordledness / scale-free topology quite closely.