QCプラネッツ 品質のプロフェッショナルを育成するサイト

線形判別関数が計算できる(2次元で3群以上分割する場合)

多変量解析

「線形判別関数Zが作れない」などと困っていませんか?

こういう疑問に答えます。

本記事のテーマ

線形判別関数が計算できる(2次元で3群以上分割する場合)

おさえておきたいポイント

  • ①データを用意する
  • ➁線形判別関数\(Z\)=0の条件を求める
  • ➂線形判別関数を求める
  • ➃データ判別正誤率で評価する
判別分析は自分で解けます!
Excelや公式は暗記不要!
自力で導出できるぜ!
2次元でしっかり導出過程を理解しましょう。

①データを用意する

関連記事で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通り解法があります。それぞれ解説します。

  1. 相関比が最大になる条件を計算
  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
として、線形判別関数の切片を計算しましょう。

線形判別関数の切片

ここで思うのは、

●傾きはしっかり数学するけど
●切片は帳尻合わせって感じです。

要は、

3群に分けるので、
●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

    Warning: Invalid argument supplied for foreach() in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 122
error: Content is protected !!