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となる。