ウィーナー過程の正規分布分散の最尤推定

  • じゃあ、「ウィーナー過程」であることがわかっているけれど、その時刻t-sの差が分散を1を作るというそのt-sの差の大きさがわからないときにはどうしたらよいか
  • 尤度を計算して最尤推定をすればよい
# 適当に時刻を作る
t <- sort(runif(100))
# 時刻の差
diff.t <- diff(t)
# この時刻スケールで時間単位1のときにウィーナー過程での分散がkであるとする
k <- 1
# ウィーナー過程の値
x <- rep(0,length(t))
x[1] <- runif(1)
for(i in 2:length(t)){
	x[i] <- x[i-1] + rnorm(1,0,sqrt(k*diff.t[i-1]))
}
plot(t,x,type="l")
diff.x <- diff(x)
# 候補となるkの値で刻んで対数尤度を計算する
ks <- seq(from=0,to=k*2,length=100)
ks <- ks[-1]
ls <- rep(0,length(ks))
for(i in 1:length(ks)){
	ls[i] <- sum(-log(2*pi*ks[i]*diff.t)/2) - sum(diff.x^2/(2*ks[i]*diff.t))

}
plot(ks,ls)
abline(v=ks[which(ls==max(ls))],col=2)