Up

信号検出理論

Signal Detection Theory (SDT)

 

 信号検出理論のデモ実験プログラムとそのデータ分析用プログラムを用意した。信号検出理論は、ノイズの中に含まれる弱いシグナルの検出についての理論として提案されたが、広く2刺激の弁別に対して用いられる(岡本「計量心理学」、2006、第3章参照)。ここでは、ランダムに一様分布するドット・パターンをノイズとし、その上に正規分布する少数のドット・パターンをシグナルとして用いる。刺激パターンの例は、デモ実験用プログラムSDT_Exp.exeを起動することにより提示することができる。プログラム名をクリックしてダウンロード・実行すると、図1のフォームが表示される。

図1

 

Noise ->」および「Signal ->」の右のテキストボックス内の数字はノイズ刺激におけるドット(一様分布)の数およびシグナルとして追加されるドット(正規分布)の数を表している。いま、分かりやすくするために、シグナルとして追加するドット数を300に設定して(図2)「Show samples」ボタンをクリックすると、図3のフォームが提示される。

図2

 

図3

 

図3のフォームの左側にノイズのみのパターン、右側にシグナルを追加したパターンが示されている。左と右では、ノイズパターンのドットの配置が異なることに注意。これは、ノイズパターンを作成するときの乱数が、左と右とで異なる系列が用いられているからである。図2のフォームの「Show samples」ボタンを再度クリックすると、別のサンプルが表示される。

ノイズとシグナルのドット数を適当に設定した後、「GO」ボタン(図1)をクリックすると実験が始まる。図1の「GO」ボタンのクリックで、図4のフォームが表示される。試行数は全部で60試行あり、その第1試行目であることが表示されている。

図4

 

図4の「GO」ボタンのクリックで、図5のようにドットパターンが表示される。

図5

 

その後、すぐに図6のフォームになる。「シグナルあり」、「たぶん、シグナルあり」、「たぶん、ノイズのみ」、「ノイズのみ」のボタンがイネーブルになっている。

図6

 

提示されたパターンがシグナルを含むものであると思うときは「シグナルあり」ボタンを、よくわからないが多分ノイズのみであろうと思うときは「たぶん、ノイズのみ」というように、提示パターンに対してもっともよくあてはまる判断を表すボタンをクリックする。判断のボタンをクリックすると、提示されたパターンが「シグナルを含むもの」であったか、「ノイズのみ」のものであったか、正解が図7のように示される(図7)。

図7

 

図7の画面の後、図4のフォーム(試行数は増える)が提示される。図4から図7までの試行を60試行繰り返して実験が終了すると、図8のフォームが表示される。

 

図8

 

実験についてのコメントなどをリッチ・テキスト・ボックス内に記入した後「Close」ボタンをクリックすると、図9の出力ファイル名設定用ダイアログボックスが表示される。

図9

 

適当なファイル名(テキストファイル名)を設定して「保存」ボタンをクリックすると、実験データがファイルに書き出されてプログラムの終了となる。データの書き出されたファイルは、次に説明するデータ分析用プログラムで分析することができる。

プログラムのソース・コード・ファイルなどを圧縮ファイルSDT_Exp.zipとしてまとめた。圧縮ファイル名SDT_Exp.zipをクリックして、ダウンロードすることができる。ダウンロードしたファイルは、マウスの右ボタンクリックで解凍して、Visual Studio 2013で開くことができる。

Visual C++プログラミングの解説を<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房>で行っている。

 

 

データ分析用プログラム

 

 上の図9において指定した出力ファイルのデータは、プログラムSDT_Anal_4Cat.exeによって分析することができる。分析で用いるモデルは、本書「心理学データ分析と測定」の「第12章 感覚と判断:信号検出理論」で説明されているものであり、ベイズ的分析法を適用している。モデルを簡単に図示すると図10で表される。

図10

 

図中、上の分布がノイズのみの場合の感覚強度の分布(平均、分散の正規分布)、下の分布がシグナルをふくむ場合の感覚強度の分布(平均、分散の正規分布)を表す。感覚強度の尺度(次元)は、原点と単位を

となるように設定する。2つの分布の平均値の差は

と表す。

 感覚強度が、カテゴリ境界値の間の値であるとき、反応としてカテゴリiが選択されるとする。ここで、カテゴリ0は「ノイズのみ」、・・・、カテゴリ3は「シグナルあり」を表す。ただし、とする。

 上のモデルに対して、パラメタの値をベイズ的に求めているが、ベイズ的分析法については、本書「心理学データ分析と測定」の「付録C ベイズ的分析法」を参照されたい。分析を行うためのプログラムSDT_Anal_4Cat.exeをクリックしてダウンロード・実行すると、図11のフォームが表示される。

図11

 

「GO」ボタンのクリックで、入力データファイル名の設定を求める図12のフォームが表示される。

図12

 

入力データファイルは、上のSDT実験のプログラムの出力形式のものを読み込む。これは、以下のような形式になっている。

 

=====================================

n_noise = 500     n_signal = 30

 

 Comments:

 Good Bye !

          trial       Stimulus       Response

              1              S              y

              2              S              y

              3              N              n

              4              S              y

              5              N              N

              6              N              y

/  第1ブロック(練習試行)終了

              7              N              N

              8              N              N

              9              S              y

             10              S              y

             11              S              Y

             12              N              n

               ・

               ・

               ・

             52              S              Y

             53              N              y

             54              N              N

             55              S              y

             56              S              n

             57              N              N

             58              N              Y

             59              N              y

             60              S              y

/

===================================

 

最初の/で始まる行の次の行から、次の/で始まる行の前の行までがデータとして読み込まれる。各行は、

              試行数                  提示刺激                            反応

という形式でデータが書かれている。提示刺激は、Sがシグナルあり、Nがノイズのみを表す。反応はY, y, n, Nが「シグナルあり」、「たぶん、シグナルあり」、「たぶん、ノイズのみ」、「ノイズのみ」を表している。/が第6試行の次に置かれているのは、最初の6試行を練習試行として扱っているからである。

 入力データファイル名の設定後、計算結果を出力するファイル名の設定ダイアログボックスが提示される(図13)。

図13

 

出力は、テキスト・ファイルとして書き出される。出力ファイル名の設定後、ディスプレイ全体を占めるフォームが提示されて計算(MCMC)が始まり、計算途中の経過がフォームの左側のリッチ・テキスト・ボックス内に表示される(図14)。MCMCが終了すると、の事後分布とそのMAP推定値および95%HPD区間が表示される。ここでMAP推定値とは、maximum a posteriori 推定値のことであり、これは事後分布(posterior distribution)のモードのことである。MAP推定値を用いることについては、<岡本安晴「上下法データのベイズ的分析」、基礎心理学研究、20114455>参照。

図14

 

事前分布が十分に広い範囲で一様分布であるとき、MAP推定値は最尤推定値と一致する。上のプログラムでは、事前分布として十分に広い範囲での一様分布が採用されている。

図14の左上には、図15のようにボタンが並んでいる。「d’」ボタンをクリックすると図14のの事後分布が表示される。

図15

 

sd(Signal)」ボタンのクリックで、「シグナルあり」の場合の感覚量の分布のパラメータの事後分布が表示される(図16)。

図16

 

ki」ボタンのクリックで、4つの判断の境界値(図10参照)の事後分布が表示される(図17)。

図17

 

3つのボタン「d'」「sd(signal)」「ki」のクリック後、「ROC」ボタンがイネーブルになる。「ROC」ボタンをクリックすると、ROC曲線とデータ値が表示される(図18)。

図18

 

ROC曲線は、SDTのパラメタのMAP推定値によって描かれている。ROC曲線上の小正方形は、に対応する位置である。データ値は、小円で描かれている。

Save」ボタンのクリックで、そのときに描画されている画面をファイルに保存することができる。ファイルは*.bmpファイルなので、ワードやペイントなどで読み込んで、利用することができる。

Close」ボタンのクリックで、プログラムの実行終了となる。実行終了時に、出力ファイルの保存を知らせるメッセージボックスが表示される(図19)。

図19

 

出力ファイルはテキストファイルであり、エディタで開くとファイルの後半に以下のように事後分布の情報が出力されている。

 

Posterior distribution of d'...

95% CI = [0.78978, 2.55331]

Median = 1.52425

MAP (Mod) = 1.43850

 

Posterior distribution of sigma (of signal)...

95% CI = [0.62599, 1.96293]

Median = 1.17846

MAP (Mod) = 1.08850

 

Posterior distribution of k[0]...

  95% CI = [-0.80756, 0.14514]

  Median = -0.33635

  MAP (Mod) = -0.33650

 

Posterior distribution of k[1]...

  95% CI = [-0.09557, 0.87350]

  Median = 0.40711

  MAP (Mod) = 0.43050

 

Posterior distribution of k[2]...

  95% CI = [1.47974, 3.59927]

  Median = 2.43941

  MAP (Mod) = 2.34150

 

これらの出力は、対応するボタンをクリックしたときの計算において書き出されたものである。

プログラムのソースコードファイルなどは、圧縮ファイルSDT_Anal_4Cat.zipとしてまとめた。圧縮ファイル名SDT_Anal_4Cat.zipをクリックしてダウンロードすることができる。ダウンロードした圧縮ファイルは、マウスの右ボタンクリックなどで解凍することができ、解凍したプログラム・ファイルはVisual Studio 2013で開くことができる。

なお、シグナル刺激の分散を1とおいた等分散モデル()の場合の分析プログラムSDT_Anal_4Cat_OneSD.exeも用意した。プログラムの使い方は、上のものと同様である。このプログラムを用いて、上の説明におけるものと同じデータを分析すると、図20のような結果を得る。

図20

図18と比べて、図20では「」であることが「Sgm(S) = 1.00 (Fixed)」と示されている。

ソースコードなどをまとめた圧縮ファイルSDT_Anal_4Cat_OneSD.zipも用意した。

 

 SDTにおけるベイズ的分析については、<Okamoto, Y. (2011). “Bayesian Data Analysis in SDT”>で説明している。

 

Visual C++については、岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房で説明している。

 

 

Up