- 正単体の頂点座標
- 個の頂点を持つ正単体の頂点座標は次元空間上の点として表される
- (全頂点ベクトルの和はゼロベクトル)
- (すべての頂点ベクトルのノルムは等しい)
- (すべての頂点ベクトルペアのなす角は等しい)
- これらの頂点は、ある1つの尺度のカテゴリに対応している
- また、この尺度のカテゴリ比率がある値のセットであるという状態は、この正単体の内部と表層からなる空間の点に対応付けられる
- 1段階、上の構造としての2段階階層正単体の座標を考える
- これらの頂点は、ある尺度のセットが作る複合カテゴリに対応している
- が作る単体として、のそれぞれの頂点が頂点数な正単体から構成されているような、2段階階層構造にある正単体を考える
- これは、各頂点が次元空間なので、その直積である次元空間上の点である
- 尺度のカテゴリがそれぞれ第番カテゴリであるような組み合わせカテゴリの座標をのように書いて、個のベクトルについて、順次、回、外積的な積をして、次元をに増やして定義することとする
- 複数の尺度が作る複合カテゴリの比率がある値のセットであるという状態は、この2段階階層正単体の内部と表層とからなる空間の点に対応付けられる
- この対応付けにおいて、複合カテゴリの比率が特定されるとともに、これを構成する尺度の任意の部分集合が作る(より緩い)複合カテゴリの比率も特定され、個々の尺度のカテゴリ比率も特定さていることに注意する
- Rを使って、正単体の頂点座標や、正単体・複体の2段階階層構造の座標計算をしてみよう
CategoryVector<-function (nc = 3)
{
df <- nc - 1
d <- df + 1
diagval <- 1:d
diagval <- sqrt((df + 1)/df) * sqrt((df - diagval + 1)/(df -
diagval + 2))
others <- -diagval/(df - (0:(d - 1)))
m <- matrix(rep(others, df + 1), nrow = df + 1, byrow = TRUE)
diag(m) <- diagval
m[upper.tri(m)] <- 0
as.matrix(m[, 1:df])
}
-
- 正単体・複体段階階層構造の組合せカテゴリに与えるべき座標
library(sets)
CategoryVectorND<-function(n){
df<-1
NN<-length(n)
S<-as.set(1:NN)
powS<-set_power(S)
scnt<-1
result<-list()
pows<-list()
for(s in powS){
ns<-c()
nlist<-c()
for(i in s){
ns<-c(ns,n[i])
nlist<-c(nlist,i)
}
N<-length(ns)
if(N>0){
CategoryVectors<-NULL
for(i in 1:length(ns)){
CategoryVectors[[i]]<-CategoryVector(ns[i])
df<-df*(ns[i]-1)
}
tmparr<-array(0,ns[N:1])
addresses<-which(tmparr==0,arr.ind=TRUE)
ret<-list()
cnt<-1
for(i in 1:length(addresses[,1])){
tmp<-c(CategoryVectors[[1]][addresses[i,N],])
if(N>=2){
for(j in 2:N){
tmp<-c(outer(tmp,c(CategoryVectors[[j]][addresses[i,N-j+1],]),"*"))
}
}
ret[[cnt]]<-tmp
cnt<-cnt+1
}
result[[scnt]]<-ret
pows[[scnt]]<-nlist
scnt<-scnt+1
}
}
list(v=result,pows=pows)
}