前口上 | 目次 | 第1章 | 第2章 | 第3章 | 第4章 | 第5章 | 第6章 | 第7章 | 第8章 | 第9章 | 第10章 |
第11章 | 第12章 | 第13章 | 第14章 | 第15章 | 第16章 | 第17章 | 第18章 | 第19章 | 第20章 | 付録 |
1 | 2 | 3 | 4 | 5 | 6 |
重回帰分析と同様に判別分析でも、なるべく少ない変数で効率的に群を判別できるように変数を選択する手法が考えられています。 判別分析は重回帰分析において目的変数が分類データになったものに相当するので、変数の選択法も次のようにほとんど同じものがあります。
これらのうち最も多用されるのは、重回帰分析と同じく3番の逐次選択法です。 この方法は変数の選択規則によって次のように細分化されます。
変数選択法の中で最も多用されるのは重回帰分析と同じく変数増減法です。 そこで、この手法について順を追ってもう少し詳しく説明することにしましょう。 (注1) (→7.3 変数の選択)
最初に1変数だけで判別した時に判別確率が最大となる変数つまり単独で判別効率を最大にする変数を探し、それが取り込み基準を満足するなら判別関数に取り込みます。 その変数をx1とすると、この時の状態は図9.5.1のようになります。
取り込み基準は「その変数を取り込むことによる判別効率の増加分が判別誤差の2倍以上あること」にするのが一般的です。 それは重回帰分析と同じように次のように表されます。
Finの値は2と決められているわけではありませんが、重回帰分析と同じく一般に2〜2.5ぐらいが適当だといわれています。
次に残りの変数から今取り込んだ変数と共有する情報を取り除いた上で、判別効率の増加が最大の変数を探します。 そしてその変数が取り込み基準を満足するなら判別関数に取り込みます。 その変数をxjとすると、この時の状態は図9.5.2のようになります。
ここで今までに取り込んだ変数の中から単独で判別に関与している割合が最小のもの、つまりその変数を追い出した時に判別効率の減少が最小になるものを探します。 そしてその変数が追い出し基準を満足しているなら追い出し、満足していないのならそのままにします。 これも重回帰分析と同じように次のように表されます。
この値は各変数が単独で判別に寄与している割合を表し、数学的には分散分析に用いるF値と同じ統計量になります。 Foutの値はFin以下ならどんな値でもかまいませんが、普通はFinと同じ値にします。 もしFout > Finにすると、同じ変数が出たり入ったりを繰り返してしまうので注意が必要です。 またFout = 0にすると変数増加法になり、Fin = Fout = 0にすると全変数を強制的に取り込みます。 これも重回帰分析と同様です。
変数を追い出した後、2番に戻ってさらに変数の取り込みを続けます。 そして取り込む変数も追い出す変数もなくなるまで2番と3番の手順を繰り返します。
逐次変数選択法によって得られた判別関数は、重回帰分析と同様にできるだけ少ない変数で、できるだけ効率的に群を判別するための簡便で実用的な判別関数です。 そのため例えば医学の臨床現場で、なるべく少ない検査項目で、なるべく正確に群の判別を行いたい時などに用いると実用的で便利です。
しかし医学の研究現場では色々な検査項目が群の判別に単独でどの程度寄与しているか、つまり各検査項目の診断指標としての重要度を調べたい時がよくあります。 そのような時は対象とする全検査項目を変数に入れた判別分析を行うべきであり、逐次変数選択を行うべきではありません。 逐次変数選択を行った場合、選択されなかった変数は群の判別に寄与していないとは限りません。 すでに選択された変数にその変数の情報が含まれているため重ねて選択する必要がないだけで、実際には判別に寄与しているということも十分あり得ます。
そのため選択された変数が単独でどの程度の寄与をしているかは、逐次変数選択の結果からは不正確にしかわかりません。 また選択されなかった変数が判別にどの程度寄与しているかを知るのは不可能です。 したがって色々な検査項目が群の判別に単独でどの程度寄与しているかを調べたい時、またはある検査項目が群の判別に寄与していないことを検証したい時などは逐次変数選択を行ってはいけません。
またこのようにして選択された変数の組み合わせは、単に数字の大きさだけで機械的に選択されたものです。 科学的に最適なものでも、因果関係を考慮したものでもありません。 そのため得られた判別関数について科学的に十分吟味することが大切です。 もし判別関数の内容が科学的に解釈困難なら、特定の変数を強制的に取り込んだり追い出したりして色々な判別関数を計算し、それらをよく検討して最終的な結果を選ぶべきです。 (注2) (注3)
他の多変量解析と同じように、判別分析も大量の計算を必要とするので普通はコンピュータを利用して計算します。 しかしコンピュータのアウトプットをそのまま無条件に採用してはいけません。
とかく世間には「コンピュータは間違いを犯さない」、「コンピュータは何でもできる」などというとんでもない迷信がはびこっていて、
「コンピュータがそう結論したんだ、間違いない!」
「コンピュータがそう結論したんじゃ、何か文句あっか!!」
しかしたとえプログラムが完全で操作が完壁だとしても——実はコンピュータが犯したと称されるエラーのうち、99.9%以上のものが人間であるプログラマーとオペレーターの責任なのです——コンピュータにインプットするデータが不確実なものであれば、やはり不確実な結果しかアウトプットされません。
ゴミを入れればゴミを出し(GIGO)、宝を入れれば、うまくいけば宝を出す馬鹿正直なコンピュータですから、出されたモノがゴミか宝かは、くどいようですがやはり人間がしっかりと判断しなければいけません。 コンピュータは機械的な作業を速く正確に行なうための道具にすぎず、人間の知的作業や感覚的判断を肩代りしてくれる魔法の箱ではないのです。 (注4)
まず群ごとに単位ベクトルも含めたデータ行列を用意し、その行列と転置行列との積つまり単純積和行列を作ります。
次にこれらの行列を第1行第1列の要素(nまたはh)を軸にして掃き出し、平均値ベクトルと積和行列に変換します。
これらの行列を利用して、群別の標準偏差や相関係数などを計算することができます。
次に2群の積和行列部分を足し合わせて(n+h-2)で割り、共分散行列Vに変換します。 そして第1列を第1要素が1の(p+2)次単位ベクトルに変換し、第1行第2列〜第(p+1)列に2群の平均値ベクトルを平均したベクトル[m1 + m2]/2の要素を並べ、第1行第(p+2)列の要素を0にします。 さらに第(p+2)列第2行〜第(p+1)行と第(p+2)行第2列〜第(p+1)列に2群の平均値ベクトルの差ベクトル[m1 - m2]の要素を並べ、第(p+2)行第(p+2)列の要素を0にします。 それからその右側に(p+2)次の単位行列を並べ、第1列第1行の要素と第1例第(p+2)行の要素を0にし、第1列第2行〜第(p+1)行の要素を-[m1 + m2]/2の要素にし、これを行列A1とします。
後の計算のために、A1の行と列の番号を1〜(p+2)ではなく0、1、…、p、dと呼ぶことにします。 この行列は重回帰分析で変数増減法に用いた行列A1に相当します。 そして計算終了後は第d列第0行の要素ka0dが判別関数の切片a0に、第d列第1行〜第p行の要素ka1d〜kapdが判別係数ベクトルaに、第d列第d行の要素kaddの符号を正にしたものが判別効率すなわちマハラノビスの平方距離D2になります。
変数xによって2群の判別が可能かどうかは、判別効率Δ2が0かどうかを検定することによって判断します。 その検定はホッテリングのT2検定を利用して次のように行います。
また変数x1、…、xqを用いた時の判別効率をDq2とし、これに変数xq+1を追加した時の判別効率をDq+12とすると、判別効率の増加分についての検定は次のようになります。 そしてこの時の検定統計量Fを利用して変数の選択を行なうことができます。
ここから変数の選択に入ります。 今、第k番目(k = 1,…,p、前述の状態はk = 1)まで変数の取り込みが終了しているとします。
変数xjを取り込むことによる判別効率の増加分djは次のようになります。
この値が最大のものを選び、次のような基準を満足すればその変数を取り込みます。
上記の基準を満足せず、次のようになれば変数の選択を終了します。
kajjを軸にして掃き出し、第j番の変数を取り込みます。
今までに取り込まれた変数のうち、その変数を追い出すことによる判別効率の減少分は次のようになります。
この値が最小のものを選び、次のような基準を満足すればその変数を追い出します。
上記の基準を満足せず、次のようになればまた4番に戻って変数の取り込みを続けます。
第l番の変数を追い出すには、右側の逆行列側のk+1all(-1)を軸にして掃き出してAkに戻します。
この後でまた4番に戻り、取り込む変数がなくなるまで同様の手順を繰り返します。
最終的に第r番目の変数を取り込んで変数の選択が終了したとすると、次のようにして各種統計量を計算します。
表9.1.1の例題について実際に計算してみましょう。
したがって、まずx1を選択します。
選択基準を満足しているのでx1を取り込みます。
取り込んだ変数が今取り込んだx1だけなので、変数追い出しステップは飛ばします。
よって、x2を取り込みます。
今取り込んだばかりのx2は候補からはずします。
このためx1は追い出さず、これで変数の選択を終了します。
変数の選択を終了し、各種統計量を計算します。
この場合は全てのデータを選択したので、結果は第4節の全変数を選択した結果と同じになります。
NRIは基本モデルに特定の項目を追加することによって正しい予測確率が上昇した被験者の割合と、正しい予測確率が下降した被験者の割合の差に相当するノンパラメトリックな指標です。 そして正しい予測確率が上がった例数と下がった例数を用いて、NRIが0かどうかの検定を行います。 この検定は符号検定に相当しますが、通常は上記のように符号検定の正規近似手法つまり出現率の正規近似検定を用います。
一方、IDIは基本モデルによる正しい予測確率と、基本モデルに特定の項目を追加したモデルによる正しい予測確率の差に相当するパラメトリックな指標です。 そして2つのモデルの正しい予測確率の差を用いて、IDIが0かどうかの検定を行います。 この検定は対応のあるt検定つまり変化量平均値の1標本t検定に相当しますが、通常は上記のようにt分布を正規分布で近似した正規近似検定を用います。
これらは予測確率値を用いた指標ですが、予測確率は特殊な分布をするのでNRIもIDIも正規分布で大雑把に近似しています。 そのため検定と推定の精度が低くなってしまい、統計学的にはあまり好ましくありません。 それよりも変数選択法のように、特定の項目をモデルに追加することによる判別効率の増加分つまりマハラノビスの汎距離の増加分を用いる方が合理的です。 そしてマハラノビスの汎距離の増加分が0かどうかの検定は判別係数が0かどうかの検定になります。
したがってこれらの特殊な指標を用いるよりも、判別確率とマハラノビスの汎距離を用いてモデルの予測能力を評価し、必要に応じて判別係数の検定と推定を用いて各項目の判別への寄与分を評価するというオーソドックスな方法の方が合理的です。
またNRIとIDIをロジスティック回帰分析や生存時間解析で用いることがあります。 しかし上記の計算式からわかるように、これらの指標は疾患(イベント有)群と正常(イベント無)群を定数と考えた後ろ向き研究用の指標です。 そのためこれらの指標を前向き研究用の手法であるロジスティック回帰分析や生存時間解析で用いるのは非合理です。
全体の積和をST(重回帰分析における積和に相当)、群1と群2の積和をプールした群内積和をSW(判別分析における群1と群2の合計積和に相当)、群1と群2の群間積和をSBと表すと次のようになります。
重回帰分析における正規方程式を行列[X'X]の第0行第0列の要素Nで掃き出し、切片b0に関係した第0行と第0列を削除すると次のようになります。
一方、判別関数から次のようになります。
したがって判別分析の各種統計量と重回帰分析の各種統計量の間には、次のような関係が成り立ちます。
また次のようにホッテリングのT2検定は回帰の検定に一致し、変数選択に用いるF値は同じものになります。 そのため変数選択手順はどちらも全く同一になります。
重回帰分析において、説明変数が名義尺度(分類データ)ばかりの時は数量化I類と呼ばれる手法がありました。 それと同様に判別分析において、説明変数が名義尺度ばかりの時は数量化II類と呼ばれる手法があります。 この手法はダミー変数を利用した判別分析と等価になり、結局のところ重回帰分析において説明変数と目的変数の両方が名義尺度になったものに相当します。 (→7.3 変数の選択 (注1))
その時代においても現在においても、「AI」と称されているものは全て人間の知的活動の上っ面だけをマネた「似非人工知能」にすぎません。 色々な質問に答える「生成AI(Generative AI)」も、いかにも考えているように見えますが、実は質問に応じてインターネット上でよく引用される情報を収集し、それをまとめて出力しているだけであり、理論的に体系化して回答しているわけではありません。 そのため世間の多くの人が誤解している情報をまとめた時はバカ正直に間違った回答を返しますし、インターネット上に情報がない時はハルシネーション(幻覚)を起こして、自信満々にトンチンカンな回答を返してしまいます。
人間の脳の働きのは高度に発達した現代科学をもってしてもおいそれと解明できるようなシロモノではなく、非理論的な感覚的活動はおろか、多少は理論的なはずの知的活動のしくみさえ全くわかっていないのが現状です。 人間はなぜ青い空を美しいと思い、緑の森を清々しく感じ、赤い夕日に涙するのか、なぜ音楽が好きで、絵に心惹かれ、小説に感動するのか……これらの感覚的活動は理屈では全く説明のつかない不可思議な現象です。
「まったりとして、しかもしつこくない素晴らしい味ね!」
「魂の奥底に潜む欲望を赤裸々に描写して間然する所のない、素晴らしい作品だ!」
そしてまた人間は、わずかなデータからどのようにしてその背後にある根本原理を洞察するのか、色々の情報からどのようにして適確な判断を下すのか、必要な情報をどのようにして記憶し、またどのようにして呼び起こすのか、勘とは何か、インスピレーションとは何か、想像力とは何か、イマジネーションとは何か……これらの知的活動も、実際にはほとんど説明のつかない正体不明の現象です。
こういった人間の脳独特の働きが解明されるまでは、それをシミュレートする人工知能などできるはずがありません。 それ故、真剣に人工知能に取り組んでいるコンピュータ研究者にとっても、「本物の人工知能」というものは残念ながらまだまだ「夢のまた夢」もしくは「見果てぬ夢」なのです。