番外編 - 07年度春学期

分散分析を使うことを覚えよう

世の中には、バカの一つ覚え、という言葉がある。だいたいは悪い意味で使われるのだが、心理学で実験を行うには、このバカの一つ覚えが大事なのではないか、と思う。たとえバカの一つ覚えと言われても、きちんとした見通しの上でその実験を計画し、データを取得し、分析のまな板に乗せることは、面白みには欠けるかもしれないが、すぐれた研究の方法だろう。
我々は目新しい分析手法を使うために実験を行うのでもないし、ましてや、面白い分析をしたいがためにデータを取る訳でもない。心理学の実験をおこなうということの目標は、人間の行動について理解を深めることにある。そのために確実に役立つ武器を一つだけ選ぶとしたら、恐らくその活用範囲がもっとも広い分析手法が、分散分析だ。そして、この分散分析とは、実験計画と表裏一体の関係をなす分析手法である。
実験計画を立てるということは、基本的には分散分析を利用した分析を行うということであり、分散分析を利用するということは、論文の記述についてもある程度までは見通しが付く、ということでもある。綿密な実験計画を立て、分散分析をきちんと行い、結果がきちんと出た研究は、つまりとても見通しがよく、画一的かもしれないが、力強い研究だ。分散分析を用いた研究には論文の結果記述に、ある種の型がある。その型を使いこなせば、初学者であっても論文らしい文章になるといえるだろう。だから、ここでその型を身につけてしまおう。面白みに欠ける? 何を言っているんだ。面白みは分析の手法に求めるものではない。分析すべき内容に求めるべきものだ。画一的で面白みに欠ける分析だからといって、つまらない研究という訳ではない。断じてない。むしろ、内容の面白さがストレートに伝わる。

ともあれ、分散分析は心理学実験の分析においては本当によく使われる手法だ。代表的なものといっていいだろう。しかし、使いこなすためには、実験計画というものをきちんとしなくてはならない。

これからこの講義では、分散分析と実験計画法を扱う。心理学実験においては、この二つは表裏一体で、どちらか一方だけを使う、ということはあり得ない。まずは、実験計画法の話からしていくことになるが、その部分も分散分析の一部だと思いながら読み進めて欲しい。

データは信号(Signal)とノイズ(Noise)に分かれる

オーディオ製品などのレビューやカタログで、よく「S/N比(Signal to Noise ratio)」という用語が出てくる。たとえば、オーディオのボリュームを上げると、今まで聞こえなかった雑音が聞こえてくることがあるだろう。これは、信号が大きくなると同時に雑音も大きくなったためだ。信号に対するノイズの割合が低ければ(S/N比が高ければ)、よりピュアなデータが伝達される。オーディオ機器の分野で言い表すなら、耳障りな雑音が聞こえづらいということになる。この比率は基本的に危機によって一定である。S/N比が高い機器は、低い機器よりも高額になることはいうまでもないだろう。

この関係を式で書くと、下のようになる。

  • [全体のデータ]=[信号]+[ノイズ]


さて、この考え方を心理学の実験で取得されるデータに当てはめて考えてみよう。心理学で取り扱われるデータは、人間を対象にしたものであることが多い(一部動物によるものもあるが、生物であることは共通だ)。人間をはじめとする生物の行動は、機械などと比べると、ばらつきが大きい。たとえば気分なんてお天気で変わるものだ。従って、取得したデータにばらつきがあることを前提にしてものごとを考えねばならない。

剰余変数を統制するのは大事だよ、という話

人間を扱う学問分野では、誤差がつきものだ。そこで心理学で実験を行う際には、実験計画法という作法を知っておく必要がある。実験計画法というのは、実験を行ったときに、良いデータを取るための知恵のようなものだ。
我々がデータを取るときには、全体をAとB、というように群に分ける。こうやってできた群を比較し、その間にある差に注目することで、現象を知ろうという訳だ。もちろんAとBだけではない場合だってある。A, B, C, D, E, F といったように、6つの群を作る場合だってある。そしてこのとき、分けられた群というのは、等質になるようにしなくてはならない。たとえば実験室の光の量が違っていたり、室温が違っていたり、実験に使う道具が違うものだったり、実験に関係する様々な要素を一定にしないといけない。なぜなら、群から得られるそれぞれのデータを問題にするとき、我々は、「群に対してどのように手を加えたときに、どんな変化が現れるか」に興味がある訳で、その他の事柄によって様々な影響が出てもらっては困るのだ。だから環境は等質になるようにしなくてはいけない。
実験に複数の人を被験者として使う場合も同じだ。群によって人数が違っていたり、平均年齢が大きく違っていたり、性別が偏っていたり、場合によっては出身国が偏っていたりしてはいけない。AからEまでの群は大学生で、F群は幼稚園児です、なんて分け方をしたら、実験の結果がそれだけで違ってきてしまうだろう。だから、そういうところはちゃんと気を遣わないといけない。
こうやって、群はきちんと統制しないといけない。なんでそこまでして等質にしたがるのか。繰り返しになるが、「調べたいと思っている事柄以外にも、何か影響がありそうなことが絡んでいてはいけない」と思うからだ。調べたいと思っている事柄よりも、もっと影響力がある事柄があったりしたら(つまり、これはS/N比が低いということだ)、比較も何も成り立たなくなってしまう。
我々は、実験においては、何か要因を操作して、その結果どのような現象が起きるかを観察する。この操作される要素を「独立変数」、その結果測定される反応などを「従属変数」と呼ぶ。そして、上の例のように、従属変数に何らかの影響を及ぼしているけど、操作できてないものを「剰余変数」と呼んでいる。独立変数と剰余変数がきちんと分離できていないと、剰余変数の影響も従属変数に反映されてしまう。これでは独立変数の効果なのか、それとも剰余変数の効果なのか、よくわからなくなってしまう。だからきちんとした実験のための計画が必要なのだ。剰余変数を可能な限り除去することが、実験のための第一歩なのだ。
あと、実験をしている最中にも、色々と剰余変数が出てきてしまう。たとえば繰り返し繰り返し実験に参加してもらったりすると、繰り返すことで被験者が実験に慣れてしまったり、疲れてしまったりということも起きる。ここらへんもきちんと操作しないといけない。それには、乱数表を使った試行順序の無作為化とか、カウンターバランスという手法を使ったりする。また心理学では、実験をする際には、実験群と統制群という二つの群を設定することが多い(統制群法という手法である)。統制群をもうけることはとても大事だ。そして実験群と統制群は、できるだけ等質になるようにしないといけない。こちらも乱数表を使った無作為化や、マッチングといった手法が用いられる。
ただ、いくら統制をしても統制しきれないところがある。それは被験者の生い立ちであったり、遺伝的なものであったり、実験を行う日時だったりする(我々は天文的な要因まで考慮に入れることは現実的には不可能だ)。これを「偶然誤差」と呼ぶ。
しつこく繰り返したが、心理学実験では、問題となっている用件以外は全て等質だよ、という仮定で話が進んでいく。そして、等質じゃない部分を「誤差」の中に押し込んでいく。だが、誤差は偶然発生する誤差以外は可能な限り排除されねばならない。そのための手法が「実験計画」なのだ。
まとめよう。全てのデータは以下のような性質を持つ。

  • [従属変数の変化]=[独立変数操作による変化]+[誤差による変化]

これを、実験計画法では、

  • [データの総変化]=[計画的変化分]+[無計画的変化分]

と考え、分散分析では、

  • [データの全分散]=[条件の効果]+[偶然誤差]

と考える。ここでは簡単に書いてあるが、実際には実験計画に基づく様々なタイプの分散分析がある。

分散分析入門…の前に

分散分析の概念を、最も単純ないい表し方をすると、それは「データの全分散」を「条件の効果」と「偶然誤差」に分けた上で、「条件の効果」が「偶然誤差」よりも大きいかどうかを判断する、というものだ。

一言でそう説明したとしても、実際にはもっと複雑な手続きが含まれるし、この一言だけでは混乱する人もいるはずだ(そしてそれはその人が悪い訳ではない)。ただ、これから先には、手続きの説明のために頻出する専門用語がいくつかあるので、それを以下にまとめておくことにしよう。

独立変数(independent variables)と従属変数(dependent variables)

既に出て来た用語だが、独立変数とは、研究者が操作する要素であり、従属変数はその結果求められたデータそのものである。研究を行う前に、「この要素をいじったらどういう結果が出てきそうか」というあたりをつけておくと研究がスムースに進む。ちなみに、あたりをつけるためには、過去の研究に当たるのが最も効率が良い。そうでなければ日常その現象に対してどの程度の観察をしているかだ。

要因(factors)

要因というのは、独立変数に影響を与える原因のことをいう。何も実験条件を付け加えなければ、独立変数に影響を与えるのは偶然だけだ(ただし、偶然要因という言葉は聞いたことがない)。心理学の分野では、要因というのは研究者の設定する実験要因のことを指す。

水準(levels)

水準は要因を構成する条件のことだ。1要因は必ず2水準以上から構成される(でないと比較ができない)。
なお、1要因の実験計画では、水準の数が条件の数そのものだ。2要因以上であれば、それぞれの要因における水準数を全て掛け合わせたものが条件数になる。


実験計画と分散分析のタイプ

実験計画と分散分析が密接な関係にあることはおぼろげながら理解してもらえたと思う。なお、この授業では、以下のようなタイプの分散分析を例として実習を行う。

  • 1要因被験者間計画
  • 1要因被験者内計画
  • 2要因被験者間計画
  • 2要因被験者内計画
  • 2要因混合計画


もちろん3要因以上の計画もあるが、ここでは取り扱わない(手計算ではしんどい、という理由もある)。さて、リストに注目してもらうと分かると思うが、「被験者間計画」「被験者内計画」「混合計画」という単語があると思う。心理学では人間を取り扱うので、実験の対象は人間であることが多い。実験に参加し、データを提供してくれるのは「被験者(subject)」だ。

それぞれの記述の意味は以下の通りである。

  • 被験者内計画(within subject)
    • 被験者が全ての条件を経験するような実験計画をいう。
  • 被験者間計画(between subject)
    • 全ての実験条件で被験者が異なるような実験計画をいう。
  • 混合計画(mixed design)
    • 被験者内計画と被験者間計画との折衷的な実験計画をいう。もちろん2要因以上の計画でなければ混合計画は存在しない。


まずはこれらの実験計画の種類を見分けられるようになることが肝心である。

参考資料

pdfですので、右クリックでファイルに保存してください。



R入門

それじゃ概念的なところがわかったら、実際に統計ソフトを使って検定をおこなってみよう。世の中にはいくつも統計パッケージと呼ばれるソフトがあるけど、無料で使用出来て、かつ信頼度が高いソフトに、「R」というものがあります。誤解を恐れずにいえば、Rはちょっと便利な電卓のようなものです。ただ、使い方を知らないとどう扱って良いか全く分からない電卓です。だから、初学者の人は、しばらくはここに書いてあることしか出来ないでしょう。でもそれでいいんです。出来ることは山ほどあって、必要な人はそれらの使い方を自分で探すでしょうし、そうでなければ必要ないということでしょうから。逆に必要になった時には、どのように情報の糸をたぐっていくか、ということが大事になるでしょう。

この文書では、最低限の操作方法と、基本的な統計情報を得るための方法、そして基本的ないくつかの検定手法を記すことにします。たった数回の講義ですので、まずはここまでできれば十分でしょう。

インストールと起動

色々な本に載ってますので、詳しくは説明しません。
大学などで既にインストールされてる場合にはさらにインストールする必要はありません。
とりあえずR: The R Project for Statistical ComputingからCRANのミラーをたぐって、インストーラをダウンロードしてインストールしてください。日本にあるミラーだと

あたりでしょうか。とりあえずインストールしたらアイコンをダブルクリックすればインストールされます。Windows版で日本語対応にするなら、「Version for East Asian Languages」をチェックしてからインストールしないとだめかも。

インストールが終わって起動すると、R Console というウィンドウが開きます。これは利用者とRとを仲立ちしてくれるウィンドウです。Rは何も気の利いたことをしてくれませんから、いちいち命令を下す必要があります。

起動直後には、ウィンドウ下端に

>

というマークが出ていると思います。これをプロンプトといいます。Rが「何か入力してよ」って待っている合図です。

簡単な演算

それでは四則演算くらいから始めましょうか。

>の後で、1+1と書いてリターンキーを押してください。

>1+1
[1]2

と出ましたか? もうちょっと複雑な計算もできますよ。

>

代入

>x <- 2
>x
[1]2

プログラミングを少しかじったことがある人にとっては、変数に値を代入する、ということについておぼろげながらも理解があると思います。上の式は、xという変数に2という値を代入することを示します。「<-」という矢印が代入の方向を示しています。
変数とは何かというと、そうですねぇ。とりあえず「箱」を想像してください。箱には名前がつけてあり、それがxとかyであると考えた方が分かりやすいかな? 箱には数字や文字列などを入れることができます。ただ、変数の名前は何でもつけられる訳ではなくて、システムの方で予約されているものと、数字で始まる名前は付けられません。

>x <- "Hello!"
>x
[1] "Hello!"

文字列を入力する時には、引用符で囲ってあげてくださいね。

データの入力

基本等計量の算出

いくつかの統計的手法を利用してみよう