想定外の仮説を持ち込む
- 「仮説Xと仮説Yとのどちらなのかを判定しようとして実験を観察していたら、XでもYでもなく仮説Zなのではないか、と思い至る」ことがあるように思うが、その思考過程とは、どういうことか、という話題が出ました。
- そんなことを考えるための例。
- 今、1か2が出ることが繰り返されるとする。1と2が等確率でランダムに出る(仮説X)か、1か2かのどちらかに偏っている(仮説Y)かに着目しているときに、次のような1,2列が得られた。
2 1 1 2 1 2 2 1 1 1 1 2 1 2 2 2 1 2 1 2 1 1 1 2 1 2 1 1 2 2 2 2 1 2 2 1 2 1 1 2
- 仮説Xかと思ったが、実は、1と2とは等確率で出るが、その出方はランダムではなく1,2の比率が0.5:0.5からずれにくいような「力」が(どんな「力」かは知らないが)存在している(仮説Z)らしい、と「どの時点」で気づくべきか、というのがその問題。
- 以下の例では「連検定をしよう」と気づけば、判断に持ち込めるわけだけれど、では「連検定が検出する非ランダム性を疑うことにする」というのは、いつ、どうやって気づくのか、というのが、ここでの課題。
# 試行回数 n <- 100 # 初期試行 x <- sample(1:2,1) # 2回目以降 for(i in 2:n){ # i-1回の集計 tmp <- tabulate(x[1:(i-1)],2) # それまでの1,2の出現比率に応じて、出た回数が少ない方を多く出す仕組み x[i] <- sample(2:1,1,prob=tmp/(i-1)) } # i回目までの実験結果について # (a) 1,2の出現比が等しいかどうかの検定 # (b) 生成1,2数列の連検定 p <- run.p <- c() for(i in 10:length(x)){ tmp <- tabulate(x[1:i],max(x[1:i])) tmp.d <- dbinom(0:i,i,0.5) tmp.p <- sum(tmp.d[which(tmp.d<=tmp.d[tmp[1]])]) p <- c(p,tmp.p) run.p <- c(run.p,runs.test(as.factor(x[1:i]))$p) } # 2種の検定のp値の変化 matplot(10:n,cbind(p,run.p),type="l",xlab="試行回数",ylab="p値")