塵も積もれば〜レアバリアントにつながる話〜

  • 0と1ばがりでできた分割表についてこちらに書いた
  • 今日は、似ているけれど、ちょっと違う表データのこと
  • サンプルが2群に分けられて、第1群、第2群、それぞれのサンプル数がA1、A2とする
  • 観察項目がm個あって、それぞれの観察項目では、「あり」と「なし」が観察される
  • A1+A2のサンプルには、「あり」のサンプルがただ1つだけ存在している
  • 項目数mがA1以下のときには、「あり」の特徴を持つサンプルは第1群に属するものとする
  • 項目数mがA1より大きいときには、第1群のすべてのサンプルは、いずれかの項目で「あり」、残ったm-A1の項目に関しては第2群のサンプルが「あり」であるものとする
  • このようなとき、ただ1つのサンプルにしか認めない項目を持つ、ということは、第1群に属するということと、関係があるような、ないような、感じがする
  • たとえば、第1群のすべてのサンプルは、いずれかの項目で「あり」であって、第2群のサンプルは、いずれも、「あり」という観察をされないとする
  • このとき、「ただ1つのサンプルにのみ認められる特徴を有すること」は「第1群」であることと密接に関係していると考えてよいだろう
    • 注意:項目として採用される項目は、第1群であるか第2群であるかの情報とは無関係に決められるべきである
  • 逆に、m=A1+A2、つまり、すべてのサンプルが、何かしら1つの項目について「あり」であって、それ以外の項目については「なし」であるとしたら、どうか
  • この場合は、「ただ1つのサンプルにのみ認められる特徴を有すること」は「第1群」であることと関係していないと考えてよいだろう
  • では、A1,A2,mの間にはどういう関係があるのだろうか?
  • こころみに、ある統計量を定義した上で、モンテカルロ・パーミュテーションによって、その関係を見てみよう
  • どうしてこれが「レアバリアント」の話しかというと
    • 第1群のサンプルは、なにかしら、稀な特徴をジェノタイプに有している
    • 第2群のサンプルも、持っていてもよいけれど、稀な特徴を持つ比率は第1群に比べて小さいとする
    • このとき、「第1群」であることは、「稀な特徴をジェノタイプに持ちがちである」という特徴と関連してくる
    • 「稀な特徴」〜「レアバリアント」
OnlyOneItemTest<-function(P,G,rank=TRUE,Niter=1000){
	if(rank){
		R<-rank(P)
	}else{
		R<-P
	}
	T<-sum(R*G)
	Tperm<-rep(0,Niter)
	for(i in 1:Niter){
		Tperm[i]<-sum(sample(R)*G)
	}
	LSG<-c(length(which(Tperm<T)),length(which(Tperm==T)),length(which(Tperm>T)))/Niter
	p<-LSG[2]+LSG[3]
	return(list(p=p,LSG=LSG,Niter=Niter,rank=rank))
}

Nc<-10
Na<-30
P<-c(rep(1,Nc),rep(0,Na))

fraction<-0.005

checkpoint<-1:(Nc+Na)
#checkpoint<-c(100)
res<-rep(0,length(checkpoint))

for(x in 1:length(checkpoint)){
Nm<-checkpoint[x]
G<-matrix(0,(Nc+Na),Nm)
for(i in 1:Nm){
	G[i,i]<-1
}
#G[34:66,2]<-1
#G[67:100,3]<-1
#G[(Nc+1):(Nc+fraction*Na),3]<-1
Ntrial<-100
ps<-rep(0,Ntrial)
LSGs<-matrix(0,Ntrial,3)
for(i in 1:Ntrial){
	tmp<-OnlyOneItemTest(P,G)
ps[i]<-tmp$p
LSGs[i,]<-tmp$LSG
}

plot(sort(ps))

res[x]<-mean(ps)
plot(checkpoint,res,type="b")
}