等分するベクトル
- 一昨日と昨日(記事はこちらとこちら)の続き
- かつなる乱数を発生させる
- 自由度がdfなので、df次元球表面の一様分布から、その点の座標を発生させた後、それを、df+1本のdf次元空間を等分するベクトルへの足としてdf+1個の値の組を作る
df<-10 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 m<-m[,1:df] np<-10 rs<-matrix(rnorm(df*np),nrow=np) rssq<-rs^2 ds<-sqrt(apply(rssq,1,sum)) rs<-rs/ds ds<-t(m%*%t(rs))*sqrt(df/(df+1)) dssq<-ds^2 apply(dssq,1,sum)