SPSS AMOS って知ってます？

# 1. はじめに
　今回は、お客様より問い合わせのあった SPSS AMOS について簡単に紹介しようと思います。Modelerをメインで扱っているため、ほとんど縁がないソフトウェアだったのですが、問い合わせをきっかけに少し勉強してみました。


**※ 2025/03/14 記事で使用したパス図(.amwファイル)と加工済みデータをアップロードしました。**

https://github.com/harrow16/Qiita/tree/main/AMOS_Part1_1127

# 2. IBM SPSS AMOSとは？
　構造方程式モデリング（Structural Equation Modeling, SEM）を実行するための専門的な統計ソフトウェアです。
AMOSは「Analysis of Moment Structures」の略称で、IBM SPSS製品群の一部として提供されています。

# 3. 構造方程式モデリング（Structural Equation Modeling, SEM）とは？
構造方程式モデルリングは、別の言い方をすると、共分散構造モデルともいいます。

どちらも、観測変数と潜在変数（直接観測できない理論的構成要素）間の関係を分析するための手法です。目的は、仮定された理論モデルがデータにどの程度適合するかを評価することにあります。

この手法には、因子分析やパス解析、回帰分析の要素が統合されており、心理学、教育学、経済学、社会学など幅広い分野で使用されています。

#### 因子分析の発展形？

「構造方程式モデリング（SEM）」は、因子分析を発展・統合させたものというイメージでしょうか。

因子分析で因子構造を特定してからさらに、理論的な仮説（例えば、「因子Aは因子Bに影響を与える」）を検証する等のアプローチができるからです。

①. 因子分析は、SEMの一部として利用されることが多いです。たとえば、SEMモデルの中で潜在変数を測定する際に因子分析が組み込まれています。

②. SEMでは、単なる因子構造の特定にとどまらず、理論的な仮説（例えば、「因子Aは因子Bに影響を与える」）を検証できます。

③. SEMは、回帰分析やパス解析などの手法を統合しており、データの背後にある複雑な構造を説明するのに適しています。

上記の内容で例をあげると、

①. 因子分析: アンケート項目から「満足度」や「ストレス」などの潜在因子を抽出。
さらに、その潜在因子について
②. SEM: 「満足度がストレスに影響を与える」などの仮説を統計的に検証。

という感じですね。



# 4. IBM SPSS AMOSを使ってみる！
　因子分析をやってみるという軽い気持ちで触ってみましょう。

## 4-1. データ加工

データは、以下の学生のアンケートデータを使用させていただきました。

https://scrapbox.io/jair/%E3%82%A2%E3%83%B3%E3%82%B1%E3%83%BC%E3%83%88%E3%81%AE%E3%83%80%E3%83%9F%E3%83%BC%E3%83%87%E3%83%BC%E3%82%BF%EF%BC%88%E5%88%86%E6%9E%90%E3%83%84%E3%83%BC%E3%83%AB%E7%B7%B4%E7%BF%92%E7%94%A8%EF%BC%89%E3%81%AE%E5%85%AC%E9%96%8B

AMOSに投入するため、以下の点を意識しています。
①. 数値データにする（アンケートの回答など）
②. 欠損値などは、全て削除するか補完するなどする。

AMOSにはデータ加工の機能はないので、他のツールを利用しましょう。ここでは、SPSS Modelerでささっとデータ加工しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/b8b35bee-0793-aa30-f53f-8b5e5f6ced8c.png)

上記のようにデータ加工し、アンケート回答を数値化したフィールドを分析では使用しています。_ラベルとついたフィールドなどは使用してません。


## 4-2. 分析の準備
　AMOSで分析する前に準備をしていきます。
 
### 4-2-1. 分析のイメージ
さて、サンプルデータには以下のようなフィールドがあります。

Q01_所属学部(3学部)
Q02_学年(3学年)　　
Q03_履修科目数(1～14科目)
Q04_授業時間外学習時間 (全然ない～20時間以上)　　
Q05_授業の理解度　(5件法 理解度について)
Q06_授業の満足度 (5件法 満足度について)
Q07_課題が多い　(5件法 課題の量についての実感)
Q08_あなたの学生生活の充実度　(4件法 実感について)
Q09_教員とのコミュニケーション　(4件法　実感について)
Q10_他の学生とのコミュニケーション　(4件法　実感について)
Q11_図書館の設備　(5件法 満足度について)
Q12_学内のICT環境について　(5件法 満足度について)
GPA(0～4.0)
TOEIC(0～999)

AMOSでは、因子分析をする際に、因子と各変数の関係をイメージしてパス図を描きます。
下のようなテストの点数と文系・理系のイメージの感じです。
そのため、SPSS Modeler等のように変数を準備して実行すれば因子が分かるようなものではなく、事前に分析者が因子と変数の関係をイメージしてパス図に落とし込む必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/906ab62d-de40-9000-d13c-b9c22fa77b64.png)

### 4-2-2. 観測変数と潜在変数

ここで、用語解説

<strong>「観測変数」</strong> : 国語や、社会などのテストの点数。実際に観測されて存在する変数。上の例ですと、四角のノードですね。
<strong>「潜在変数」</strong>  : 文系因子や理系因子など。これらは、私がイメージした実在せず、観測されない変数。上の例だと、楕円のノードです。
「<strong>誤差変数」</strong>：e1やe2などです。例のように矢印が向けられた変数には、<strong>必ず誤差変数を付ける</strong>のがルールとなります。上の例ですとe1などとなっている丸いノードですね。


### 4-2-3. パス図を描く
　AMOSは導入時にいくつかアプリケーションがインストールされますが、主に使うのは、Amos XX Graphicsになります。(xx はバージョンの数字が入ります。）
 最新は、Amos 30 です。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/cb15ef6e-c356-c8d0-b1cf-1fd4a9ddac15.png)


下の画面が、AMOS Graphic画面になります。
左側のアイコンを使用して、右側のキャンバスに分析のパス図を描いていきます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/959f1551-a6af-657f-aba7-10d40363d57c.png)


今回は、サンプルデータを使って以下のようにパス図を描いてみました。
下のイメージは完成版です。

頭の中でイメージをしたのものを描画できるので、視覚的にもわかりやすい点がAMOSの特徴ですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/1e2da66f-9871-94da-ffff-eef0fcfdd5bf.png)



## 4-3. 因子分析を実際にやってみる
 さて、先ほど完成版のパス図を実際に描いて、推定値を計算していきます。
 
### 4-3-1 前提ルール
　まずは、分析の前提となるルールを２つほど紹介します。

①. 誤差変数をつける
　<再掲> 単方向矢印が向けられた変数には、必ず誤差変数を付けるのがルールとなります。（ルール１）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/a97dadfc-d19a-0df6-0aff-033c9f5b7cbc.png)


②. 係数の設定
　潜在変数を使う場合、データの単位を決めるため、観測変数の係数で、必ず１つは係数を１に指定します（ルール２）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/cad30281-ae2d-8096-0704-70125cf4b8e0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/e4de25c0-a567-d7b0-9545-d7f2403ca057.png)



### 4-3-2 潜在変数同士の関係も推定する

　潜在変数同士を、相互の矢印で結びます。潜在変数間の関係性＜共分散や相関＞を推定するためです。
こうすることで、潜在変数間の関係性が分かるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/f7a17099-eef9-a830-13e4-cb590801c6ff.png)

### 4-3-3 ノードへの変数設定

　観測変数と潜在変数をノードに設定します。

①. 観測変数のノードへの設定

　観測変数は、変数一覧からドラック&ドロップで簡単に設定できます。
分析で使用する変数分のノードを配置してから設定しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/673f269f-f49c-d5c3-accd-8fcc3b7002f4.png)


②.潜在変数、誤差変数
　潜在変数、誤差変数は、あらかじめノードを描画しておいてから、ツールメニューのプラグインから「Name Unobserved Variables」を選択するだけで自動で設定されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/8aa185c3-4674-68f4-1a9e-27ff6c7ee66d.png)


③.潜在変数のラベル設定
　変数名が設定されたら、潜在変数ノードをダブルクリックしてプロパティ画面を開き、ラベルをつけましょう。
F1などと変数名が自動設定されているますが、ラベルを付けたほうがイメージしやすくなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/a987b782-f777-a092-9b12-2e8e55f041b0.png)


④. 分析プロパティの設定
　観測変数と潜在変数の関係をみたいので、プロパティ画面の出力タブで「標準化推定値」にチェックを入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/f9621b11-a418-a7b1-2585-b79fca7049ce.png)



### 4-3-4 推定値の計算
　各種設定が完了したら、推定値を計算します。
　実行すると、推定値が計算されてキャンバスに表示されます。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/e4eed281-dfe8-b510-6060-8a3546290263.png)

 推定値は画面上から切り替えることができます。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/7667e51a-19a0-ebc4-684c-7c69ef65c3a0.png)



#### ①. 非標準化推定値

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/38575f5d-4f8d-29b2-0969-6c073ed6a4f8.png)

非標準化の推定値なので、モデルの推定値がデータの元の単位で表されますね。
特徴:
・変数ごとに元の単位が異なる場合、解釈が難しい場合があります。
・パス係数（回帰係数や共分散など）が変数のスケール（測定単位）に依存します。
使用目的:
・モデルがデータの実際の単位でどの程度説明しているかを把握したい場合。
・特定の単位に基づいた具体的な効果の大きさを評価したい場合。

#### ②. 標準化推定値

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/c4d3743a-a482-a8f3-72ef-6a1547d33ff8.png)

標準化推定値は、そのまま全ての変数を標準化（平均0、分散1）した後の推定値ですね。

特徴:
・単位の影響を排除しているため、異なるスケールの変数間でも直接比較が可能。
・推定値は標準偏差単位で表され、どれだけ変数が関連しているか（相対的な強さ）を示します。
使用目的:
・モデル内のパスの相対的な重要性を比較する場合。
・異なる変数間の影響の大きさを理解したい場合。

標準化推定値はみるとイメージしやすいですね。

学習姿勢と学校環境は相関係数が０ですね。施設に対する満足度は勉強時間等には関係なさそうです。



#### ③. モデル適合度の確認
　
　テキスト出力を選択すると、別画面でモデル適合度を判断する各種指標も出力されます。CMIN<カイ二乗値>やRMSEA<平均二乗誤差平方和>、AIC、BICなど参考にしてモデルを評価してください。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/9cc76eec-2c27-e807-fe01-0b4f84eae3f4.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/15e2a336-45b6-cac9-36b2-b895db2818e2.png)


## 4. その他の分析例

 ①. 回帰分析
　アイスの売り上げを分析するような回帰分析もできます。係数や変数間の相関などを推定することができます。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/3283c0e0-7047-120a-44da-ea5d107a2bac.png)

 ②. 複雑な因子分析
　下のようなちょっと複雑な分析もできます。
 ※.あくまで例ですよ。結果は気にしないでください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/0eb07f8f-d508-d466-c4b1-5a343ab21e12.png)

 ③. その他
　グループ毎の分析や、ベイズ推定などもできます。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3839172/7b550faf-f399-d1f4-2997-cfebe134afa4.png)


### まとめ
 今回は、SPSS AMOSについて基本機能を中心にご紹介しました。
 構造方程式モデリング（Structural Equation Modeling, SEM）をするための機能が十分に搭載されたソフトウェアです。パス図を描いたり、分析内容をイメージしながらノンプログラミングで分析できるようなツールですので、興味をもたれた方は、活用を検討してみてください。

 
 # 参考

SPSS Modeler ノードリファレンス目次

https://qiita.com/416nishimaki/items/503037195081d3323eee

SPSS Modeler 逆引きストリーム集

https://qiita.com/416nishimaki/items/4bf813e6cba84b2a1008

SPSS funさん記事集

https://qiita.com/spssfun2017

SPSS連載ブログバックナンバー

https://qiita.com/416nishimaki/items/24c054defbe7280bcf0e

SPSSヒモトクブログ

https://www.ibm.com/blogs/solutions/jp-ja/category/bigdata-analytics/spss-modeler-himotoku/