2018年12月07日 Version 23.3

SPSSエイモスとリズレル

操作法と評価

村瀬 洋一


 AMOSは、構造方程式モデル(SEM)のためのソフト。共分散構造分析ともいう。因子を使った重回帰分析やパス解析(重回帰分析の繰り返し)、確証的因子分析が簡単にできる。ソフト上で分析モデルの図を描けば、SPSS形式データファイルなどを読み込んで分析結果を図の上に表示する。図を描いてボタンを押すと分析するので、因子を使ったパス解析などが簡単にできる。以下のサンプルモデル(AMOSで開くことができる)を参考に、自分でモデルを描いてみるとよい。因果関係が左から右に流れ、右端の変数が最終的な被説明変数(目的変数)となるように図を描くのがこつ。以下で操作法を解説する。

 なおAMOSでは、観測変数は連続変数(とダミー変数)のみを用いることができる。連続変数(連続量)として考えられないような変数、例えば職業カテゴリーなどは、基本的には使用できない。ただしAMOS7以降は、カテゴリカルデータにも一部、対応している。AMOSマニュアルの「順序- カテゴリカル データ」を読むとよい。カテゴリ化された回答に数値を代入する方法を使うことができる。ベイズ推定を使うので難しい。

 実在する変数を「観測変数」(モデルでは四角でかく)、観測変数を用いて人工的に作る変数(楕円)を「潜在変数」と呼ぶ。潜在変数のことを因子ともよぶ。観測変数は、データファイルの中に、実際に存在する変数である。



サンプルモデル1 reg1.amw 基本的な重回帰分析の例

サンプルモデル2 reg2.amw 被説明変数を因子にした重回帰分析の例

サンプルモデル3 reg3.amw 被説明変数を2つにした重回帰分析(パス解析)の例

サンプルモデル4 reg4.amw 被説明変数をさらに増やしたパス解析の例

サンプルモデル5 factor1.amw 基本的な因子分析の例

サンプルモデル6 reg5.amw 基本的なPath解析の例


amosrei.zip 1〜6をまとめたzipファイル

13amos.pdf 操作法要約PDF



以下はおまけ


1) se97mihon.sps SPSSシンタックス例。slelct文で人数を減らす例。

2) se97miss.sav 欠損値を削除したSPSS形式データファイルの例(仙台97年調査)元のデータよりかなり人数を減らしてある。

3) s7hyo03.rtf 仙台調査票 サンプルでは問6をもとに変数の方向は逆転した新変数や、年齢、学歴などの質問項目を使っている。

4) factrei.sps 通常型の探索的因子分析のSPSSシンタックス例




5) rei35.amw 因子を使ったパス解析のモデル例。福島2015年調査データでの例。

6) 15fukuv9rei.SPS SPSSシンタックス。福島2015年調査データでの例。

7) 15fuku9rei.sav SPSS形式データファイル。福島2015年調査データでの例。震災以前から福島市に住んでいた人に絞り、元のデータより人数を減らしてある。

8) 15FKhyomihon.docx 福島調査票。


注意点

 まずSPSSシンタックスで、方向を揃えた新変数を作り、select文で欠損値の人数を減らす。
 新変数が問題なくできているか、度数分布を見て確認する。
 その後、SPSSのデータ画面で、データファイルsavを、名前をつけて保存する。
  →新しいデータをAMOSで使い分析。

以下のようなシンタックスを実行すればよい。


/*****  方向を逆転した新変数作成   *****/
COMPUTE      TYONAI =5-Q6A.
COMPUTE      YAKUNIN=5-Q6B.
COMPUTE      GIIN   =5-Q6C.
COMPUTE      axlife =5-Q29A.
COMPUTE      axincom=5-Q29B.

/*****  欠損値を除く処理    *****/
SELECT IF TYONAI  <9.
SELECT IF YAKUNIN <9.
SELECT IF GIIN    <9.
SELECT IF axlife  <9.
SELECT IF axincom <9.

FRE VAR= TYONAI  YAKUNIN  GIIN  axlife  axincom .



  村瀬 応用調査実習ホームページ

  大阪大学狩野さん チュートリアル

  各種サンプルデータ

   ★2007, 2010年調査データについて(学内のみ)



目次

AMOS操作の流れ
構造方程式モデルの考え方
社会調査データにおける構造方程式モデルの作り方
エイモスでのカテゴリカルデータについて
リズレルについて

AMOS操作の流れ


SPSS Amos 基本操作と評価記事

 これを読めばソフト操作法は完璧!

 エイモスは初心者にも分かりやすい分析ソフトです。SPSS社は、以下のようにリズレルの扱いをやめました。バージョン7.2で終わりです。今後は、後継ソフトのAMOS(エイモス)によって構造方程式モデル(SEM; structural equation model, 共分散構造分析)について対応することになります。エイモスは、マウスでモデルの図を書けば、面倒なプログラムを組まなくても分析ができます。2次モーメント(分散)だけでなく、1次モーメント(平均)を考慮した分析をできる、ということで、analysis of moment structureの略がAMOSなのだそうです。
 SPSSのオプションとして販売されていますが、SPSSとはまったく別のソフトとして動くので、拡張子が*.sav のSPSS形式データファイルさえあれば分析できます。もともとは、SmallWaters Corporationというところが開発したものです。データファイルはSPSS形式データファイル(拡張子がsavの形式)の他、エクセル形式やdBase, ロータス、アクセス、テキスト形式など、さまざまな形式のものを読み込みます。価格は、SPSSが入っている大学の関係者には5万円ほどで販売していますが、通常版は10万円ほどです。機能を限定した無料の試用版もあります(詳しくはSPSS社ホームページ参照)。

 Amosを買うと、パッケージにはAmos GraphicsとAmos Textの2つが入っています。後者は、リズレルのようにプログラムを組んで分析することができます。複雑なモデルについて分析するときは、後者の方が楽かもしれません。以下は、すべてAmos Graphicsの説明です。ふつうのパス解析(重回帰分析を繰り返すもの)を行うのも、AMOSだと図の中に数字を書き込む手間が省けて便利です。私の実感では、これまで1時間近くかかっていたパス解析の分析と図の作成が、5分ほどでできる、という感じです。初心者は、AMOSフォルダに入っているサンプルプログラムの4番(AMOSフォルダに入っているExample4が通常型の回帰分析のサンプル)を読み込み、これをもとに図を書き換えて分析すると良いでしょう。四角が実在する変数(観測変数)、丸いものが潜在変数(因子)として図を書きます。適切なモデルを作り、因子について、どこか1つだけ観測変数へのパス(矢印)にパラメーター1をつける、など忘れなければ、簡単に動くでしょう。とても良くできたソフトです。AMOS7以降は、カテゴリ変数(0,1型などのダミー変数)に対応している。ただ、カテゴリー変数として指定しないと、矢印が刺さっている変数としてはダミー変数は使えない。
 

SPSS社 Amosの説明

 

1.構造方程式モデルの考え方

1.1.分析の目的
 エイモスやリズレル、EQSなどのソフトを使うと、確証的因子分析や、因子を使った重回帰分析等、構造方程式モデル(セム、共分散構造分析とも言う)と呼ばれる高度な分析を行うことができる。通常の分析だと、まず因子得点を作り、その後に重回帰分析を行うが、構造方程式モデルでは、最尤推定法により、一括して計算結果を出すため、より正確な結果が出る。
 分布の形が完全に正規分布ならば、最尤推定法も、従来型の最少二乗法も、同じ結果になるが、分布が歪んでいる場合は、最尤推定法の方がよいと言われる。ただし経験上、サンプル数が多ければ(約1000人以上あれば)、どちらでもあまり結果は変わらない。なお、少人数のデータで構造方程式モデルでの分析はできない。最低、400人くらいは必要である。
 
1.2.モデル
 よく使われるモデルは以下の3つである。
 1)確証的因子分析 −通常型の探索的因子分析とあまり変わらない
 2)因子を使った重回帰分析
 3)パス解析(複数段階の重回帰分析)
 
 実在する変数を「観測変数」、観測変数を用いて人工的に作る変数を「潜在変数」と呼ぶ。潜在変数のことを因子とも言う。観測変数は、調査票の中に実際に存在する変数である。
 
1.3.適合度係数(モデル全体の当てはまりの良さの指標)
 モデル全体のあてはまりの良さ(フィッティング)を表す係数は各種あるが、RMSEAはモデルに無駄に複雑な部分がないかどうかを表すものであり、最近よく使われる。0.10以下ならば良いモデルであり、0.05以下だとかなりあてはまりが良い。いくつかのモデルを試し、RMSEAが0.10以下で、AGFIが0.90以上のモデルを、最終的に採用すると良いだろう。モデル全体のp値は、モデルとデータの距離についてのものである。これは通常とは逆に、p値が大きいほどよい。p値が0.05より大きければ、モデルとデータの距離は5%水準で有意ではない、という意味である。つまりモデルとデータの距離がないので、適合しているという意味になる。GFIやAGFIは、多くの場合0.90以上になる。カイ二乗値は小さいほどよく、自由度以下になると良いが、調査データを使った場合は、ある程度複雑なモデルだと、あまり小さくはならず、自由度の2倍くらいである。詳しくは、各種参考文献を読むこと。
 

2.AMOSによる分析

2.1.SPSS本体でのデータファイル作成
 エイモスはSPSS社が売っているオプションのソフトだが、SPSS本体とはまったく別個に動かすことができる。
 あらかじめ、自分が分析に使うためのSPSS形式データファイル(savと名前が付くもの)を作っておく。まずSPSS本体で、SPSS形式データファイルを作る。この際に、シンタックスのselect文を用いて、欠損値は除いたデータファイルを作る。モデルで用いる変数については、すべて欠損値がないものにした方がよい。AMOSは欠損値があるケースの削除(リストワイズでの削除)に対応していないのである。そのため、モデルが変わるごとに、データファイルも作らなくてはならないのがやや面倒ではある。以下のように、SPSS本体で、シンタックスウィンドウにselect文を書いて実行すれば良いが、これは簡単である。シンタックス使えば、どのようなデータファイルを作ったか記録が残るのも良い。
 
select文の例
 Q6の欠損値が9の場合、以下のようにすれば9以外の値のみが残る。neはnot equal
  SELECT IF Q6 ne 9 .
 
 Q8Aの値を8未満とする。
  SELECT IF Q8A < 8 .

自分のモデル内に、観測変数(四角)が5個あるなら、SELECT文を5行書くことになる。SPSSのシンタックスウィンドウに書いて実行すればよい。Q8Aなどの変数名は実在の名前を正確に書くこと。

 SPSS上でシンタックスを書き、実行する。その後、単純集計表などを出すと、欠損値の人が削除され人数が減ったデータとなる。その後、名前をつけてSPSS形式データを保存し、AMOS上で、保存したデータファイルを読み込んで分析する。

 
2.2.AMOSの操作
 1)AMOSを起動し、自分の好きなモデルの図を書く
 起動後、以下の図のように、自分で考えたモデルを自由に書けばよい。AMOSのexamplesフォルダに例があるので参考にしても良いだろう。四角が実在する変数(観測変数)、まるが潜在変数である。
 2)モデルの図を書く際の注意点
 四角の変数(観測変数)は、データファイルの中にある変数名を、正確に書く。四角を書いたら右クリックして、変数名などを書けばよい。片方向矢印(変数間の関連を表す)の刺さっている変数(内生変数)には、必ず誤差項からの矢印も刺さることになるので注意。この矢印を忘れるとエラーが起きる。外生変数とは、他の変数からの矢印が刺さっていない(相関を表す双方向矢印は刺さっていてもよい)変数である。つまり、モデルの中で結果になることがまったくなく、原因にのみなっている変数。外生変数も内生変数も、両方とも観測変数である。なお、両方向矢印は相関を表しているので、誤差項については気にしなくてよい。
 図を書く際に、因子から観測変数へのパスのうち、どれか一つは必ずパラメーターを1とする(このパラメーターを固定母数という)。そうでないと、どれを基準に因子を作れば良いのか、ソフトが判断できない。パスを右クリックしてパラメーターを入れればよい。以下の図1を参照。
 なお画面上の「ツール」をクリックしてマクロを選び、潜在変数を名付けるを選ぶと、誤差項に自動的に名前を付けてくれる。また、ペンのボタンを押してから各変数をクリックすると、図を整えてくれる。
 3)画面上の「表示」をクリックして「分析のプロパティ」を選び、分析の詳しい内容を決める。ふつう、分析法は「最尤法」で、その他、「標準化推定値」と「重相関係数の平方」を選べば、あとはとくに変更しなくてよい。「表示」をクリックし各プロパティを選ぶと、各種の設定を変更できる。

 なおこの図は、基本的な因子分析の例である。矢印の方向は、必ず、因子(楕円)から観測変数(四角)の向きとなることに注意。また、因子からの矢印のうち1つに、パラメーター1をつける。

 4)タイトルを書く。上記の図のように、データの名前や年なども書くとよい。タイトル中に GFI=\gfi AGFI=\agfi CFI=\cfi Chi-square=\cmin df=\df p=\p AIC=\aic RMR=\rmr RMSEA=\rmseaなどと書くと、GFIなどモデル全体の適合度係数が表示される。


 5)上記の図のように、画面上「ファイル」をクリックし、使用するデータファイルを指定する。なおこの時「グループ化変数」のボタンを押して性別を選び、「グループ値」のボタンで男性の値を選べば、男性のみが表示される。
 6)図を書き終わったら分析する。図1のように分析ボタン(鍵盤のようなボタン)を押せばよい(あるいはctrl+F9)。上記の点に注意し、的確にモデルを書いていれば、OKと出る。
 7)結果表示のボタン(上向き矢印の大きなボタン)を押すと、数字が図の中に書き込まれる。この状態でコピーをすれば、図をワード等の画面に貼ることもできる。
 8)画面上「表示」をクリックし、テキスト出力を見ると、より詳しい分析結果も表示される。テキスト出力には有意かどうも表示されるので、有意でないパス(矢印)は削除して、分析をくりかえし、最適なモデルにたどりつくとよい。
 
2.3.結果のまとめ方
 AMOSの図をコピーしてワードなどに貼ることができる。標準化した分析結果を貼るとよいだろう。AMOS上で Ctrl+C で結果をコピーし、ワード画面に移って貼り付ける。なるべく、左が原因で右が結果になるよう、因果関係の流れが明確な図を作るとよい。
 モデルの適合度が低い場合は、男女別に分析する、因子の作り方を変える、別の変数を加えてモデルを作り直すなどするとよいだろう。
 例えば下記の図のように、基本属性の他に、人間関係や心理変数などの変数も加えてモデルを作ることもできる。複数段階の重回帰分析のモデルは、パス解析とも呼ばれる。  ただし、モデルはできるだけシンプルな方がよいので、無意味な変数を加える必要はない。また、心理変数は、権威主義的態度など、無意識や態度(人格や、深層心理に近いもの)と、表面的な意識と、大きく2つに分けて考えることができる。経験的には、意識を説明するモデルの場合、両方を入れたモデルは決定係数が高い。



3.社会調査データにおける構造方程式モデルの作り方

 社会調査データに関して構造方程式モデルで分析する場合は、下記の図のようなモデルで考えると良いだろう。左端に年齢や教育年数などの基本属性を配置し、次に、関係的資源や、財産保有数、階層帰属意識など社会的地位に関するものを置く。右端に、最終的な被説明変数として、自分の研究テーマに関するもの(この例では将来不安感の質問項目)を置くとよい。社会的地位の次に、このモデルの被害金額の代わりに、基本的な態度変数を置いてもよい。社会的地位や、態度変数がないモデルは、決定係数が低くなりがちであるが、調査データの中に、適切な変数がない場合は、仕方がないことである。



4.分析時の注意点

4.1.データ中に欠損値がある場合
 SPSSデータファイル中に欠損値がある場合は、AMOSでは一部の分析結果が出ない。ただしAMOSの画面上の「表示」をクリックして「分析のプロパティ」を選び、推定タブの中の「平均値と切片を推定」を選べば、分析結果が出る。
 しかしこの場合、GFIやAGFIや標準化係数などが出ない。上記のように、SPSS本体を使って、欠損値を除いたデータファイルをあらかじめ作っておいた方がよい。
 
4.2.エラーとなり分析結果が出ない原因
 1)自分で書いた観測変数名が間違っている。データファイルの中に存在する名前を書くこと。
 2)因子を作る時に、上記の固定母数(パラメーター1)を忘れた
    固定母数についての説明をよく読むこと。因子から観測変数へのパスを1つだけ右クリックしてプロパティ → パラメーターボックスに半角数字で1を入れる。
 3)誤差項をつけ忘れた −矢印がささっている変数(内生変数)には必ず誤差項をつけること
   上の図で、両方向矢印ボタンの右にあるボタン(誤差項をつけるボタン)を使えば、誤差項をつけることができる。
   誤差項には、e2 など適当な名前をつける。他の変数と同じ名前でなければよい。

 分析した時にエラーが出る理由は、おおむねこの3つの理由である。その他、あまり似ていない複数の観測変数を使って無理な因子を作ったり、強い多重共線性がどこかにあるモデルなど、不適切なモデルは分析結果が出ない。いくつの因子をどのように作るべきか等を、よく考えてモデルを作れば良い。試行錯誤が大切。テキスト出力の内容を見ると、問題のある変数が表示されるので、モデル内のどこが不適切か見当をつけるとよい。なお社会調査データを用いる場合、外生変数として年齢や学歴、収入(または財産)など基礎項目を入れた方が、モデルの適合度は上がる。
 また、誤差間相関をやたらと入れたモデルは不自然すぎて良くない。
 
4.3.カテゴリー変数について
 連続量の変数のみをAMOSで扱うことができる。4段階回答などの変数ならば、連続量として扱ってもよい。しかし2段階では、連続量としてみなすことはできないとされる。また、例えば、職業の問で、事務職1,専門職2,その他3などとしたものは、数字に量的な意味はない「名義尺度」あるいは「離散変数」である。このようなカテゴリー変数を、AMOSの分析にて使ってはいけない。
 しかしダミー変数(0,1型の変数)ならば、分析に用いてもよい。SPSS本体を使って、ダミー変数をあらかじめ作っておけばよい。
    
    ダミー変数作成のSPSSシンタックスの例
    SPSSのシンタックスウィンドウにて、以下を実行する
    以下は、dsenという新たなダミー変数を作る例である。dsenの値は、0,1である。
    もともと存在する変数Q5をもとに、Q5が1と4の場合のみ、dsenの中身を1にする。
    それ以外はdsenは0となるという例。1行目で、新変数dsenを作成している。
    
    compute           dsen=0.
    if  (Q5 =1 )      dsen=1.
    if  (Q5 =4 )      dsen=1.
    
    
 

5.操作法を把握するこつ

 基本的に、AMOSフォルダに入っているサンプルプログラムをいろいろ読み込んでみて、そのパス図を書き換えて分析してみると分かりやすい。サンプルプログラムをもとに、変数名だけを書き換えて、何度か分析してみることが、AMOSの使い方を覚えるこつ。

 また、自分が作ったモデルが動かない時は、上記3.2をよく読み、エラーが出る原因を理解することが重要。

 

 ソフトの欠点は以下です。最低限、これらは早急に改善してほしいところです。
・図の矢印上に、数字をのせることができるようにする。係数が自由に動かない。
・SPSSデータを読み込んだ場合、欠損値処理を、平均値で置き換え以外にもできるようにする。
・2値変数(1−0型の変数)を扱えるようにする。現状ではリズレルやEQSを買うしかない(矢印がささっていない変数として2値変数を使うのは問題ない)。現実には、データ人数が約1000人以上いれば、2値変数を使っても、あまり問題ないようである。厳密には、モデルのあてはまりが悪くなる。また、以下を参考にすれば、AMOSでもある程度は2値変数を扱えるかもしれない
・有意水準を図上で表示可能にする。

6.AMOSによるカテゴリカルデータの分析

以下のAmos User Guideにて"dichotomous"で検索する。

Amosユーザーズガイド 英語版PDFファイル

あるいは以下を参考にする。

researchgate Q & A


AMOSによる2値データの分析について

IBM support Q & A

Amosユーザーズガイド 日本語版PDFファイル

Talkstats Q & A


AMOSでのカテゴリカル変数の扱いについては、AMOSのHELPで

Help->Contents in AMOS, Index tabを選択し, "Parameter identification with dichotomous variables" で検索する。

順序カテゴリカルrescaling は、AMOSにおいてベイジアン推定(Bayesian Estimation)によってのみ可能。最尤推定法のための分布の前提が当てはまらないデータの場合は、Bootstrappingを用いる。

順序カテゴリカルデータの扱いについて

Amosdevelopment Q & A

Amosユーザーズガイド 日本語版PDFファイル 例33 順序カテゴリカルデータ


SEM with Amos PDFファイル

SEM with Amos2 PDFファイル

参考文献

朝野煕彦・小島隆矢・鈴木督久. 2005. 『入門 共分散構造分析の実際』講談社.

狩野裕・三浦麻子.2002.『グラフィカル多変量解析―AMOS、EQS、CALISによる目で見る共分散構造分析』現代数学社.

村瀬洋一・高田洋・廣瀬毅士. 2007. 『SPSSによる多変量解析』オーム社.

豊田秀樹. 2007. 『共分散構造分析 Amos編―構造方程式モデリング』東京図書.

与謝野有紀他編.2006.『社会の見方、測り方 −計量社会学への招待』勁草書房.

SmallWaters Corporation. 1997. Amos Users' Guide Version 3.6. SPSS.

Byrne, Barbara. 2009. Structural Equation Modeling With AMOS: Basic Concepts, Applications, and Programming (Multivariate Applications) 2 edition. Psychology Press.



LISREL8  評価記事と簡単マニュアル

 SPSS社では、リズレルのバージョン8に対応する予定はないが、リズレル8をどこかの会社を通して買うことはできる。リズレルには、ダミー変数への対応など、エイモスにない機能もあり、便利なこともある。ただしエイモスのように、図を書いてボタンを押すと分析してくれるわけではない。自分でプログラムを書く必要があるが、以下のように、プログラム作成を補助する機能があり、さほど難しくはない。

SPSS形式データを読み込んでリズレルを使う方法

 LISRELを使うには、素データの読み込みや、共分散行列の読み込みなど、データ読み込み法が何種類かあるが、SPSS形式データを読み込むのが、もっとも簡単であろう。その場合、リズレルのプログラム文(SIMPLISやLISREL)を書く前に、SPSS形式データを読み込み、プレリス形式データ(Prelis system file)を、まず作ることになる。以下の手順で操作する。



1)プレリス形式データの作成
 画面上Fileをクリック → New Prelis Dataを選び OKボタンを押す
 画面上Fileをクリック  Import External Data
 Fileの種類ボックス→ SPSS for Windows
 何もチェックせずにDoneボタン
 名前をつけて保存する      .psfとつくファイル名で保存

 これで、プレリス形式データが保存される。


2)Simplisプログラム作成準備
画面上Fileをクリック →  New Simplis Project
 projectとは命令文やデータやパス図などを1つにしたファイルである。
 名前をつけて保存する      .spjとつくファイル名で保存

 これで、プログラム(これから書く)が保存される。

 なお、.outが出力ファイル、 .pth がパス図のファイルである。
spjファイルの中に、これらがすべて入っている


3)画面上Setupをクリック → Variablesを選ぶ   Add/Read Variablesボタン   Read from fileのボックスをクリックし、   ファイルの種類はPrelis system fileを選択   Browsボタンを押し、 .psfとつくファイルを読み込む  データウィンドウが表示された状態で、画面上Dataをクリックし、Define Variablesを選択すると、欠損値指定等ができる 4)画面上Setupをクリック → Build SYMPLIS Syntaxを選択  以下のような命令文が自動的に生成される  SYMPLISというのが分かりやすい形式のプログラム文である。  LISREL形式の文だと、Path DiagramをPD と書くなど省略されておりやや分かりにくい。 ★SYMPLIS文の例 SYSTEM FILE from file 'C:\data\test1k.DSF' Relationships Q5V2=Q1 Q5V2=Q4V1 Q1=Q4V1 Wide Print Print Residuals Path Diagram End of Problem 5)分析モデルを数式の形式で書く  プログラム内の、Relationshipsの後に変数名と数式を書く。  以下の例のように書けばよい。イコールの左側が被説明変数Y  Q3などはSPSSファイル内の変数名を書く  以下の例では、Q3をYとして、 Q1 Q4がXとしている。さらにQ1もYとなる、 2段階の重回帰モデル(パス解析モデル)となっている。 Q3=Q1 Q3=Q4 Q1=Q4 Path Diagram の上に Wide Print Print Residuals などの命令文を書いても良い。残差などが出力される。 6)モデルにもとづき計算実行  人が歩いているボタン(Lがついている)を押すと計算が始まる。上記の図を参照。 7)計算結果が出る  パス図が表示された状態で、画面上の方のEstimates ボタンを押し、 Standaridized Solution 等を選ぶと、標準化解などが表示される。 Expected Change を選ぶと、入れるべきパスなども表示される 計算結果のファイルを適当な名前を付けて保存する


以下は古い文章

SPSS LISREL7.2  評価記事と簡単マニュアル

 共分散構造分析(共分散分析とはまったく別のもの)は近年様々な分野で使われており、その分析プログラムとしては、SPSSのリズレル7が有名なものの1つである。白倉(1991)が日本語による数少ない解説書だが、これは文章が日本語として未整理で、残念ながら、これを読んでもプログラムの組み方が分からないことは、私の周囲では定評がある。
 この文章をよくよく読むと、SPSSのデータからリズレルで分析したい変数を取り出すには、namesというコマンド(NAライン)を使う、ということが分かる。しかし、現在のWindows用SPSSリズレルの最新版バージョン7.2には、namesコマンドがない。だから、この文章を読んでも、リズレル7.2は使えない。ただし、この文章を読めば、リズレルモデルの数学的な特徴は把握できるかもしれない。以上の事情から、Windows用SPSSリズレル7.2の簡単なマニュアルを作成した。
 リズレルのバージョン7.2では、namesコマンドの代わりにprelisコマンドを使う(他にもいろいろと方法はあるらしい)。これを使うと、たとえば、社会調査データの何十問もある質問項目のうち、10項目ほどについて、リズレルで分析したい場合、その10項目だけを取り出してリズレルで読み込むことができる。
 以下が、プログラムの文例である。SPSSのデータ読み込み文の後にこれを書けば、リズレルモデルを用いた分析ができる。ここでは、プログラムの1例として、ある調査票の質問項目中の一部の問を用いたプログラムを提示する。分析に用いる質問項目すべてをprelisコマンドの文中に書けばよい。
 共分散構造分析について基本的なことをある程度理解していれば、以下のプログラム文例と図を比較し、変数名を変えて同じ様なプログラムを書くことによって、SPSSリズレルを用いた分析ができるだろう。
 このプログラム例は、下記の図3のようなモデルを表している。図中の楕円で表されている変数が潜在変数(因子)である。どのような観測変数(現実に存在する変数)を用いて潜在変数を作ったか(測定モデル)は、図1と図2を見れば分かるだろう。
 図3では、最終的に説明される潜在変数が2つ(大衆的文化活動、正統的文化活動)あり、それら2つの被説明変数を説明するために、説明変数が4つ存在する、という因果関係のモデルを表している。
 プログラムの最後の解説★★★を印字して、プログラムの文例と照らし合わせてみれば、プログラムのおおまかな構造は理解できるだろう。より詳しくは、リズレルのマニュアル(英語版しかないが)の、パス図とプログラム例を見れば分かる。英語は難しくとも、図を見ながらプログラム例を真似して、変数名だけを変えてプログラムを書いてみれば、結構分析できる。SPSSのヘルプにも日本語によるごく簡単な解説がある。

 注  現在、諸般の事情で、図が作成中で存在しません。しばしお待ちください。

参考文献
 白倉幸男.1991.「LISREL: リズレルモデル」.三宅一郎他編.『新版SPSS 
   X 3  解析編2』223-310.東洋経済新報社.
 Joreskog&Sorbom. 1989. 『 LISREL7 :A Guide to Program and Applications.
   2nd edition 』 SPSS
 SPSS. 1990. 『SPSS LISREL7and PRELIS:user's guide and reference』SPSS.

謝辞
 このマニュアルを作るに当たり、東北大学文学部行動科学研究室の神林氏より、プログラムの意味について細かい点まで教えていただいた。記して深く感謝します。ただし、文章はすべて村瀬が書いたものであり、このマニュアルやプログラム例についての文責は、すべて村瀬にあります。





SPSSリズレルのプログラムの例
 SPSSのデータ定義文の後に、以下のようなプログラムを書いて実行すれば、
図3で示したようなモデルの分析ができるはずです。
 ミスを見つけた方は、村瀬のメールアドレスまでどんどんご連絡下さい。


/***    以下が、リズレルのプログラム                               ***/
/***      変数FSCOREからCITYAまでが調査データに実在する観測変数 ***/
/***    変数FSCOREは父親の社会的地位   EDUは本人学歴(教育年数)***/
/***    変数GENは現職職業威信スコア      INCは本人年収            ***/
/***    変数ZAISANは保有財産数                               ***/
/***    変数MOTIIEは居住形態        NENREIは本人年齢         ***/
/***    変数KIBOは従業先規模        CITYAは居住地の都市度    ***/
PRELIS
 /variables= FSCORE 
  EDU GEN INC ZAISAN
  q01 q02 q03
  q04 q05 q06 q07
  q08 q09 q10
  MOTIIE NENREI KIBO CITYA
 /matrix=out(*)
 /type=polychor
.

LISREL / "political awareness in SENDAI 1997"
 /da ni=19 no=889 ma=pm
 /la /father/gakureki/isin/syunyu/zaisan
  /keniaru/zibunno/meue
  /houritu/yono/fukuzatu/omakase
  /seiziman/fusin/sogai
  /kyojuu/nenrei/juugyou/tosi
 /mo ny=15 ne=6 nx=4  fi ly=fu be=fu ga=fu  ps=di
 /fr ly(4,3) ly(5,3) ly(7,4) ly(8,4) ly(10,5)
     ly(11,5) ly(12,5) ly(14,6) ly(15,6)
 /fr be(2,1) be(2,4) be(3,1) be(3,2) be(4,1) be(5,1)
     be(5,2) be(5,3) be(5,4)
     be(6,1) be(6,2) be(6,3) be(6,4) 
 /va 1 ly(1,1) ly(2,2) ly(3,3) ly(6,4) ly(9,5) ly(13,6)
 /fi  te 1 te 2 
 /le /homenv/educ/status/econenv/author/polawr
 /ou se tv ss ad=off 
. 


★★★ リズレルのプログラムの説明 ★★★
0.共分散構造分析の基本
 共分散構造分析で用いる変数は、
 1)観測変数(実際に存在する変数)
 2)潜在変数(因子)          の大きく2種類に分かれます。

 共分散構造分析のモデルも、大きく2つに分かれます。
 1)測定方程式モデル 観測変数(実際に存在する変数)で潜在変数(因子)を作る。
           因子分析の部分。
 2)構造方程式モデル 潜在変数(因子)の間の因果関係のモデル。
           潜在変数を用いたパス解析。

 構造方程式モデルに、さらに、外生変数(これも実際に存在する変数)を加えること
もある。つまり、いくつかの潜在変数と外生変数でパス解析を行う場合もある。

 この文例では、一般的な因果モデルを外部から規定する要因として、4つの外生
変数(居住形態、年齢、従業先規模、都市度。プログラム例中の LISREL /laライン
の最後の4つです)をモデルに投入している。
 なお、この文例では、誤差間相関はなしとしている。

1.PRELISコマンドについて
 SPSSのデータのうち、LISRELで用いる変数を取り出す。
 /variables以降の文で出ているのが、SPSSのデータ名である。
 例えば、調査データに50個の変数があるが、分析に用いるのはそのうち19個
だけ、という場合、PRELISで19個取り出す。
 /matrix=out(*)
 /type=polychor  と書くと多聞相関のデータ行列を出力する。

 /type=covariance と書くと共分散のデータ行列を出力する。
 多分相関だと、5段階尺度のような、厳密には連続変数とは言えないような、
 順位尺度による相関のゆがみを補正した相関になる。社会調査データでは、
これを用いた方が良い場合もある。

  しかし、多聞相関に最尤推定法を使うと、尤度が大きく歪んでしまうので、
WLS推定法を使うべきかもしれない。PRELISでは、変数の種類を指定しないとデ
フォルトの連続変数扱いになってしまうので、4段階尺度以下の場合なら、変
数に(OR)の指定をしたほうがよいらしい。5点尺度以上なら、むしろ、(CO)の
ままにしておいたほうがいいというのが通説らしいが、まだ勉強中で、この辺
は詳しくは不明です。詳しくはリズレルのマニュアルを参照してください。


2.LISRELコマンドについて
 PRELISコマンドで取り出したデータを用いて、実際に分析を行う。
 最初の行はタイトル。
★/daの行(データ・ライン)の指定について
ni 用いる変数の数 投入変数がprelisで指定した19個という意味
no 分析に用いるデータの人数が889人という意味。
   面倒だが、PRELISの実行時に表示されるものを書く。
ma=pm PRELISで作成したpolychoric行列のデータを用いるという意味
  pm多分相関 cm共分散 km相関

★/laの行の指定について PRELISに書いてある19個の変数にラベルを付けている。

★mo モデルの指定
 ny 観測変数は15個 ne潜在変数6個 nx外生変数4個
 nyとnxを足すと19個である

 fi 外生変数を入れるときに入れる命令(外生変数を入れないときは書かなくて良い)

 ly ラムダワイの行列(因子から観測変数へ行くパス)
 be β行列(内生潜在変数間のパス)
 ga ガンマ行列(外生変数から内生変数へのパス)
 ps 内生変数の誤差間相関 ぷさい
     fu行列の型の指定 −非対称行列、という意味
      たいていの場合fuと書いておけばよい
     di行列の型の指定 −対角行列

★fr ly ラムダワイ(測定モデル)のフリーパラメータについて
   ly(観測変数の番号,潜在変数の番号) 
   ly(4,3)は、ラベル行4番目のsyunyuによって潜在変数3番を測定、の意味
 このプログラム例では、潜在変数3番は、観測変数4,5とva行の観測変数3で測定
されていることになる。

★fr be 潜在変数間の因果関係の指定
(2,1) 1から2へのパス le行(後述)でいうとhomenvからeducのパス

★va 固定母数 1にする ly(1,1) (観測変数の番号,潜在変数の番号)
 このプログラム例では、潜在変数1番と2番は、固定母数の観測変数のみで測定して
いることになる。観測変数1つで潜在変数を測定しているモデルになる。
 複数の観測変数で潜在変数を作る場合、ふつう、観測変数のどれか一つを固定母数1
とする。

★fi te 1 潜在変数1は誤差を0にする、という意味

★le 潜在変数(イータ)にラベルをつける

★ou アウトプット 何を出力するかの指定
 se標準誤差、tvt値 ss標準化解 ad反復推定の回数をデフォルトより多くさせる。
 ou all だとすべて出力される。


外生変数(モデルの中で矢印を受けてない変数)について
 ガンマについてはどの変数を用いるか指定していないので、/fr lyや/vaで指定して
いない変数がすべて外生変数になる。この文例では、19個の投入変数のうち15個
しか指定していないので、残り4つは外生変数として用いられる。


 この文例だと、すべての外生変数から内生変数(因子)へのパスが存在する。
 外生変数からのパスを削りたい場合以下の通り。
/fi ga(1,4)という行を挿入すると、外生変数4から内生変数1へのパスが削られる。
外生変数4とは、この文例では、19番目の投入変数tosiのこと。
( ,)内の原則は、カンマの前半の数字が結果(受け取る変数)、後半が原因

 より詳しい説明は、参考文献にあげたリズレルの英文マニュアルを見てください。


付録 図2のモデルについてのプログラム
PRELIS
 /variables=FSCORE EDU GEN INC ZAISAN
  q01 q02 q03
  q04 q05 q06
  MOTIIE NENREI KIBO CITYA
 /matrix=out(*)
 /type=polychor
.

LISREL /"murase's sample model"
 /da ni=15 no=919 ma=pm
 /la /father/gakureki/isin/syunyu/zaisan
  /keniaru/zibunno/meue
  /houritu/yono/fukuzatu
  /kyojuu/nenrei/juugyou/tosi
 /mo ny=11 ne=5 nx=4  fi ly=fu be=fu ga=fu ps=di
 /fr ly(4,3) ly(5,3) ly(7,4) ly(8,4) ly(10,5)  
     ly(11,5) 
     be(2,1) be(2,4) be(3,1) be(3,2) be(4,1)
     be(5,1) be(5,2) be(5,3) be(5,3) be(5,4)
 /fi ga(1,1) ga(1,3) ga(1,4) ga(2,1) ga(2,3)
     ga(4,1) ga(4,3) ga(4,4)   
 /va 1 ly(1,1) ly(2,2) ly(3,3) ly(6,4) ly(9,5) 
 /fi  te 1 te 2 
 /le /father/educ/status/econenv/polawr
 /ou se tv ss ad=off
. 




おまけ SPSSでのパス解析

 SPSSで通常のパス解析を行うには、以下のような重回帰分析のプログラムを
シンタックスウィンドウに書いて、実行すればよい。私の周辺には、共分散構造分
析のように、わざわざ因子得点を使って分かりにくい変数で分析するよりも、通常
のパス解析の方がよほどよい、と言う人間がたくさんいる。
 パス解析とは、通常の重回帰分析の繰り返しである。ただし、有意でないパスは
削除して、繰り返し分析を行い、最終的なモデルにたどりつくとよい。

 以下のプログラムは、複数の重回帰式を分析することになる。
 /MISSING LISTWISE の行によって、欠損値がある人のデータはすべて削り、
各重回帰式の分析対象の人数をすべて同じにしている。LISTWISEのかわりにMEANSUB
と書くと、欠損値を平均値で置き換える。

★なお、以前のSPSSは、複数の/DEPENDENT 行を、1つのREGRESSIONシンタックス
の中に書く(つまり、複数のモデルを一度に実行する)ことができたが、現在はでき
ないようだ。複数のモデルを書くと、どのモデルも、すべて欠損値を削除して同じ人数
になるというのがメリットだが、人数が減ってしまう。


REGRESSION
   /MISSING LISTWISE
   /DESCRIPTIVES MEAN STDDEV CORR SIG N
   /STATISTICS COEFF OUTS R ANOVA
   /CRITERIA=PIN(.05) POUT(.10)
   /NOORIGIN
   /DEPENDENT q10
   /METHOD=ENTER  age edu q5 q8 q9  .

REGRESSION
   /MISSING LISTWISE
   /DESCRIPTIVES MEAN STDDEV CORR SIG N
   /STATISTICS COEFF OUTS R ANOVA
   /CRITERIA=PIN(.05) POUT(.10)
   /NOORIGIN
   /DEPENDENT q8
   /METHOD=ENTER  age edu q5.

REGRESSION
   /MISSING LISTWISE
   /DESCRIPTIVES MEAN STDDEV CORR SIG N
   /STATISTICS COEFF OUTS R ANOVA
   /CRITERIA=PIN(.05) POUT(.10)
   /NOORIGIN
   /DEPENDENT q9
   /METHOD=ENTER  age edu q5  .




村瀬の目次に戻る


あなたは2009年11月17日以来  回目のアクセスです。


All Rights Reserved, Copyright(c), MURASE,Yoichi
ご意見やご質問はお気軽にどうぞ  E-mail : murase (at) rikkyo.ac.jp