猫も杓子も構造化

発達障害、特別支援などについて書いています。最近は心理学関係の内容が多めです。

配置処理の3種類

顔の認知の際には、顔の各パーツ(目とか鼻とか)のレイアウトに関する処理を行っている。こうした要素間の関係についての処理のことを、配置処理(configural processing)という。

Maurerらのレビューによるとこの配置処理には3つのタイプがあるのだそうだ。

まず、一つ目が一次関係への敏感さ(sensitivity to first-order relations)というものである。これは、鼻の上に目がある、鼻は口の上にあるなどといった顔の基本的な配列についての処理で、この処理を経ることにより、「刺激が顔である」と同定する訳である。

二つ目が、全体的処理(holistic processing)というもので、これは顔の各要素を独立して捉えるのでなく全体(gestalt)として捉える処理のことらしい。このような処理を行っている間は、各々の要素を処理することは難しくなるのだそうだ。パーツで〇〇さんという判断ではなく、顔全体として〇〇さんというような処理をしているということらしい。

一次関係の処理だけならば、人類はみな同じ顔と認識されてしまうので、さらに顔情報を処理する必要がある。それが三つ目の二次関係への敏感さ(sensitivity to second-order relations)というものである。これは、目と目がどれくらい離れているかといった要素間の距離の配置関係の処理をおこなうものである。各々の要素そのものを処理する過程とは、別のメカニズムで処理がなされているということが実験の結果から示唆されている。

ただ、これらの語の用法はコンセンサスがある訳ではなく、研究者によってはこれらの一つを指して配置処理と呼んでいたり、3つを区別せずに呼んでいたり様々であるそうだ。

Maurer, D., Le Grand, R., & Mondloch, C. J. (2002). The many faces of configural processing. Trends in Cognitive Sciences, 6, 255–260.

二項分布とポアソン分布

二項分布とポアソン分布も親戚関係にあるらしい(『キーポイント確率統計』岩波書店)。二項分布を、npλに固定したまま、pを0に近づけ、nを無限に大きくしていくとポアソン分布が現れるからである。二項分布は超幾何分布の子どもだった訳だから、さしずめポアソン分布は超幾何分布の孫といったところでしょうか。

さて、どの程度nが大きくなったりpが小さくなると、ポアソン分布に近づくのだろうか。例にもよって例のごとくRで試してみる。

とりあえずそんなに小さくもないp=0.2と、そんなに大きくもないn=20ぐらいから。

n <- 20
p <- 0.2
lambda <- n*p
x <- 0:10

aa <- dpois(x,lambda = lambda)
bb <- dbinom(x,n,p)
cc <- data.frame(
  Poisson = aa,
  Binom = bb
)

rownames(cc) <- as.character(c(x))
barplot(t(cc), beside =T)
legend("topright", fill= c("#333333", "#eeeeee"),legend = c("Poisson", "Binom"))

f:id:nekomosyakushimo:20170822000406p:plain


まぁ、似たような分布ではあるがそれなりに違ってもいる。
確率を半分にしてp=0.1にしてみるとこんな感じ。

f:id:nekomosyakushimo:20170822000549p:plain

だいぶ近い分布になりましたね。
さらに半分にp=0.05にするとより近づく。

f:id:nekomosyakushimo:20170822000802p:plain

さて、今度は元の確率p=0.2に戻してnを増やしてみる。
まずn=50ぐらいまで増やす。(グラフ範囲は見やすい必要そうな場所のみ)

f:id:nekomosyakushimo:20170822001053p:plain

これは結構違う。
さらに増やしてn=100ぐらいだとどうでしょう。

f:id:nekomosyakushimo:20170822001411p:plain

これでも結構違う。やはりまれな現象に当てはまるのがポアソン分布ということで、p=0.2程度だとnを増やしてもポアソン分布には近づかないらしい。
この状態でp=0.05程度まで下げると次の通り。

f:id:nekomosyakushimo:20170822001725p:plain

だいたい一致する。

ちなみに、nをいたずらに増やしてもポアソン分布には近づかなかったのだが、中心極限定理に従って二項分布が正規分布に近似している様子は見てとれる。

大数の法則のシミュレーション

統計学入門』(東京大学出版会)の中で大数の法則を説明している章があり、その中でコンピュータシミュレーションによる実験が紹介されている。

成功確率p=0.4のベルヌーイ試行を20000回行い,100回おきに成功率を計算して、nが増えるに従いp=0.4に近づくかを確かめている。

本にはこの実験を4回行った結果が紹介され、その内3回は成功率が0.4に収束していく様子が図示されており、1回については理論的な成功率である0.4に収束していない様子が示されている。

さて、この20000回の試行で経験的確率が理論的確率に収束しないことはどの程度の頻度で起きるのだろうか。本にはそこまで書いていないので実際に試してみるしかあるまい。

Rでこのシミュレーションを再現する。とりあえず次のようにコードを書いて同じ実験をできるようにする。

n <- 20000      #試行回数
aa <- numeric(length=n)
bb <- numeric(length=n)
cc <- numeric(length=n/100)

for (i in 1:n){
  aa[i] <- runif(1,min = 0, max = 1)  #0から1の一様乱数を発生
  bb[i] <- ifelse(aa[i]<0.4,1,0)    #0.4より小さい場合に成功(1)
  if(i%%100 == 0) {                    #100回に1回成功率を計算
    cc[i/100] <- sum(bb[1:i])/i
    }
}

plot(cc,type="l",ylim=c(0.35,0.45))
abline(h=0.4,col="blue")

一回試してみたのが次のもの、この場合だとやや0.4からは離れていますね。

f:id:nekomosyakushimo:20170819222359p:plain

何回か試して見ると、0.4に近かったり離れていたりする。

どの程度の確率でずれるのかを見るために、20000回の試行を行って得た成功率を記録し、同じシミュレーションを1000回繰り返すことにする。(つまり乱数は都合2千万回発生することになる)

for (j in 1:){ 
 #ここにさっきの関数

 dd[j] <-cc[length(cc)]  #一番最後の試行を記録
}

そして得た1000回分の成功率をヒストグラムにしたものが次のもの。

f:id:nekomosyakushimo:20170819224421p:plain

0.01よりも大きな差はないようだが、0.005ぐらいの差は結構な頻度で起きるようだ。(0.395を下回るのは82回、0.405を上回るのは63回あった)元の本の図を見る限りだと、0.005ぐらいの差で収束していないと判断しているようなので、その基準に従うなら、今回のシミュレーションでも15%弱は経験的確率が理論的な確率に収束していないと判断できそうである。

測定することと情報の取捨選択

ある測定方法をとることは、何かをあきらかにし、何かを捨てている。「その測定により何があきらかにされたか」,「その測定により何が捨てられたか」を考えることは, 他者の研究をみる上でも, 自分の研究を行う上でも重要である。(市川, 1990, p.8)

さすが定評のあるテキストだけあってとてーも良いこと言ってますね。


【関連】
nekomosyakushimo.hatenablog.com

超幾何分布と二項分布

超幾何分布というのは二項分布の「親」であるらしい(『キーポイント確率統計』岩波書店)。どういうことかというと、超幾何分布の当たり数とはずれ数の比を一定にしたまま、当たり数とはずれ数の数を極限まで増やすと、二項分布に一致するからである。

これは直感的にもまぁ分かる。例えば、あたり数が2、はずれ数が8のくじがあった場合に、前にくじをひいた人が当たったか外れたかによって自分のあたる確率は大きく変わるが、当たり数が200、はずれ数が800あるくじを引くのであれば前の人の当たりはずれは、自分の当たる確率にそう影響は及ぼさない。

さて、どの程度当たり数とはずれ数が増えると二項分布に近くなるのだろうか。あたりとはずれの比率を2:3(つまりp=0.4)、試行数を4回に固定して考えてみる。

まず、あたりが4、はずれ6(くじの総数は10)ぐらいでやってみる。

m <- 4    #あたりの数
N <- 10   #総数
n <- N-m #はずれの数
k <- 4    #試行数
p <- m/N  #二項分布におけるあたりの確率

aa <- dhyper(0:k,m,n,k)
bb <-  dbinom(0:k,k,p)
cc <- data.frame(
  Hyper = aa,
  Binom = bb
)
rownames(cc) <- c("0","1","2","3","4")

barplot(t(cc), beside =T)
legend("topright", fill= c("#333333", "#eeeeee"),legend = c("Hyper", "Binom"))

f:id:nekomosyakushimo:20170818204556p:plain

これだとそれなりに違って見える。
次にあたりはずれを倍にしてくじの総数を20にしてみる。


f:id:nekomosyakushimo:20170818204736p:plain


さっきよりはだいぶ近づいた感じがあるがまだ差はある。
続いて、最初の5倍。総数を50にして試してみる。


f:id:nekomosyakushimo:20170818205011p:plain


だいたい同じ形になりましたね。
最後に、最初の100倍で総数1000にしたのが次のもの。

f:id:nekomosyakushimo:20170818205208p:plain


これで、ほぼ同じ分布と言って良いのではないでしょうか。

ということで、超幾何分布のあたりとはずれの数が十分に多ければ、それはベルヌーイ試行とみなして二項分布になるという話でした。

超幾何分布について

超幾何分布という確率分布がある。

これは、二項分布の非復元抽出版のことである。トランプを山から何枚か引く場面を思い浮かべてもらうと分かりやすいかもしれないが、1枚引くたびにカードを元の山に戻すのが復元抽出で、カードを戻さないのが非復元抽出である。例えば、ハートの絵柄を引く確率は、カードを引くたびに山に戻す復元抽出だと常に0.25だが、非復元抽出だと最初に引いたカードがハートかどうかによって、次に引くカードがハートである確率が変わる。1枚目、2枚目がハートか否かによって3枚目がハートである確率も変わってくる。

で、この超幾何分布というのは、N個の中にm個のあたりが含まれている際に、k回抽出を行うとあたりの個数xが何個になるかについての確率分布のことである。

そのままトランプを例に話を進め、例えば5枚のカードを山から引いた際に、そのうち3枚がハートである確率を考えてみる。(ジョーカーのことは考えない)

Rで超幾何分布の確率を求める関数はdhyper()である、引数に指定するのは「確率変数x」、「当たりの総数m」、「はずれの総数n」、「抽出回数k」である。

m <- 13   #ハート(あたり)の枚数
N <- 52   #トランプの総数
n <- N-m #ハート以外(はずれ)の枚数
k <- 5    #カードを引く枚数

dhyper(3,m,n,k)
[1] 0.08154262


ということで8%ぐらいの確率で5枚中3枚がハートであることがわかる。この確率分布についてプロットしたものが次のグラフである。

plot(0:5, dhyper(0:5,m,n,k),type="h") #x軸からの垂線はtype=h


f:id:nekomosyakushimo:20170817225350p:plain


ハートの枚数は1枚になる確率が最も高いことが分かる。ちなみに、0から5までの確率を足すと当然のことながらその値は1になる(確率であるための定義ですので)。また、ハートの枚数が6枚になる確率を計算すると、5枚しか引いていないないわけなので当然のことながら確率はゼロになる。

kika <- dhyper(0:5,m,n,k)
sum(kika)
[1] 1

dhyper(6,m,n,k)
[1] 0

大村 平『実験計画と分散分析のはなし』

直交表やラテン方格などの実験計画関連に興味を持って読んだ。

前半は、分散分析の話がメインで後半が実験計画。分散分析のパートは考え方を一つ一つ丁寧に追っていくので一通り統計の基礎を学んだ人にとっても知識の整理という観点から大変勧められる。実験計画法はそのメリットとデメリットに触れながらこれまた丁寧に解説してありとても納得のいくものだった。

実験計画の考え方自体は品質管理とかの分野で実用的に用いられてきたものだろうけど、心理学や教育的データの採集など、現実の諸々の制約を加味して実験的にデータを採集しなければならない場面でこそその手法が活きる場面がありそうに思う。