RでDA

Rで判別分析を行う手順

青木先生の判別分析スクリプト・解説・使用例
http://aoki2.si.gunma-u.ac.jp/R/sdis.html

1. 以下の関数でsdis関数を読み込む。
source(“http://aoki2.si.gunma-u.ac.jp/R/src/sdis.R”, encoding=”euc-jp”)

2. 詳細な設定を行わない場合は、以下の関数で判別分析を行える。
sdis(説明変数のデータフレーム, 群のデータフレーム)

2a. 事前準備として、説明変数と群のデータフレームをそれぞれ用意する。
群の例(ETSの日本人のエッセイ評価で群を分ける):
Score
low
low
low
medium
medium
medium
high
high
high

説明変数の例(語数、文数、動詞句数を、群のデータフレームと一致する順番に並べる)
W    S    VP
240    17    43
152    12    31
120    9    21
331    18    41
267    20    42
294    14    44
368    16    57
366    16    63
302    23    55

2b. これらの表をそれぞれg(グループ)とv(変数)という変数に代入し、
sdis(v,g)を実行すると、以下が出力される:

===================== 結果 =====================

***** 分類関数 *****

high      low   medium  偏F値     P値
W      -0.32873 -0.16246 -0.28304 11.627 0.00863
定数項 56.76112 13.86345 42.07859

***** 判別関数 *****

high と low の判別
マハラノビスの汎距離: 3.81063
理論的誤判別率:    0.0284

判別係数 標準化判別係数
W        0.083135         6.8702
定数項 -21.448834

high と medium の判別
マハラノビスの汎距離: 1.04720
理論的誤判別率:    0.3

判別係数 標準化判別係数
W       0.022846          1.888
定数項 -7.341266

low と medium の判別
マハラノビスの汎距離: 2.76344
理論的誤判別率:    0.0835

判別係数 標準化判別係数
W      -0.060289        -4.9822
定数項 14.107568

***** 判別結果集計表 ****

判別された群
実際の群 high low medium
high      2   0      1
low       0   2      1
medium    1   0      2

————————————————–

判別結果の読み方:

実際にhighの3つの内2つがhigh、1つがmediumとして判別

実際にlowの3つの内2つがlow、1つがmediumとして判別

実際にmediumの3つの内2つがmedium、1つがhighとして判別

正判別率の計算方法:

high/high、low/low、medium/mediumの合計(左上から右下の斜めの合計)を、データの数で割る。今回の場合は(2+2+2)/(2+2+2+1+1+1)で6/9=.667となる。