時間の流れの中で起きる〜ポアッソン分布・指数分布

  • 連続時間での観察
  • どの時点かで「こと」は起きる
    • 起きた時刻を記録する
  • 何回起きるか〜ポアッソン分布
    • 単位時間当たりの「こと」の回数について集計する
    • 単位時間当たり平均してm回起きるときに、単位時間に実際に起きる回数は0,1,2,...,\infty
    • 十分な長さの時間を観察すれば、生起回数ごとの確率はポアッソン分布
    • Rを使えば
m<-runif(1)*10
n<-0:30
plot(n,dpois(n,m),type="h")
  • 1度起きてから次に起きるまでの時間の分布〜指数分布
    • 一定の生起確率の事象がある
    • 「一定期間」「1度も」「起こらない確率」は
    • 「一定期間」は「1度も」「起こらず」、まさに、その「一定期間」の経過したその「時刻に」「起きる」確率
    • これは、時刻tに関するハザード関数h(t)=C(一定)であるような確率事象
    • h(t)=\frac{H(t)}{dt}なので、H(t)=Ct(累積を始める時刻を時刻0とすれば定数項は0となる)
    • ここでH(t)=-\log(S(t))であるから、S(t)=e^{-Ct}
    • f(t)=\frac{d F(t)}{dt}=\frac{(1-S(t))}{dt}であるから
    • f(t)=\frac{1}{C}e^{-Ct}:指数分布
    • S(0)=1であり\lim_{t \to \infty} S(t)=0であるから、f(t),F(t),S(t)は確率密度分布と累積分布、その昇降逆分布の条件を満たしている
  • 無記憶性〜指数関数と幾何分布との関係
    • ハザード関数h(x)=Cが一定であるということは、過去の事情によらずに、「こと」が起きるということ。これを「無記憶性」と言う
    • 指数分布は無記憶性の分布。幾何分布も無記憶性の分布。
    • 幾何分布では、P(n+1)=(1-p)P(n)のように、P(n)が指数関数的な関係にあった
    • 指数分布もf(t+T)=e^(-CT) f(t)という関係にある
    • 指数分布は幾何分布(離散変数の確率密度関数)の連続変数版
    • ちなみに「ぼーず確率(こちら)」は次のようなもの
    • このS(t)は、時刻tで初めて「起きる」確率f(t)をtが無限大から、ある値t_0までを積分した値なので、これは、t_0になっても、まだ、1度も起きていない確率で、これが「ぼーず確率」
par(mfcol=c(3,3))

# 生起回数
N<-1000
# 生起時間間隔
T<-10000

# ランダムに生起させ、生起時刻をXに納める
X<-sort(runif(N))*T

# 単位時間
UnitT<-100
Interval<-(1:(T/UnitT))*UnitT
Count<-rep(0,length(Interval))
for(i in 1:length(Interval)){
	Count[i]<-length(which(X<Interval[i]))

}
#plot(Count)
X<-diff(Count)

fn<-density(X)
x<-fn[[1]]
f<-fn[[2]]
#plot(x,f,type="l",xlim=c(min(X),max(X)),main="probability function")
hist(X)
Fn<-ecdf(X)

F<-Fn(x)
plot(x,F,type="l",xlim=c(min(X),max(X)),main="cumulative distribution function")


plot(F,x,type="l",main="INVERSE cumulative distribution function")

S<-1-F
plot(x,S,type="l",xlim=c(min(X),max(X)),main="Survival function:1-F;DECREASING cumulative distribution function")

plot(S,x,type="l",main="INVERSE survival function:INVERSE DECREASING cumulative distribution function")

h<-f/S

plot(x,h,xlim=c(min(X),max(X)),main="hazard function")

H<--log(S)
plot(x,H,xlim=c(min(X),max(X)),main="cumulative hazard function")
par(mfcol=c(1,1))
  • 「時刻」「時刻の間隔」を集計する
    • Rを使えば、単位時間当たりの件数よりも簡単で
par(mfcol=c(3,3))

# 生起回数
N<-1000
# 生起時間間隔
T<-10000

# ランダムに生起させ、正規時刻をXに納める
X<-sort(runif(N))*T
X<-diff(X)

fn<-density(X)
x<-fn[[1]]
f<-fn[[2]]
#plot(x,f,type="l",xlim=c(min(X),max(X)),main="probability function")
hist(X)
Fn<-ecdf(X)

F<-Fn(x)
plot(x,F,type="l",xlim=c(min(X),max(X)),main="cumulative distribution function")


plot(F,x,type="l",main="INVERSE cumulative distribution function")

S<-1-F
plot(x,S,type="l",xlim=c(min(X),max(X)),main="Survival function:1-F;DECREASING cumulative distribution function")

plot(S,x,type="l",main="INVERSE survival function:INVERSE DECREASING cumulative distribution function")

h<-f/S

plot(x,h,xlim=c(min(X),max(X)),main="hazard function")

H<--log(S)
plot(x,H,xlim=c(min(X),max(X)),main="cumulative hazard function")
par(mfcol=c(1,1))