読者です 読者をやめる 読者になる 読者になる

廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

一階線形常微分方程式を使った流行語のモデル

R 微分方程式

モデル化

流行語は話題にする人が増えれば増えるほどさらに流行しやすくなり、ある時期を超えると忘れられていくと考えられる。

このダイナミクスをなるべく簡単な微分方程式で記述したいのでこのような仮説を置いた。

  • 流行語の拡散スピードは話題にされる量に比例する
  • 単位時間経過ごとに流行語を話題にする人は減っていく

これを式で表すとこのようになる。

\displaystyle \frac{dA}{dt} = rA - kA

r は流行語の伝達スピードについての係数なので「拡散係数」とよぶことにする。

k は流行の減衰についての係数なので「忘却係数」とよぶことにする。

この方程式は解析的に解け、解は

\displaystyle A=c\exp((r-k)t)

となる。

ただし r は話題が飽和する時期 τ を超えるとゼロになるものとした。

c は流行の規模に関わるパラメータと解釈できるが、今回は Google トレンドのデータを使うのであまり意味を持たない。Google トレンドの「人気度」はもともと適当にスケーリングされている。

キーワードの選定

もう始まってる⁉︎ 2015年流行語大賞候補 - NAVER まとめ を参考に2015年の流行語として、とりあえず「ラッスンゴレライ」をチョイスした。

ラッスンゴレライがなんなのかはいまだに把握してない。

Google トレンド より、ラッスンゴレライの人気度を取得してプロットする。

#R のコード
sv_r <- read.csv("~/Downloads/report.csv",skip=4,stringsAsFactors = FALSE)
sv_r <- as.numeric(sv_r[1:52,2])
plot(sv_r,type="b",ylab="人気度",main="ラッスンゴレライ")

f:id:abrahamcow:20150913171424p:plain

折れ線グラフが鮫の背びれのような形になるのが、指数的増加・指数的減少のサインである。

上記のモデルを当てはめた結果をプロットする。フィッティングには minpack.lm パッケージの nls.lm 関数を用いた。

model1 <- function(t,pars){
  k <- pars[1]
  r <- pars[2]
  tau <- pars[3]
  c1 <- pars[4]
  A1 <- c1*exp((r-k)*t)
  A20 <- c1*exp((r-k)*t)
  A2 <- A20*exp(-k*(t-tau))
  ifelse(t<tau,A1,A2)
}
pars<-c(k=0.6,r=0.2,tau=22,c1=0)
library(minpack.lm)
res_r<-nls.lm(par=pars,fn=function(pars)sv_r-model1(1:52,pars))
plot(sv_r,type="b",ylab="人気度",main="ラッスンゴレライ")
curve(model1(x,res_r$par),add=TRUE)

f:id:abrahamcow:20150913173532p:plain

係数 rkτ は p 値が十分に低い。

> summary(res_r)

Parameters:
    Estimate Std. Error t value Pr(>|t|)    
k    0.37539    0.04290   8.750 1.66e-11 ***
r    0.65718    0.08443   7.784 4.68e-10 ***
tau 20.32499    0.32104  63.310  < 2e-16 ***
c1   0.33463    0.26365   1.269     0.21    
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10.5 on 48 degrees of freedom
Number of iterations to termination: 29 
Reason for termination: Relative error in the sum of squares is at most `ftol'. 

モデルの限界

他「ピケティ」、「高等遊民」などいくつかのワードに当てはめてみたがピーク部分でのフィッティングがあまりよくなかった。

(「高等遊民」は『デート』というテレビドラマの影響で一時期検索ボリュームが増加した。)

f:id:abrahamcow:20150913175035p:plain

f:id:abrahamcow:20150913175044p:plain

より柔軟なモデルがあれば教えて欲しい。

また、飽和時期を過ぎたキーワードでないと τ を推定できないため、予測に使いづらい。

応用

拡散係数 r や忘却係数 k は解釈が容易なため、これらの数値を較べることで流行語の特徴を見いだすことができる。

各キーワードの係数をプロットしてみる。この作図にあたっては、 Rでラベル付き散布図を作成して保存するまで - 503 Service Unavailable を参考にした。

f:id:abrahamcow:20150913175738p:plain

「ピケティ」は拡散係数が小さく、忘却係数も小さい。

拡散の勢いは低かったが、印象に長く残りやすいのかもしれない。

反対の傾向を持つ「高等遊民」はテレビドラマ終了とともに特に話題に登らなくなったものと思われる。

アマゾンアフィリエイトのコーナー

微分方程式で数学モデルを作ろう

微分方程式で数学モデルを作ろう

21世紀の資本

21世紀の資本

8.6秒バズーカ ラッスンゴレライ コスプレセット

8.6秒バズーカ ラッスンゴレライ コスプレセット