人の行動を分析するのに、数学が使えそう
- モデルの説明
- oは最初の状態。徐々にnsに移行する。
- nsは次の状態。徐々にsに移行する。
- sは次の次の状態。徐々にmに移行する。
- mは最後の状態。
- こういった段階的に何かが起きるモデルは自然界に沢山ある。
- 何日、ハンバーガーを食べずに済むか、というモデルと見なせる
- この、ハンバーガー、を別の事に入れ換えれば、何かしらの依存症のモデルとして使える。
#%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import math
T=30;
###initial condition###
o_temp=1
ns_temp=0
s_temp=0;m_temp=0
alpha=0.3
beta=0.5
gamma=0.4
o=[0]*T
ns=[0]*T
s=[0]*T
m=[0]*T
o[0]=o_temp
ns[0]=ns_temp
s[0]=s_temp
m[0]=m_temp
for t in range(T-1):
o_temp2=(1 - alpha) * o_temp
ns_temp2=alpha*o_temp+ (1 - beta) *ns_temp
s_temp2=beta * ns_temp + (1 - gamma) * s_temp
m_temp2=gamma*s_temp+ m_temp
o[t+1]=o_temp2;ns[t+1]=ns_temp2;s[t+1]=s_temp2
m[t+1]=m_temp2
o_temp=o_temp2;ns_temp=ns_temp2;s_temp=s_temp2
m_temp=m_temp2
import matplotlib.pyplot as plt
# プロット範囲のxを用意
time=[k for k in range(T)]
# xに対応するyの値を用意
plt.plot(time,o,"r-..")
plt.plot(time,ns,"g-.")
plt.plot(time,s,"b--")
plt.plot(time,m,"purple")
plt.xlabel("Time")
plt.ylabel("Probability")
plt.title("Behavior Analysis")
# plt.show()で画面に表示
plt.show()
では、こういった依存症のなりやすさ、を決めるものは何か。
因子として、今回は、の3つのパラメータが出てきた。
これを動かして、どんな挙動が見てみると共に、それらの変数の意味を考える
- αは、忘れやすさ
- 0.1にすると、
- βは、感化されやすさ
- 0.3にすると、
-
- γは、我慢出来無さ
- 0.2にすると、
-
- 結局、同じだけ変化させる(0.2引く)なら、αが一番予後が良い
- 忘れないでおく、ということが大事
- 反省文を書けば良いのか???教育???
バイバイ!