因子分析の1因子モデルが計算できる
「因子分析ってどうやって解くのかがわからない」などと困っていませんか?
こういう疑問に答えます。
本記事のテーマ
おさえておきたいポイント
- ①データ事例
- ➁モデル式から分散・共分散を導出
- ➂因子負荷量を計算
- ➃共通因子と誤差を計算
Excelや公式は暗記不要!
自力で導出できるぜ!
この記事では、導出過程はすでに関連記事で解説しています。先に確認ください。導出過程を見ながら本記事では実際に計算して解いていきます。
因子分析の1因子モデルが導出できる 因子分析が説明できますか?主成分分析との違いが明確に数式を使って説明できますか?本記事では、因子分析の最も基本的な1因子モデルにおける分析方法をわかりやすく解説します。多変量解析を学ぶ人は必読です。 |
①データ事例
データ事例
下表のように、例えば、あるデータがあり、変数x,y,zがあるとしましょう。
No | A | B | C |
1 | 30 | 48 | 54 |
2 | 60 | 50 | 60 |
3 | 40 | 42 | 55 |
4 | 80 | 70 | 68 |
5 | 56 | 54 | 71 |
6 | 65 | 70 | 76 |
7 | 22 | 28 | 30 |
8 | 100 | 72 | 96 |
9 | 65 | 70 | 88 |
10 | 32 | 46 | 52 |
合計 | 550 | 550 | 650 |
平均 | 55 | 55 | 65 |
標準偏差 | 23.11 | 14.21 | 18.15 |
このデータを、
主成分分析のように、ある共通変数Fに集約できなか?
を考えます。
1因子モデルを式で表現
つまり式と図で表現すると、
\(
\left(
\begin{array}{c}
x_i \\
y_i \\
z_i
\end{array}
\right)
\)=\(
\left(
\begin{array}{c}
a F_i\\
b F_i\\
z F_i
\end{array}
\right)
\)+\(
\left(
\begin{array}{c}
e_{xi}\\
e_{yi}\\
e_{zi}
\end{array}
\right)
\)
各値を共通因子と誤差に相当する独自因子に分割します。
式と図から、
●変数である共通因子F
●変数である誤差でもある独自因子e
にわけて、
●変数である共通因子Fに意味を持たせる
をやるのが因子分析です。
数式を使って、わかりやすく因子分析を導出していきます。
データを標準化
因子分析はモデル式から分散・共分散を導出するときに、データの標準化が必須です。先にデータを標準化しましょう。
標準化は\(z\)=\(\frac{x-\bar{x}}{σ}\)です。
No | A | B | C |
1 | -1.08 | -0.49 | -0.61 |
2 | 0.22 | -0.35 | -0.28 |
3 | -0.65 | -0.92 | -0.55 |
4 | 1.08 | 1.06 | 0.17 |
5 | 0.04 | -0.07 | 0.33 |
6 | 0.43 | 1.06 | 0.61 |
7 | -1.43 | -1.9 | -1.93 |
8 | 1.95 | 1.2 | 1.71 |
9 | 0.43 | 1.06 | 1.27 |
10 | -0.99 | -0.63 | -0.72 |
sum | 0 | 0 | 0 |
ave | 0 | 0 | 0 |
sig | 1 | 1 | 1 |
また、分散・共分散も計算すると以下のとおりです。
– | \(s_x\) | \(s_y\) | \(s_z\) |
分散 | 1 | 1 | 1 |
– | \(s_{xy}\) | \(s_{yz}\) | \(s_{xz}\) |
共分散 | 0.878 | 0.874 | 0.919 |
➁モデル式から分散・共分散を導出
詳細な導出は関連記事で
分散・共分散の導出過程も関連記事で解説しています。先にご確認ください。
因子分析の1因子モデルが導出できる 因子分析が説明できますか?主成分分析との違いが明確に数式を使って説明できますか?本記事では、因子分析の最も基本的な1因子モデルにおける分析方法をわかりやすく解説します。多変量解析を学ぶ人は必読です。 |
結果まとめ
分散と共分散の結果は以下のとおりになります。
●1=\(b^2+V(e_y)\)
●1=\(c^2+V(e_z)\)
●\(s_{yz}\)=\(bc\)
●\(s_{xz}\)=\(ac\)
➃因子負荷量を計算
因子負荷量を計算
しかも、共分散\(s_{xy}\),\(s_{yz}\),\(s_{xz}\)は
実データから計算できるので、
\(a,b,c\)が計算できますね。
実データから
\(s_{xy}\)×\(s_{yz}\)×\(s_{xz}\)=\(a^2 b^2 c^2\)
この平方根は\(abc\)ですから、
\(abc\)と\(s_{xy}\),\(s_{yz}\),\(s_{xz}\)の比が
\(a,b,c\)となり、因子負荷量を計算することができます。
実際に、
●\(s_{xy}\)=\(ab\)=0.878
●\(s_{yz}\)=\(bc\)=0.874
●\(s_{xz}\)=\(ac\)=0.919
全部掛けると
\(a^2 b^2 c^2\)=0.878×0.874×0.919=0.840
\(abc\)=0.840
●\(a\)=\(abc/s_{yz}\)=0.840/0.919=0.914
●\(b\)=\(abc/s_{xz}\)=0.840/0.875=0.960
●\(c\)=\(abc/s_{xy}\)=0.840/0.878=0.957
となります。
➄共通因子と誤差を計算
あとは、誤差と共通因子を計算すれば、因子分析の一連の流れが計算できます。
誤差を計算
誤差\(V(e_x)\), \(V(e_y)\), \(V(e_z)\)は関係式から計算できます。
●\(V(e_y)\)=1-\(b^2\)=1-0.9602=0.078
●\(V(e_z)\)=1-\(c^2\)=1-0.9572=0.084
計算はできるのですが、1つ問題があります。
実は共通因子Fの各値を計算してから、個別の誤差の値を計算します。
ここから
共通因子Fを計算
実は、推定方法から計算します。この推定方法の導出はQCプラネッツで調査中です。
共通因子Fの計算方法
ただし、
●\(Z\):標準化データ行列
●\(R\):相関係数行列
●\(A\):因子負荷量ベクトル
(1因子モデルはベクトル、2因子以上なら行列)
3変数、1因子モデルの場合、具体的に記述すると
\(
\left(
\begin{array}{c}
F_1 \\
F_2 \\
\vdots \\
F_n
\end{array}
\right)
\)=\(\left(
\begin{array}{cccc}
x_{1} & y_{1} & z_{1} \\
x_{2} & y_{2} & z_{2} \\
\vdots & \vdots & \vdots \\
x_{n} & y_{n} & z_{n}
\end{array}
\right)
\)\(\left(
\begin{array}{cccc}
1 & r_{xy} & r_{xz} \\
r_{xy} & 1 & r_{yz} \\
r_{xz} & r_{xy} & 1
\end{array}
\right)^{-1}
\)\(
\left(
\begin{array}{c}
a \\
b \\
c
\end{array}
\right)
\)
で計算できます。
実際に計算してみましょう。
\(\left(
\begin{array}{c}
F_1 \\
F_2 \\
F_3 \\
F_4 \\
F_5 \\
F_6 \\
F_7 \\
F_8 \\
F_9 \\
F_{10} \\
\end{array}
\right)
\)=\(\left(
\begin{array}{cccc}
-1.08 &-0.49 &-0.61 \\
0.22 &-0.35 &-0.28 \\
-0.65 &-0.92 &-0.55 \\
1.08 &1.06 &0.17 \\
0.04 &-0.07 &0.33 \\
0.43 &1.06 &0.61 \\
-1.43 &-1.9 &-1.93 \\
1.95 &1.2 &1.71 \\
0.43 &1.06 &1.27 \\
-0.99 &-0.63 &-0.72 \\
\end{array}
\right)
\)\(\left(
\begin{array}{cccc}
1 & 0.3715 & 0.8745 \\
0.3715 & 1 & 0.7316 \\
0.8745 & 0.7316 & 1
\end{array}
\right)^{-1}
\)\(
\left(
\begin{array}{c}
0.914 \\
0.960 \\
0.957\end{array}
\right)
\)
ここで、相関係数行列の逆行列は、
\(\left(
\begin{array}{cccc}
12.44 & 7.18 & -16.13 \\
7.18 & 6.29 & -10.89 \\
-16.13 & -10.89 & 23.07
\end{array}
\right)^{-1}
\)
を使います。
計算結果は、
\(\left(
\begin{array}{c}
F_1 \\
F_2 \\
F_3 \\
F_4 \\
F_5 \\
F_6 \\
F_7 \\
F_8 \\
F_9 \\
F_10 \\
\end{array}
\right)
\)=\(\left(
\begin{array}{c}
-2.248 \\
0.699 \\
-2.123 \\
4.857 \\
-1.063 \\
1.648 \\
-2.189 \\
2.801 \\
-0.414 \\
-1.968 \\
\end{array}
\right)
\)
誤差Eを計算
誤差Eは残りなので、上の式を使うと、
\(\left(
\begin{array}{cccc}
x_1 & y_1 & z_1 \\
x_2 & y_2 & z_2 \\
\vdots & \vdots & \vdots \\
x_n & y_n & z_n
\end{array}
\right)
\)=\(
\left(
\begin{array}{c}
F_1 \\
F_2 \\
\vdots \\
F_n
\end{array}
\right)
\)\(\left(
\begin{array}{cccc}
a & b & c
\end{array}
\right)
\)+
\(\left(
\begin{array}{cccc}
e_{x1} & e_{y1} & e_{z1} \\
e_{x2} & e_{y2} & e_{z2} \\
\vdots & \vdots & \vdots \\
e_{xn} & e_{yn} & e_{zn}
\end{array}
\right)
\)
から、誤差行列
\(\left(
\begin{array}{cccc}
e_{x1} & e_{y1} & e_{z1} \\
e_{x2} & e_{y2} & e_{z2} \\
\vdots & \vdots & \vdots \\
e_{xn} & e_{yn} & e_{zn}
\end{array}
\right)
\)
の個々の値が計算できます。
実際に計算すると、下表になります。
ei | A | B | C |
1 | 0.973 | 1.666 | 1.545 |
2 | -0.423 | -1.023 | -0.944 |
3 | 1.291 | 1.123 | 1.48 |
4 | -3.357 | -3.609 | -4.483 |
5 | 1.015 | 0.95 | 1.348 |
6 | -1.073 | -0.527 | -0.971 |
7 | 0.573 | 0.201 | 0.167 |
8 | -0.613 | -1.493 | -0.972 |
9 | 0.811 | 1.454 | 1.663 |
10 | 0.804 | 1.257 | 1.167 |
因子分析結果をまとめると、下図になります。
ここまで、各値を計算した上で、共通因子Fの意味を考えて、因子分析ができたといえます。
まとめ
「因子分析の1因子モデルが計算できる」を解説しました。
- ①データ事例
- ➁モデル式から分散・共分散を導出
- ➂因子負荷量を計算
- ➃共通因子と誤差を計算
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