順序

  • k種類の帰結がある
  • それぞれの帰結が生起する確率がa,bなるベクトルで表されているとき、どちらのベクトルが好ましいかの決め方
  • k種類の帰結に重みを付けて\sum v (a-b)の正負で決められる場合と、a-bの各要素の正負を要素ごとに評価する場合とに2分してみる。後者は帰結の種類ごとに、値化できる重みは付けられず、評価するべき順序だけがつけられる
  • 計算可能な重みを付けられる場合は、「数直線」上の扱い。そのような重みが付けられない場合は、直線上に並んではいるが「途中で切れている」ため、数値演算はできず、「順序」だけが残っている、というような違いに相当
compare.ord.cat <- function(a,b,v=NULL){
	d <- a-b
	ret <- 0
	if(is.null(v)){
		s <- which(d!=0)
		if(length(s)>0){
			ret <- sign(d[s[1]])
		}
	}else{
		p <- sum(d*v)
		ret <- sign(p)
	}
	if(ret>0){
		ret <- 1
	}else if(ret<0){
		ret <- 2
	}
	ret
}
  • もう少し複雑にすると、a,bの要素に順序を入れ、そのうえで、それを階層的部分集合構造にして、部分集合内で重みづけのできる比較にするか、要素ごとの比較に順序を入れるかを定めることで、結果として、a,bになんらかの評価を与えることが可能になりうる。ただし、階層化した後、各部分集合内での評価結果の複合体がa,bに付与されるので、その複合体(複数の要素がある)の評価ルールが必要になる。これが「決められない悩み」の素
  • これはついでのメモソース
library(MCMCpack)
R1 <- rdirichlet(1000,rep(1,3))
R2 <- rdirichlet(1000,rep(1,3))
ret <- rep(0,1000)
i2 <-1 
par(mfcol=c(3,3))
for(i2 in 1:9){
for(i in 1:1000){
	tmp1 <- R1[i2,1]*(1-R2[i,1])+R1[i2,2]*(1-R2[i,1]-R2[i,2])
	tmp2 <- R2[i,1]*(1-R1[i2,1])+R2[i,2]*(1-R1[i2,1]-R1[i2,2])
	ret[i] <- sign(tmp1-tmp2)
}
plot(c(R2[,1],R1[i2,1]),c(R2[,2],R1[i2,2]),col=c(ret+3,1))
}