INFINITY -数学とかプログラミングとか-

統計とプログラムを使って役に立たせたい

TeX用コマンド入力を支援するための辞書をご利用ください。
sanctuary's blogは,適当なことが書いてあります。

一般化ガウス族のネゲントロピーに関する考察

#一般化ガウス族(GGF)
p=function(xi){
	(1/(2*a^(1/a-1)*gamma(1/a)))*exp(-abs(xi)^a/a)
}

a=2

mean=(a^(1/a))*(gamma(2/a)/gamma(1/a))
var=(a^(2/a))*(gamma(3/a)/gamma(1/a))-((a^(1/a))*(gamma(2/a)/gamma(1/a)))^2

Gauss = function(x){
	(1/sqrt(2*pi*(var)^2))*(exp(-((x-(mean))^2)/(2*var^2)))

}


xi=seq(-50,50,length=1000)

default.par <- par()
mai <- par()$mai
mai[4] <- mai[1]
par(mai = mai)

for( a in 20:1000){
	a = a*0.1
	plot(xi,p(xi),xlab="xi",xlim=c(-4,4),ylim=c(0,1),type="l",col=a*10)
	par(new=T)
}

a=1000
par(new=T)
mean=(a^(1/a))*(gamma(2/a)/gamma(1/a))
var=(a^(2/a))*(gamma(3/a)/gamma(1/a))-((a^(1/a))*(gamma(2/a)/gamma(1/a)))^2
plot(xi,Gauss(xi),xlab="xi",ylab="",xlim=c(-4,4),ylim=c(0,4.5), axes = FALSE,type="l")
axis(4)
mtext("Gauss", side = 4, line = 3)
par(default.par)


#確率1かぁ?
integrate(Gauss,-Inf,Inf)

f:id:infinity_th4:20121009060707p:plain

for( a in 20:1000){
	a = a*0.1
	mean=(a^(1/a))*(gamma(2/a)/gamma(1/a))
	var=(a^(2/a))*(gamma(3/a)/gamma(1/a))-((a^(1/a))*(gamma(2/a)/gamma(1/a)))^2
	plot(xi,Gauss(xi),xlab="xi",ylab="Gauss",xlim=c(-4,4),ylim=c(0,5),type="l" ,col=a*10)
	par(new=T)
}

f:id:infinity_th4:20121009062729p:plain

一般化ガウス族のネゲントロピーはaを\inftyにすると,とても大きくなります。

ネゲントロピーが大きいということは,その分布の持つ平均と分散をもつようなガウス分布と見た目から別の形をしていることが言える。

今の場合一般化ガウス族でのaを\inftyにすると、一様分布になるので明らか。

2軸の書き方は、以下を参考にした。
http://d.hatena.ne.jp/teramonagi/20120107/1325922512