# たとえば # 空間の次元 df<-6 # 点の数 k<-4 # 点の座標を作る RR<-matrix(rnorm(df*k),ncol=df) # 点の位置ベクトルのノルムと位置ベクトルペアの内積を計算する out1<-RR%*%t(RR) # 特異値分解 svd.out<-svd(t(RR)) # 特異値分解の結果と、点の元の座標を用いて # k次元座標にする RR2<-RR%*%svd.out[[2]] # そのノルムとペア内積 out2<-RR2%*%t(RR2) # 見てみる print(RR) print(RR2) # df次元とk次元とで差がない print(range(out1-out2)) # k点がk次元座標になっているので、そのうちの1点を原点に取り直せばk-1次元になる # そうなっていることを何度も確かめる回数 Niter<-100 # 確かめるループ for(i in 1:Niter){ # 空間の次元をループのたびに適当に取る df<-sample(2:20,1) # 点の数をループのたびに適当に取る k<-sample(2:df,1) # 点の座標を作る RR<-matrix(rnorm(df*k),ncol=df) # 点の位置ベクトルのノルムと位置ベクトルペアの内積を計算する out1<-RR%*%t(RR) # 特異値分解 svd.out<-svd(t(RR)) # 特異値分解の結果と、点の元の座標を用いて # k次元座標にする RR2<-RR%*%svd.out[[2]] # そのノルムとペア内積 out2<-RR2%*%t(RR2) # df次元とk次元とで差がない print(range(out1-out2)) }
遺伝学・遺伝統計学関連の姉妹ブログ『ryamadaの遺伝学・遺伝統計学メモ』
京都大学大学院医学研究科ゲノム医学センター統計遺伝学分野のWiki
講義・スライド
医学生物学と数学とプログラミングの三重学習を狙う学習ツール
駆け足で読む○○シリーズ
ぱらぱらめくるシリーズ
カシオの計算機
オンライン整数列大辞典