CategoryVector<-function (d = 3) { if(d == 1){ return(matrix(1,ncol=1,nrow=1)) } df <- d - 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]) } Simplex.Vector <- function(n){ if(n==1){ return(matrix(1,ncol=1,nrow=1)) } X <- CategoryVector(n) X <- cbind(rep(1/sqrt(n),n),sqrt((n-1)/n)*X) X } Make.X <- function(rs){ ret <- matrix(1,ncol = 1, nrow =1) for(i in 1:length(rs)){ ret <- Simplex.Vector(rs[i]) %x% ret } t(ret) } rs <- c(2,3) X <- Make.X(rs) X
遺伝学・遺伝統計学関連の姉妹ブログ『ryamadaの遺伝学・遺伝統計学メモ』
京都大学大学院医学研究科ゲノム医学センター統計遺伝学分野のWiki
講義・スライド
医学生物学と数学とプログラミングの三重学習を狙う学習ツール
駆け足で読む○○シリーズ
ぱらぱらめくるシリーズ
カシオの計算機
オンライン整数列大辞典