線形判別関数が計算できる(2次元で3群以上分割する場合)
「線形判別関数Zが作れない」などと困っていませんか?
こういう疑問に答えます。
本記事のテーマ
おさえておきたいポイント
- ①データを用意する
- ➁線形判別関数\(Z\)=0の条件を求める
- ➂線形判別関数を求める
- ➃データ判別正誤率で評価する
Excelや公式は暗記不要!
自力で導出できるぜ!
①データを用意する
関連記事で2次元の線形判別関数の導出を解説
まず、線形判別関数をマスターすべく、2次元の線形判別関数を導出する関連記事を確認してください。
線形判別関数が計算できる(2次元、その1) 判別分析において、線形判別関数が計算できますか?本記事では2次元データを例に2記事にわたり線形判別関数の求め方をわかりやすく解説します。多変量解析を学ぶ人は必読です。 |
線形判別関数が計算できる(2次元、その2) 判別分析において、線形判別関数が計算できますか?本記事では2次元データを例に2記事にわたり線形判別関数の求め方をわかりやすく解説します。線形判別関数の結果と判別正誤率も解説します。多変量解析を学ぶ人は必読です。 |
データを用意する
本記事では、変数が2つ(2次元)で3群に分ける方法を解説します。
データを以下とします。
群 | No | \(x_1\) | \(x_2\) | 平均\(\bar{x_1}\) | 平均\(\bar{x_2}\) |
1群 | 1 | 4 | 11 | 6 | 12 |
2 | 9 | 13 | |||
3 | 5 | 12 | |||
2群 | 4 | 10 | 14 | 8 | 14.5 |
5 | 7 | 14 | |||
6 | 8 | 14 | |||
7 | 7 | 16 | |||
3群 | 8 | 7 | 17 | 10 | 12 |
9 | 11 | 8 | |||
10 | 12 | 11 | |||
– | – | – | 全体平均 | 8 | 13 |
グラフで描くと下図のイメージになります。
➁線形判別関数\(Z\)=0の条件を求める
全変動と群間変動を導出
線形判別関数\(Z\)=\(a_1 x_1+a_2 x_2\)と置いて、各データを下表のように表現します。
群 | No | \(Z_i\) | 群平均 | 全変動 \((Z_i-\bar{Z})^2\) |
群間変動 \(n_k(\bar{Z_k}-\bar{Z})^2\) |
1群 | 1 | 4\(a_1\)+11\(a_2\) | 6\(a_1\)+12\(a_2\) | (-4\(a_1\)-2\(a_2\))2 | 3(-2\(a_1\)-\(a_2\))2 |
2 | 9\(a_1\)+13\(a_2\) | \(a_1^2\) | |||
3 | 5\(a_1\)+12\(a_2\) | (-3\(a_1\)-\(a_2\))2 | |||
2群 | 4 | 10\(a_1\)+14\(a_2\) | 8\(a_1\)+14.5\(a_2\) | (2\(a_1\)+\(a_2\))2 | 4(1.5\(a_2^2\)) |
5 | 7\(a_1\)+14\(a_2\) | (-\(a_1\)+\(a_2\))2 | |||
6 | 8\(a_1\)+14\(a_2\) | \(a_2^2\) | |||
7 | 7\(a_1\)+16\(a_2\) | (-\(a_1\)+3\(a_2\))2 | |||
3群 | 8 | 7\(a_1\)+17\(a_2\) | 10\(a_1\)+12\(a_2\) | (-\(a_1\)+4\(a_2\))2 | 3(2\(a_1\)-\(a_2\))2 |
9 | 11\(a_1\)+8\(a_2\) | (3\(a_1\)-5\(a_2\))2 | |||
10 | 12\(a_1\)+11\(a_2\) | (4\(a_1\)-2\(a_2\))2 | |||
– | 平均 | 8\(a_1\)+13\(a_2\) | 合計 | 58\(a_1^2\)-36\(a_1 a_2\)+62\(a_2^2\) | 24\(a_1^2\)+15\(a_2^2\) |
ここで、
●全変動\(S_T\)=58\(a_1^2\)-36\(a_1 a_2\)+62\(a_2^2\)
●群間変動\(S_B\)=24\(a_1^2\)+15\(a_2^2\)
全変動から、線形判別関数の係数\(a_1,a_2\)の比が計算できますが、2次元の場合は関連記事のとおり2通り解法があります。それぞれ解説します。
- 相関比が最大になる条件を計算
- ラグランジュの未定乗数を使って計算
相関比から傾きの比を導出
相関比\(F\)=\(\frac{S_B}{S_T}\)
=\(\frac{24a_1^2+15a_2^2}{58a_1^2-36a_1 a_2 +62a_2^2}\)
とおき、
\(k\)=\(\frac{a_1}{a_2}\)として、
\(F(k)\)= \(\frac{24k^2+15}{58k^2-36k +62}\)
と変形して、この関数のグラフを描きましょう。
\(F(k)\)を微分すると
\(F’(k)\)= \(\frac{-12(72k^2-103k-45)}{(58k^2-36k +62)^2}\)
●\(F’(k)\)=0は
\(72k^2-103k-45\)=0より
\(k\)=\(\frac{103±\sqrt{23569}}{144}\)
=-0.351,1.781
グラフを描くと下図のとおりです。
ラグランジュの未定乗数法から傾きの比を導出
\(58a_1^2-36a_1 a_2 +62a_2^2\)=1とした条件で、\(24a_1^2+15a_2^2\)の最大値を求める方法でしたね。
●\(F(a_1,a_2,λ\)=\(24a_1^2+15a_2^2\)-λ(\(58a_1^2-36a_1 a_2 +62a_2^2\))
として、固有方程式
●\(\displaystyle \frac{\partial F}{\partial a_1} \)=0
●\(\displaystyle \frac{\partial F}{\partial a_2} \)=0
を解いて、固有値解λ、固有ベクトルを計算します。
相関比を微分して得られた結果と一致します。(計算してみてくださいね)
➂線形判別関数を求める
線形判別関数の傾き
結果は2つ出て来て、
\(\frac{a_1}{a_2}\)=-0.351,1.781
ですから、
●(i)\(a_1\)= -0.351,\(a_2\)=1
●(ii)\(a_1\)= 1.781,\(a_2\)=1
として、線形判別関数の切片を計算しましょう。
線形判別関数の切片
ここで思うのは、
●切片は帳尻合わせって感じです。
要は、
●1つは「1群の平均」と「2群平均」の平均を通る線形判別関数
●もう1つは「2群の平均」と「3群平均」の平均を通る線形判別関数
を考えます。
どこか1点を通る条件が帳尻合わせって感じなんですよね。
平均点を求める
各群の平均はそれぞれ、
●1群:(\(x,y\))=(6,12)
●2群:(\(x,y\))=(8,14.5)
●3群:(\(x,y\))=(10,12)
なので、
●(a)「1群の平均」と「2群平均」の平均は(\(x,y\))=(7,13.25)
●(b)「2群の平均」と「3群平均」の平均は(\(x,y\))=(9,13.25)
となり、そこを通る線形判別関数を作ります。
線形判別関数を求める
傾きは
●(i)\(a_1\)= -0.351,\(a_2\)=1
●(ii)\(a_1\)= 1.781,\(a_2\)=1
で、切片は、
●(a)(\(x,y\))=(7,13.25)
●(b)(\(x,y\))=(9,13.25)
の2×2のパターンなので、4本の線形判別関数が引けます。
結果は、下表になります。
●第1判別関数 傾き1.781 |
●第2判別関数 傾き-0.351 |
1.781x+y-25.717=0 | -0.351x+y-10.793=0 |
1.781x+y-29.279=0 | -0.351x+y-10.091=0 |
➃データ判別正誤率で評価する
傾きが2つあるので、それぞれの場合で正誤評価します。
第1判別関数(傾き-0.351)
結果はグラフのとおりです。外側から1群、2群、3群とうまく区分できています。
第2判別関数(傾き1.781)
結果はグラフのとおりです。外側から2群、1群、3群とうまく区分できています。
どちらも、結構うまく判別できましたね!
まとめ
「線形判別関数が計算できる(2次元で3群以上分割する場合)」を解説しました。
- ①データを用意する
- ➁線形判別関数\(Z\)=0の条件を求める
- ➂線形判別関数を求める
- ➃データ判別正誤率で評価する
Warning: count(): Parameter must be an array or an object that implements Countable in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 119