抽出 Sampling


|| 正しい結果を得るためにやるサンプル集め

「サンプル(標本)を取る」こと。

統計処理の準備段階の中で最も重要な話になります。

スポンサーリンク

 

 


目次

 

有意抽出「確率的な根拠が特に無いやり方」

   典型調査「やりたいようにやる(仮説を得るのには有用)」

   アンケート法「専門家の意見(主観)を質問(主観)で」

   割り当て法「比率(主観)を使うそれっぽいやり方」

 

 

無作為抽出「全て同じ確率でサンプリングできる(仮定)」

   単純抽出法「乱数表を使って無作為に近付ける」

   系統抽出法「等間隔にとって無作為に近付ける」

 

   多段抽出法「グループ分けして無作為に選ぶのを繰り返す」

   集落抽出法「グループ分けして選んだグループを全て見る」

   層別抽出法「属性でグループ分けして中身を詳しく見る」

 

 

 

 

 


 

「サンプリング(抽出)」には

『有意抽出』『無作為抽出』の 2 種類があります。

 

 

これらは『確率的な根拠』があるか無いか

という点で明確に区別されていて

 

\begin{array}{llllll} \displaystyle 有意&&\mathrm{Purposive} \\ \\ 無作為&&\mathrm{Random} \end{array}

 

そのためか

「確率抽出」「非確率抽出」なんて言われたりもします。

 

 

 

当然ですが

「精度」が高いのは『無作為抽出法』です。

 

 

また『有意抽出』とは異なり

『無作為抽出』にはその正しさに「根拠」があります。

 

 

 

逆に言えば

『有意抽出』はそもそも

精度が高いか低いか、まったく分かりません。

 

 

なにせ根拠が無いわけですから

正しそう・違いそう ということは分かっても

結局、それ以上のことは何も言うことができないんです。

 

 

 


 


有意抽出 Purposive Selection

 

|| 歴史は古いけど根拠に欠けるやり方

「お好みで選ぶサンプリング」のこと。

確率的な根拠はありません。

 

 

「根拠」が希薄なので

基本的に『結論』としては使えません。

 

 

特に医学、経済学、科学なんかでは

「参考」にされることはあるかもしれませんが

『正しい』とされることは無いやり方になります。

 

 


 

 

典型調査 Typical Survey

 

「やりたいようにやる」感じのやり方。

『有意抽出』というとだいたいこれになります。

 

 

調査のやり方

サンプルの取り方 その条件

 

 

こういったことを好きなようにやる感じで

ほぼ確実にバイアスが発生するため

かなり偏ったサンプルを得ることになります。

 

 

 

とはいえまったく使えないというわけではなく

「仮説の設定」段階ではけっこう有用です。

 

 

ただ根拠としては非常に心許ないので

この調査法によって得られた結論は

あくまで「参考」にしかなりません。

 

 


 

 

アンケート法 Questionnaire

 

「専門家のご意見」をまとめる方法。

専門家の判定基準とかは当然のようにお好み。

 

 

アンケートに書かれてる質問の内容

その質問の選択肢など

 

 

大量に主観が入り込むので

基本的に正しいかどうか分からないものになります。

というか、本質的にはお好み法です。

 

 


 

 

割り当て法 Allocation

 

「比率」を使った

なんかそれっぽいサンプリングの方法。

 

 

構成要素(性別・年齢・地域など)があれば

それで全体(母集団)を区別して

その比率に一致するようにサンプルをとる

 

 

具体的には、

例えばなんかのグループがあったとして

「男」と「女」の構成比率が 5:5 なら

 

 

男からそれくらい

女からそれくらい

という具合にサンプルをとる

 

 

みたいなやり方で、

なんかそれっぽいやり方ですが

 

 

「男」の中から調査対象を選ぶ(主観)

「あの地域の人」の中から調査対象を選ぶ(主観)

 

 

『構成要素の選出基準』に主観が混じるので

わりと根拠に欠けているやり方になります。

 

 

 

ただこれ、そうおかしなものではなくて

ざっくりとした統計を行う場合

わりと正しい結果を導いたりします。

 

 

また『調査対象を選ぶ』時に主観が入る

これを避けるやり方もあって

 

 

例えば「機械的にランダムで電話番号を選ぶ」

「機械的にランダムで住所を選択する」

\mathrm{Random \,\, Digit \,\, Dialing}\mathrm{RDD} 法など)

 

 

こういうやり方をとれば

『調査対象を選ぶ』時に主観の介入を防げます。

 

 

 

 

 

以上、他にもありますが

これらが主な「有意抽出法」になります。

 

 

これをきちんと覚えておくと

信憑性の低い情報を判別する

ということができるようになったりするので

 

 

数字に騙されたくないと思っているのなら

必ず覚えておきましょう。

 

 

 


 


無作為抽出 Random Sampling

 

|| 狙って無作為(良い感じ)にデータをとる

「1つ1つは同じ確率でサンプリングできる」

この『仮定』の上でサンプルをとるやり方。

 

\begin{array}{llllll} \displaystyle \underbrace{S_1,S_2,S_3,\cdots,S_n}_{n} \end{array}

 

\begin{array}{llllll} \displaystyle P(S_k)&=&\displaystyle\frac{1}{n} \end{array}

 

まあつまるところ

「なんとなく当たり前に思える」 ↑ の前提を元にして

 

 

なんらかの方法を使って

『ランダムになるように』サンプリングする。

 

 

これが『無作為抽出』と呼ばれるもので

感覚的には「くじ引き」「サイコロ」とか

その辺りの応用的な話になります。

 

 

 

 

 

根拠となる確率

 

無作為抽出における

『サンプルが選ばれる確率』は「仮定」です。

 

\begin{array}{llllll} \displaystyle \underbrace{S_1,S_2,S_3,\cdots,S_n}_{n} \end{array}

 

\begin{array}{llllll} \displaystyle P(S_k)&=&\displaystyle\frac{1}{n} \end{array}

 

「現実的にもその可能性が高い」と

そう認められる必要がありますが

 

\begin{array}{llllll} \displaystyle P_{\mathrm{real}}(S_k)&≠&\displaystyle\frac{1}{n} \end{array}

 

これ自体はあくまで「仮定」なので

この前提が間違っている場合

正しい結果を導けない、という事態はあり得ます。

 

 

 

 

 

だいたい正しい仮定

 

無作為抽出の「確率の仮定」

これ自体に間違いがある可能性はある。

 

\begin{array}{llllll} \displaystyle P_{\mathrm{real}}(S_k)&≠&\displaystyle\frac{1}{n}\end{array}

 

その事実は常に否定できませんが、

ほとんどの場合、これが間違いである可能性は低いです。

 

\begin{array}{llllll} \displaystyle P(S_n)&=&\displaystyle\frac{1}{n}\end{array}

 

例えば「大勢の中から誰かを選ぶ」時

この確率は人数分の1としても特に問題がありません。

 

 

もちろん「作為」が介入し

「選ばれる可能性が高い誰か」

こういったものが存在する可能性は否定できませんが

 

\begin{array}{llllll} \displaystyle P_{\mathrm{real}}(S_k)&≒&\displaystyle\frac{1}{n}\end{array}

 

そのような『偏りが起きないようにする』

これもまた「無作為抽出の工程に必要」なので

結果的に、確率は限りなくこの値に近づくことになります。

 

 


 

 

単純抽出 Simple Random Sampling

 

|| 乱数生成器で得た乱数を使う方法

「乱数表」を使って「標本(データ)」を選ぶ方法。

 

\begin{array}{llllll} \displaystyle 61,&7,&22,&7999,&3,&827,&... \end{array}

 

まあ要は「ランダム性」を利用したやり方です。

なので、当然ですがこれは『無作為』と言えます。

 

 

とはいえ「ランダム」である以上

どうしても極低確率で偏りは生じてしまいます。

 

 

 

 

 

乱数 Random Number

 

「ランダムな数列」の『要素』のこと。

 

\begin{array}{llllll} \displaystyle 175,11,0,767,2,7,2222,351,11,... \end{array}

 

より厳密には

「漸化式 a_{n+1} 」が『作れない』

「関数 a_{n+1}=f(a_n) 」で『定義できない』

 

\begin{array}{cccccccccccc} \displaystyle a_1&a_2&a_3&a_4&\cdots&a_n \\ \\ 7224&185&0&11101&\cdots&? \end{array}

 

こういう「数列」を『乱数列』と言い

その「要素」を『乱数』と言います。

 

 

 

 

 

乱数生成器 Randomizer

 

『乱数列』を構築する方法は

主に2通りの方法があります。

 

\begin{array}{llllll} \displaystyle \mathrm{Random}_{\mathrm{Real}}&&→&&\mathrm{Random}_{\mathrm{True}} \\ \\ \mathrm{Random}_{\mathrm{generate}}&&→&&\mathrm{Random}_{\mathrm{pseudo}} \end{array}

 

1つは「真のランダム性」と言えるもの

もう1つは「予測困難な生成値」を利用したもの

 

 

それぞれ問題点はありますが

基本的にどちらもよく利用されているものになります。

 

 

 

 

 

ハードウェア乱数生成器

 

これは『実際に計測』して得られる値のことで

「真の乱数」なんて呼ばれたりもします。

 

\begin{array}{llllll} \displaystyle P(x)&=&\displaystyle\frac{1}{n} \end{array}

 

主に「サイコロ」「熱雑音」「宇宙線」などの

『ランダムな物理現象』から得られる値で

 

\begin{array}{llllll} \displaystyle x_{\mathrm{measure}}&&→&&x_{\mathrm{random}} \end{array}

 

「ハードウェア乱数生成器」は

この「計測値」から『乱数列』を生成します。

 

 

 

でまあそんな感じなので

この乱数列には「再現性」がありません。

 

 

なので状況を再現したいと考えている場合

この乱数列を使うことはできません。

 

 

 

 

 

疑似乱数列

 

『予測困難なほど複雑』な

「計算できる値」から得られる乱数列のこと。

 

\begin{array}{llllll} \displaystyle \mathrm{Complex}&&→&&\mathrm{Random} \end{array}

 

これはいろんなやり方があって

たぶん、作ろうと思えばやり方は無限に存在します。

 

\begin{array}{llllll} \displaystyle 26171^2&&→&&49212 \\ \\ 51^3&&→&&3265 \end{array}

 

古典的には「平方採中法」というものがあって

 

\begin{array}{llllll} \displaystyle 5127^2&=&26\textcolor{pink}{2861}29 &&→&&2861 \\ \\ 3757^2&=&14\textcolor{pink}{1150}49 &&→&&1150 \end{array}

 

この他には「線形合同法」なんかが有名でしょうか。

 

\begin{array}{llllll} \displaystyle m&>&a,b \\ \\ a&>&0 \\ \\ b&≥&0 \end{array}

 

\begin{array}{llllll} \displaystyle x_{n+1}&=&(ax_n+b) &\mathrm{mod}&m \end{array}

 

これの x_0 は「種(シード)」と呼ばれ

a,b,m は任意に定められます。

 

\begin{array}{llllll} \displaystyle m&=&17 \\ \\ a&=&7 \\ \\ b&=&3 \end{array}

 

\begin{array}{llllll} x_0&=&5 \\ \\ \displaystyle x_{1}&=&(7x_0+3) &\mathrm{mod}&17&&=&&4 \\ \\ \displaystyle x_{2}&=&(7x_1+3) &\mathrm{mod}&17&&=&&14 \\ \\ \displaystyle x_{3}&=&(7x_2+3) &\mathrm{mod}&17&&=&&16 \\ \\ \displaystyle x_{4}&=&(7x_3+3) &\mathrm{mod}&17&&=&&13 \\ \\ &&\vdots \end{array}

 

実際にはこんな感じになります。

 

 

 

現在ではこれらの持つ多くの欠点を克服した

「メルセンヌ・ツイスタ」なんかが有名で

 

\begin{array}{llllll} \displaystyle 011||111&=&011111 \\ \\ 000||111&=&000111 \end{array}

 

n,m,r,w,a は任意に設定

 

\begin{array}{llllll} \displaystyle x_{k+n}&=&x_{k+m}\,\,\mathrm{xor}\,\,\Bigl( (x_{k}^{\mathrm{upper} \,\,r\,\, \mathrm{bit}}||x_{k+1}^{\mathrm{lower} \,\,r-w\,\, \mathrm{bit}})a \Bigr) \end{array}

 

\begin{array}{llllll} \displaystyle \mathrm{Tempering}(x_{k+n})\{ \\ \\ &x_{k+n} ← \Bigl(x_{k+n} \,\, \mathrm{xor}\,\,\mathrm{Shift}(x_{k+n})\,\,\mathrm{and}\,\,\mathrm{word} \Bigr)\\ \\ &x_{k+n} ← \Bigl(x_{k+n} \,\, \mathrm{xor}\,\,\mathrm{Shift}(x_{k+n})\Bigr) \\ \\ &\mathrm{return} \,\, x_{k+n} \\ \\ \} \end{array}

 

他にも「初期値敏感性」の利用や

「一様分布」「正規分布」の利用などなど

よりランダム性が保証されたものが存在していますが

 

 

『複雑な計算』から「乱数列」を形成する

この考え方自体は一貫していて

全ての方法はこれに則って考案されています。

 

 

 

 

 

ランダムにならない可能性

 

これを使うとほぼ無作為になりますが

「一定数以上」取り出さない場合

偏りが出る確率は高まります。

 

\begin{array}{llllll} \displaystyle 10^8&&→&&10^3 &&\displaystyle\frac{1}{10^5} \\ \\ 10^9&&→&&10^4 &&\displaystyle\frac{1}{10^5}\end{array}

 

例えば全体からちょっとしか取れない時

乱数を使うだけでは満遍なくとれるとは限りません。

 

\begin{array}{llllll} \displaystyle 4,8,33,8,2,9,...&&→&&4,2,9 \end{array}

 

ランダムである以上これはしょうがないことで

こういった点で、あらゆる手法には課題が存在しています。

 

 


 

 

系統抽出法 Systematic Sampling

 

|| 単純抽出とはまた異なる無作為

「番号を付けて等間隔に取ってく」やり方。

 

\begin{array}{llllll} x_1,x_2,x_3,x_4,...&&→&&x_n,x_{n+i},x_{n+2i},x_{n+3i},... \\ \\ \displaystyle 7,2,99,\textcolor{pink}{3},8,1,4,\textcolor{pink}{44},...&&→&&3,44,... \end{array}

 

まあ要は「たくさんある」状態から

『全体を圧縮する』ような感じのやり方で

 

\begin{array}{llllll} \displaystyle x_1,x_2,x_3,x_4,... \\ \\ x_n,x_{n+i},x_{n+2i},x_{n+3i},... \end{array}

 

これを使うことによって

抽出するデータにランダム性を持たせながら

「データ量」を削減することができたりします。

 

 

 

 

 

ランダムにならない可能性

 

『並び』に「規則性・周期性」がある場合

このやり方では偏りが生じてしまいます。

 

\begin{array}{llllll} \displaystyle 1,2,33,4,5,66,7,8,99,...&&→&&33,66,99,... \end{array}

 

なので『データの並び』に「周期」が見られる場合は

このやり方を選ばないようにしなければなりません。

 

 

 

 

 

サンプル数を減らす工夫

 

以上が最も単純な『無作為抽出法』なんですが

 

\begin{array}{llllll} \displaystyle a_{n+1}&=&? \\ \\ x_k&=&x_{a+ni} \end{array}

 

これだけではまだ

「サンプルをとる量」についての言及がありません。

 

 

「正確な結論を得たい」のであれば

それこそどこまでも多くとる必要がありますが

 

 

「サンプルを集める労力」は無限ではありません。

特に『時間』や『体力』は限られていますから

できるだけ少ない量で正確性を担保したいです。

 

 


 

 

多段抽出法 Multi-Stage Sampling

 

「グループ分け」「選ぶ」の『繰り返し』

 

\begin{array}{llllll} \displaystyle 全体&A市&X地域&数人 \\ \\ &&Y地域&数人 \\ \\ &B市&Z地域&数人 \\ \\ &&W地域&数人 \end{array}

 

『属性(地域など)』でグループを作った後

無作為抽出を何回かに分けて行うやり方。

 

 

見てわかる通り

これで「ある程度のランダム性」を担保しつつ

「サンプルの量」を減らすことができます。

 

 

選ぶグループによっては偏る可能性がありますが

均等になるのは感覚的に分かるかと。

 

 


 

 

集落抽出法 Cluster Sampling

 

『分けて』から「その中のどれかを選ぶ」やり方。

 

\begin{array}{llllll} \displaystyle \mathrm{All}&\mathrm{group} \,\, A& \\ \\ &\mathrm{group} \,\, B&\mathrm{Select} \\ \\ &\mathrm{group} \,\, C \end{array}

 

「データ全体」の『分割』は「なんらかの集まり」から。

「分割されたグループ」の選択は無作為に行われます。

 

\begin{array}{llllll} \displaystyle 全体&A中学 \\ \\ &B中学 \\ \\ &C中学 \end{array}

 

グループの中身によって偏ることはありますが

こうすればデータ量を削減できるのは明らかでしょう。

 

 


 

 

層化抽出 Stratified Sampling

 

『層(属性)に分けて』から

「そこから一定数ずつ取り出す」感じのやり方。

 

\begin{array}{llllll} \displaystyle 全体&男 &7 &&700 \\ \\ &女&1 &&100 \end{array}

 

『属性(地域など)』で分ける

この点は「多段」と同様ですが

これは「サンプル数の構成比」を使うやり方になります。

 

 

まあ要は「多段」ではなく「一段」の中で

より「ランダム性」を担保する感じのやり方です。

 

 

 

『比率が分かっている』場合は「比例配分法」

『サンプル数を最適に配分する』場合は「最適配分法」

なんて呼ばれたりします。

 

 

 

 

 


まとめ

 

『無作為』であるということは

「同じ確率でサンプリングできる」

これを『仮定できる』ということ。

 

\begin{array}{llllll} \displaystyle P(S_n)&=&\displaystyle\frac{1}{n}\end{array}

 

この上での『選択』には「乱数表」がよく用いられる。

 

 

 

 

 

 

単純抽出法

 

ランダム性を利用する。

 

\begin{array}{llllll} \displaystyle x_{\mathrm{measure}}&&→&&x_{\mathrm{random}} \\ \\ \mathrm{Complex}&&→&&\mathrm{Random} \end{array}

 

『現実のランダム性』を利用する

「ハードウェア乱数生成器」

 

\begin{array}{llllll} \displaystyle \displaystyle x_{\mathrm{measure}}&&→&&x_{\mathrm{random}} \end{array}

 

『複雑性』を利用する

「疑似乱数生成器」がある。

 

\begin{array}{llllll} \displaystyle x_{k+n}&=&x_{k+m}\,\,\mathrm{xor}\,\,\Bigl( (x_{k}^{\mathrm{upper} \,\,r\,\, \mathrm{bit}}||x_{k+1}^{\mathrm{lower} \,\,r-w\,\, \mathrm{bit}})a \Bigr) \end{array}

 

\begin{array}{llllll} \displaystyle \mathrm{Tempering}(x_{k+n})\{ \\ \\ &x_{k+n} ← \Bigl(x_{k+n} \,\, \mathrm{xor}\,\,\mathrm{Shift}(x_{k+n})\,\,\mathrm{and}\,\,\mathrm{word} \Bigr)\\ \\ &x_{k+n} ← \Bigl(x_{k+n} \,\, \mathrm{xor}\,\,\mathrm{Shift}(x_{k+n})\Bigr) \\ \\ &\mathrm{return} \,\, x_{k+n} \\ \\ \} \end{array}

 

メルセンヌ・ツイスタの『調律 \mathrm{Tempering} 』は

厳密には ↑ のやり方とは少し異なる。

 

 

 

 

 

系統抽出法

 

主観が介在しない方法

「等間隔にとって無作為を実現」

 

\begin{array}{llllll} \displaystyle x_1,x_2,x_3,x_4,... \\ \\ x_n,x_{n+i},x_{n+2i},x_{n+3i},... \end{array}

 

サンプルの並びに「周期性」「規則性」があると

「偏り」が出てしまう。

 

 

 

 

 

ランダム性を担保しつつサンプル数を減らす

 

・多段抽出法

「グループ分け」して『無作為に選ぶ』のを繰り返す。

グループに偏りがあると全体がそれに引っ張られる

 

 

 

・集落抽出法

「グループ分け」して『グループを無策に選択』する。

グループの中身によっては「偏り」が生じる。

 

 

・層別抽出法

「属性でグループ分け」して『比率』に合わせて選ぶ。

層(属性)を決めるのが難しいことがある。