社会を＜モデル＞でみる：数理社会学への招待

18章：なぜ宣伝しなくても流行がおこるのか。

モデルの説明：

x:流行に影響されていない人

y:流行に影響されている人

z:以前流行に影響されてが、もう影響されていない

t:時間

\delta x = -\alpha * x[t] * y[t] * \delta t

\delta y = (\alpha * x[t] * y[t] – \beta * y[t]) * \delta t

\delta z = \beta * y[t] * \delta t

# initialization vogue<-function(alpha,beta,x.init,y.init,z.init,max_time){ dt=0.01 x=c(x.init,rep(0,max_time)) y=c(y.init,rep(0,max_time)) z=c(z.init,rep(0,max_time)) # main loop for (t in 1:max_time) { x[(t+1)]=x[t]-alpha*x[t]*y[t]*dt y[(t+1)]=y[t]+(alpha*x[t]*y[t]-beta*y[t])*dt z[(t+1)]=z[t]+beta*y[t]*dt } return(data.frame(x,y,z)) } vogue.plot<-function(dat) { plot(dat$x,type="l",lwd=4,col="blue", main="Typical Time Series of \"Vogue\" ", xlab="time", ylab="Number of People",cex.lab=1.3,ylim=c(0,dat$x[1])) lines(dat$y,type="l",lwd=4,col="red") lines(dat$z,type="l",lwd=4,col="green") legend("right", c("affected","not affected", "no longer affected"), col=c("red","blue","green"),lty=rep(1,3),lwd=4) } # running functions res<-vogue(0.0001,0.1,10000,100,0,5000) vogue.plot(res)