SPSS ときど記(261〜270)

SPSSを使っていてトラぶったところや変な出力や裏技表技の便利な使い方を中心に書き留めてみる。時々書きます。(Keizo Hori
最終更新日: (2007/ 3/ 8から)

(251)〜(260) ときど記(メニュー)へ  (271)〜(280)

  1. SPSS ときど記(270) 2008/10/21 OMS SPSS17の出力の変更によるoms使用マクロの不具合(crossstats.sps)
  2. SPSS ときど記(269) 2008/ 9/29 SPSS17 SPSS17版到着
  3. SPSS ときど記(268) 2007/ 5/ 7 Python SPSSのPythonからRを使う
  4. SPSS ときど記(267) 2007/ 4/ 6 因子分析 種々の回転法のシンタックス(行列言語)
  5. SPSS ときど記(266) 2007/ 3/22 GENLIN 一般化線型モデル(GLM)の使い方初歩
  6. SPSS ときど記(265) 2007/ 3/21 GENLIN GEE(一般化推定方程式)の使い方初歩
  7. SPSS ときど記(264) 2007/ 3/13 クロス集計表 クロス集計表カイ2乗値、p値、効果量、AIC一括リストmacro
  8. SPSS ときど記(263) 2007/ 3/13 BASE spssのfactorとcovariateの使い方
  9. SPSS ときど記(262) 2007/ 3/10 OMS クロス集計表χ2値, p値,効果量, AICをまとめて出力
  10. SPSS ときど記(261) 2007/ 3/ 8 OMS  OMS(出力管理システム)初歩2

SPSS ときど記(270) 2008/10/21

OMS SPSS17の出力の変更によるoms使用マクロの不具合(crossstats.sps)

自作SPSSマクロをSPSS17になって初めて動かしたらやたらエラーが出まくる。いくつかみてみるとSPSSの出力が変わっているため、omsの変数指定が間違っている。そのほかサンプルファイルの保存ホルダーも変更されている。
crosstabs においては半角カナ出力が全角カナになっている。またスペースが違っている場合もある。
ex . ファイ→ファイ、カイ→カイ (unix では半角カナはまずいよね)
とりあえず使ってみた、crossstats.sps は動くようになった。しかし、
------------------------------------------
>警告 # 67. Command name: GET FILE
>ドキュメントは、すでに別のユーザーまたはプロセスによって使用中です。 ドキュメントに修正を加えると別のユーザーの修正を上書きしたり、
>修正内容を別のユーザによって上書きされる可能性があります。
>開かれたファイル D:\Program Files\SPSSInc\Statistics17\OMS3.sav

>警告 # 67. Command name: GET FILE
>ドキュメントは、すでに別のユーザーまたはプロセスによって使用中です。 ドキュメントに修正を加えると別のユーザーの修正を上書きしたり、
>修正内容を別のユーザによって上書きされる可能性があります。
>開かれたファイル D:\Program Files\SPSSInc\Statistics17\OMS4.sav

>警告 # 67. Command name: get file
>ドキュメントは、すでに別のユーザーまたはプロセスによって使用中です。 ドキュメントに修正を加えると別のユーザーの修正を上書きしたり、
>修正内容を別のユーザによって上書きされる可能性があります。
>開かれたファイル D:\Program Files\SPSSInc\Statistics17\crossOMS.sav
------------------------------------------
という警告がでてくる。
set errors none.
というコマンドを入れればいいようだが、同時にエラーのときにもメッセージがでなくなるので公開版ではつけないことにした。

メニューへ  トップへ (271)へ



SPSS ときど記(269) 2008/ 9/29

SPSS17 SPSS17版到着

今年からSPSS日本語版のバージョンアップが英語版と同じ9月になった。先週、17版とAMOS17版がついた。AMOSはファイルを開くがうまく動かない。amwファイルをダブルクリックすれば読み込んで走るのでまあとりあえず使える。

SPSSのほうは訳語が変わっているのもあるようだ。とりあえず動くことを確認した。SPSS16版のようなインストールでトラブることはなかった。

メニューへ  トップへ (270)へ


SPSS ときど記(268) 2007/ 5/ 7

Python SPSSのPythonからRを使う

一般的にPythonからRを使うためのモジュールがある。
RPy (R from Python)

 これを使えば、SPSSのPythonからRを使えるそうだ。試していないが情報のみ。
http://listserv.uga.edu/cgi-bin/wa?A2=ind0705&L=spssx-l&F=&S=&P=6222

メニューへ  トップへ (269)へ


SPSS ときど記(267) 2007/ 4/ 6

因子分析 種々の回転法のシンタックス(行列言語)

因子分析における種々の回転法の行列言語(シンタックス)が公開されている。
http://www.stat.ucla.edu/research/gpa/>Gradient Projection Algorithms and Software for Arbitrary Rotation Criteria in Factor Analysis by Coen A. Bernaards and Robert I. Jennrich.
  1. Bentler's invariant pattern simplicity,
  2. biquartimax (oblimin with gamma=.5),
  3. biquartimin (oblimin with gamma=.5),
  4. Crawford-Ferguson,
  5. equamax (oblimin with gamma=p/2),
  6. factor parsimony (Crawford-Ferguson with kappa=1),
  7. geomin,
  8. infomax,
  9. minimum entropy,
  10. McCammon minimum entropy ratio,
  11. oblimax,
  12. oblimin,
  13. orthomax (orthogonal oblimin),
  14. parsimax (Crawford-Ferguson with kappa=(k-1)/(p+k-2)),
  15. partially specified target rotation,
  16. promax,
  17. quartimax,
  18. quartimin,
  19. simplimax,
  20. tandem principle I and tandem principle II,
  21. target rotation,
  22. varimax.
と多くの回転法をサポートしている。残念ながら Harris-Kaiser(Orthoblique)をサポートしていない。

 シンタックスをそのまま走らせると9つ結果がでた。行列言語をシンプルに使っているだけなので、出力が親切でない点も残念なことだ。また、因子負荷量をデータ窓またはファイルから取り入れるようにしたほうが便利であろう。

メニューへ  トップへ (268)へ


SPSS ときど記(266) 2007/ 3/22

GENLIN 一般化線型モデル(GLM)の使い方初歩

名義尺度や非正規分布尺度、間隔尺度などあらゆる尺度を分散分析のように分析できる、一般線形モデル(GLM)を拡張したものです。多重比較ができることなどから対数線型モデルよりもわかりやすい結果を得ることができます。

 日本語のマニュアルはC:\spss\japanese\SPSS Advanced Models 15.0.pdf6章である。
 日本語の事例つきの解説は田中豊・垂水共之・脇本和昌(1990)『パソコン統計解析ハンドブックV 多変量分散分析・線型モデル偏』共立出版、丹後俊郎(2000a)『医学統計学シリーズ2統計モデル入門 』朝倉書店などにある。

 また、インターネットを検索してもいくつかでてくる。
Google  spss の事例研究もあるのでそれを学ぶのも良い。ships.sav car_insurance_claims.sav ulcer_recurrence.sav がデータとして扱われる。

メニューへ  トップへ (267)へ


SPSS ときど記(265) 2007/ 3/21

GENLIN GEE(一般化推定方程式)の使い方初歩

SPSS15からGEEが使えるようになった。 分析→一般化線型モデル→一般化推計方程式
とするとGEEのメニューの中に入る。ここでヘルプをクリック→ヒントをクリック
とすると、英文でガイドをしてくれる。wheeze_steubenville.savを使った例repeated measures logistic regressionの場合の説明をしてくれる。\spss\Tutorial\sample_files\wheeze_steubenville.sav をあらかじめデータ窓に呼び出しておくと便利である。
  日本語のマニュアルはC:\spss\japanese\SPSS Advanced Models 15.0.pdf7章である。

メニューへ  トップへ (266)へ


SPSS ときど記(264) 2007/ 3/13

クロス集計表カイ2乗値、p値、効果量、AIC一括リストmacro

SPSS ときど記(262) 2007/ 3/10 OMS クロス集計表χ2値, p値,効果量, AICをまとめて出力を発展させて、クロス集計表カイ2乗値、p値、効果量、AIC一括リストのmacroを作った。macro よりもスクリプトのほうが使いやすいが、とりあえずマクロでいいだろう。シンタックスと大して変わらないのだが、後で使うときにはマクロのほうが楽である。スクリプトはさらに楽なので、できればそちらに移行したい。
AIC順 出力例
効果量順 出力例

メニューへ  トップへ (265)へ


SPSS ときど記(263) 2007/ 3/13

BASE spssのfactorとcovariateの使い方

Bruce Weaverによると、GLMについてのコメントの中で、SPSSのfactor カテゴリー変数であり、covariateは連続変数である。

メニューへ  トップへ (264)へ


SPSS ときど記(262) 2007/ 3/10

クロス集計表χ2値, p値,効果量, AICをまとめて出力シンタックス

 

メニューへ  トップへ (262)へ

 SPSS ときど記(261) 2007/ 3/ 8 OMS  OMS(出力管理システム)初歩2を発展させて、値, p値,効果量, AICをまとめて出力するシンタックスを完成させた。1行目のget file='.\Tutorial\sample_files\demo.sav'.はSPSS15についているサンプルファイルを呼び出している。うまくいかない場合は自分でデータ窓に呼び出しておいてください。
/TABLES= ワイヤレス to 新聞 BY 婚姻状況
.
********************************.
** ↑↑変数を指定する。↑↑  **.
********************************.

ワイヤレス to 新聞部分と婚姻状況の部分に変数指定すれば他のデータの処理も出来ます。
 下のシンタックスをシンタックス窓に貼り付けて走らせてみてください。
 調整済み残差だけのクロス集計表、処理順、AIC順、効果量順の表が出力されます。AIC順の例。この例の場合は変数名・変数ラベルがダブって入力されているので見にくい。


クロス集計表のカイ2乗値と効果量(AIC順)
TableNumber_クロス集計有効数_N有効数_パーセントカイ2乗値尤度比自由度p値効果量AIC
114新聞 新聞の購読 * 婚姻状況 婚姻状況6400100.0%91.33291.5511.000-.119-89.55
22複数回線 複数回線 * 婚姻状況 婚姻状況6400100.0%46.46546.5211.000.085-44.52
33ボイス ボイスメール * 婚姻状況 婚姻状況6400100.0%36.00036.0331.000.075-34.03
44ポケベル ポケベルサービス * 婚姻状況 婚姻状況6400100.0%28.08928.1271.000.066-26.13
59VIDEO VIDEO * 婚姻状況 婚姻状況6400100.0%15.24215.4041.000.049-13.40
610CD CDプレーヤー * 婚姻状況 婚姻状況6400100.0%9.6239.7091.002.039-7.71
78TV TV * 婚姻状況 婚姻状況6400100.0%2.5162.5351.113.020-.54
86コールID コールID * 婚姻状況 婚姻状況6400100.0%1.7901.7901.181.017.21
91ワイヤレス ワイヤレスサービス * 婚姻状況 婚姻状況6400100.0%1.2691.2691.260.014.73
1013FAX FAX * 婚姻状況 婚姻状況6400100.0%1.2561.2561.262.014.74
115インターネット インターネット * 婚姻状況 婚姻状況614596.0%.283.2831.595-.0071.72
1212PC PC * 婚姻状況 婚姻状況6400100.0%.204.2041.652-.0061.80
1311PDA 携帯情報端末 * 婚姻状況 婚姻状況6400100.0%.081.0811.775-.0041.92
147キャッチホン キャッチホンサービス * 婚姻状況 婚姻状況6400100.0%.014.0141.907-.0011.99


*********************************************************.
get file='.\Tutorial\sample_files\demo.sav'.
* ファイ係数.
OMS
/SELECT TABLES
/IF COMMANDS = ["Crosstabs"]
SUBTYPES = [ 'Symmetric Measures']
/DESTINATION FORMAT = SAV NUMBERED = TableNumber_
OUTFILE = "OMS.sav".
*カイ2乗値.
OMS
/SELECT TABLES
/IF COMMANDS = ["Crosstabs"]
SUBTYPES = [ 'Chi Square Tests']
/DESTINATION FORMAT = SAV NUMBERED = TableNumber_
OUTFILE = "OMS3.sav".
*クロス集計変数リスト.
OMS
/SELECT TABLES
/IF COMMANDS = ["Crosstabs"]
SUBTYPES = [ 'Case Processing Summary' ]
/DESTINATION FORMAT = SAV NUMBERED = TableNumber_
OUTFILE = "OMS4.sav".
*oms 指定の終了.
**********************.
preserve.
set ovars=both tvars=both.
*クロス集計の実行.
CROSSTABS
/CELLS= ASRESID/statistics=chi phi
/TABLES= ワイヤレス to 新聞 BY 婚姻状況
.
********************************.
** ↑↑変数を指定する。↑↑  **.
********************************.
OMSEND.
*omsコマンド終了.
****************.
*ファイ計数のとりだし.
****************.
GET FILE='OMS.sav'.
select if (Var2="ファイ").
save outfile='OMS.sav'/drop=Command_ Subtype_ Label_ Var1 Var2 近似有意確率
/rename=(値=効果量).
****************.
*カイ2乗値等のとりだし.
****************.
GET FILE='OMS3.sav'.
select if (Var1="Pearson のカイ2乗     ").
save outfile='OMS31.sav'/drop=Var1 Command_ Subtype_ Label_
  /rename=(値=カイ2乗値)(漸近有意確率両側=p値).
exec.
********************.
*尤度比χ2統計量の取り出し.
*********************.
GET FILE='OMS3.sav'.
select if (Var1="尤度比").
save outfile='OMS32.sav'/keep=TableNumber_ 値 
  /rename=(値=尤度比).
*GET FILE='OMS32.sav'.
exec.
*******************.
*クロス集計変数の取り出し.
*******************.

GET FILE='OMS4.sav'.
compute TableNumber_=$casenum.
save outfile='OMS4.sav'/drop=Command_ Subtype_ Label_ 欠損_N 欠損_パーセント 合計_N
  合計_パーセント
  /rename=(Var1=クロス集計).
exec.
****************.
*ファイルの合併.
****************.
GET FILE='OMS4.sav'.
match files file=*/FILE='OMS31.sav'/FILE='OMS32.sav'/ file=='OMS.sav'/by TableNumber_.
save outfile='crossOMS.sav'.
exec.
**********************************.
*合併を反映させたファイルを使用してAICの計算.
**********************************.
get file='crossOMS.sav'.
compute AIC=2*自由度-尤度比.
compute 効果量=abs(効果量).
save outfile='crossOMS.sav'.
**************.
set ovars=names tvars=names.
****************.
*処理順に書き出し.
****************.
summarize table=TableNumber_ クロス集計 有効数_N 有効数_パーセント カイ2乗値 尤度比 自由度 p値  効果量 AIC
  /title='クロス集計表のカイ2乗値と効果量(処理順)'
  /cellls=none
  /format=list nocasenum nototal/statistics=none.
****************.
*AIC順に書き出し.
****************.
sort cases by AIC(A).
summarize table=TableNumber_ クロス集計 有効数_N 有効数_パーセント カイ2乗値 尤度比 自由度 p値  効果量 AIC
  /title='クロス集計表のカイ2乗値と効果量(AIC順)'
  /cellls=none
  /format=list nocasenum nototal/statistics=none.
****************.
*効果量順に書き出し.
****************.
sort cases by 効果量(D).
summarize table=TableNumber_ クロス集計 有効数_N 有効数_パーセント カイ2乗値 尤度比 自由度 p値  効果量 AIC
  /title='クロス集計表のカイ2乗値と効果量(効果量順)'
  /cellls=none
  /format=list nocasenum nototal/statistics=none.

restore.
*********************************************************.
メニューへ  トップへ (263)へ


SPSS ときど記(261) 2007/ 3/ 8

OMS  OMS(出力管理システム)初歩2

OMSは表ごとに出力を記述する。クロス集計表で、効果量をまとめて知りたいときにファイ係数とクレーマーのVを出力する。2×2のときはファイ係数、それ以外のときはクレーマーのV係数であるが、SPSSは両者同じ値を出力するので片一方があれば十分である。とりあえず、spss15のサンプルファイルdemo.sav を使って処理してみよう。
get file='.\Tutorial\sample_files\demo.sav'.
OMS
  /SELECT TABLES
  /IF COMMANDS = ["Crosstabs"]
  SUBTYPES = [ 'Symmetric Measures']
  /DESTINATION FORMAT = SAV NUMBERED = TableNumber_
  OUTFILE = "OMS.sav".
CROSSTABS
/CELLS= ASRESID/statistics=chi phi
/TABLES= ワイヤレス to TV BY 婚姻状況
.
omsend.
GET FILE="OMS.sav".
exec.
OMS.savは次のようになる。
TableNumber_Command_Subtype_Label_Var1Var2   値   近似有意確率
1CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ.014.260
1CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.014.260
1CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .
2CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ.085.000
2CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.085.000
2CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .
3CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ.075.000
3CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.075.000
3CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .
4CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ.066.000
4CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.066.000
4CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .
5CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ-.007.595
5CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.007.595
5CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .
6CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ.017.181
6CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.017.181
6CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .
7CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ-.001.907
7CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.001.907
7CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .
8CrosstabsSymmetric Measures対称性による類似度名義と名義ファイ.020.113
8CrosstabsSymmetric Measures対称性による類似度名義と名義Cramer の V.020.113
8CrosstabsSymmetric Measures対称性による類似度有効なケースの数6400 .

  この出力ではどのようなクロス表のファイ係数なのかわからない。これをわかるようにするにはどうしたらよいか。
 SPSSには「処理したケースの要約」が出力される。これがSUBTYPES = [ 'Case Processing Summary' ]。の
処理したケースの要約

ケース
有効数 欠損 合計
N パーセント N パーセント N パーセント
ワイヤレス * 婚姻状況 6400 100.0% 0 .0% 6400 100.0%
複数回線 * 婚姻状況 6400 100.0% 0 .0% 6400 100.0%
ボイス * 婚姻状況 6400 100.0% 0 .0% 6400 100.0%
ポケベル * 婚姻状況 6400 100.0% 0 .0% 6400 100.0%
インターネット * 婚姻状況 6145 96.0% 255 4.0% 6400 100.0%
コールID * 婚姻状況 6400 100.0% 0 .0% 6400 100.0%
キャッチホン * 婚姻状況 6400 100.0% 0 .0% 6400 100.0%
TV * 婚姻状況 6400 100.0% 0 .0% 6400 100.0%


get file='.\Tutorial\sample_files\demo.sav'.
OMS
  /SELECT TABLES
  /IF COMMANDS = ["Crosstabs"]
  SUBTYPES = [ 'Case Processing Summary' ]
  /DESTINATION FORMAT = SAV NUMBERED = TableNumber_
  OUTFILE = "OMS4.sav".
CROSSTABS
  /CELLS= ASRESID/statistics=chi phi
  /TABLES= ワイヤレス to TV BY 婚姻状況
.
omsend.
GET FILE="OMS4.sav".
exec.


OMS4.sav
TableNumber_Command_Subtype_Label_Var1有効数_N有効数_パーセント欠損_N欠損_パーセント合計_N合計_パーセント
1CrosstabsCase Processing Summary処理したケースの要約ワイヤレス * 婚姻状況6,400100.0%00.0%6,400100.0%
1CrosstabsCase Processing Summary処理したケースの要約複数回線 * 婚姻状況6,400100.0%00.0%6,400100.0%
1CrosstabsCase Processing Summary処理したケースの要約ボイス * 婚姻状況6,400100.0%00.0%6,400100.0%
1CrosstabsCase Processing Summary処理したケースの要約ポケベル * 婚姻状況6,400100.0%00.0%6,400100.0%
1CrosstabsCase Processing Summary処理したケースの要約インターネット * 婚姻状況6,14596.0%2554.0%6,400100.0%
1CrosstabsCase Processing Summary処理したケースの要約コールID * 婚姻状況6,400100.0%00.0%6,400100.0%
1CrosstabsCase Processing Summary処理したケースの要約キャッチホン * 婚姻状況6,400100.0%00.0%6,400100.0%
1CrosstabsCase Processing Summary処理したケースの要約TV * 婚姻状況6,400100.0%00.0%6,400100.0%

  ちょっと困ったことが起こっている。
(1)TableNumber_がすべて1となっている。TableNumber_はOMS出力を後でmatch filesを使ってつなぐときに必要な番号である
→$casenum をコピーして使う。
compute TableNumber_=$casenum.
(2)余計な出力が一杯あるのでこれを落とす必要がある。

GET FILE='OMS4.sav'.
save outfile='OMS4.sav'/drop=Command_ Subtype_ Label_ 欠損_N 欠損_パーセント 合計_N
  合計_パーセント
  /rename=(Var1=クロス集計).
exec.
(3)Label_が必要な変数である。この出力は、変数名とラベルとその両者の3つのタイプがあり、設定は人によったり、場合によって様々であろう。とりあえず変数ラベルがついているのがあとでわかりやすい。見やすさからすると変数名だけのほうがいいかもしれない。この例は変数名でわかるものなのでその点がわからない。変数名と変数ラベルを出力するようにしよう。set tvars=bothの指定を入れる。
preserve.
set ovars=both tvars=both.

get file='.\Tutorial\sample_files\demo.sav'.
OMS
/SELECT TABLES
/IF COMMANDS = ["Crosstabs"]
SUBTYPES = [ 'Case Processing Summary' ]
/DESTINATION FORMAT = SAV NUMBERED = TableNumber_
OUTFILE = "OMS4.sav".
preserve. set tvars=both. CROSSTABS /CELLS= ASRESID/statistics=chi phi /TABLES= ワイヤレス to TV BY 婚姻状況 . omsend. GET FILE='OMS4.sav'. compute TableNumber_=$casenum. save outfile='OMS4.sav'/drop=Command_ Subtype_ Label_ 欠損_N 欠損_パーセント 合計_N 合計_パーセント /rename=(Var1=クロス集計). exec. GET FILE='OMS4.sav'.

処理後のOMS4.sav
TableNumber_クロス集計有効数_N有効数_パーセント
1ワイヤレス * 婚姻状況6,400100.0%
2複数回線 * 婚姻状況6,400100.0%
3ボイス * 婚姻状況6,400100.0%
4ポケベル * 婚姻状況6,400100.0%
5インターネット * 婚姻状況6,14596.0%
6コールID * 婚姻状況6,400100.0%
7キャッチホン * 婚姻状況6,400100.0%
8TV * 婚姻状況6,400100.0%
有効数_N有効数_パーセントも最後の結果に残すことにした。
ファイ係数も必要事項だけ残すようにする。ファイ係数の行だけを残し(select if)、変数効果量にかえる。
GET FILE='OMS.sav'.
select if (Var2="ファイ").
save outfile='OMS.sav'/drop=Command_ Subtype_ Label_ Var1 Var2 近似有意確率
/rename=(値=効果量).
*************.
GET FILE='OMS.sav'.

処理後のOMS.sav
TableNumber_効果量
10.014
20.085
30.075
40.066
5-0.007
60.017
7-0.001
80.020

このOMS.savとOMS4.savをくっつければいい。これはmathc filesを使用する。
GET FILE='OMS4.sav'.
match files file=*/ file=='OMS.sav'/by TableNumber_.
save outfile='crossOMS.sav'.
exec.
get file='crossOMS.sav'.

処理後のcrossOMS.sav
TableNumber_クロス集計有効数_N有効数_パーセント効果量
1ワイヤレス * 婚姻状況6,400100.0%0.014
2複数回線 * 婚姻状況6,400100.0%0.085
3ボイス * 婚姻状況6,400100.0%0.075
4ポケベル * 婚姻状況6,400100.0%0.066
5インターネット * 婚姻状況6,14596.0%-0.007
6コールID * 婚姻状況6,400100.0%0.017
7キャッチホン * 婚姻状況6,400100.0%-0.001
8TV * 婚姻状況6,400100.0%0.020

データ窓を見ただけでも分かるが、summarizeを使って出力窓に報告書を作成する。このとき、例えば効果量の順に出力していると、効果量の大きいクロス表を見落とすことはなくなる(sort cases by 効果量(D). )。
set ovars=names tvars=names.
sort cases by 効果量(D).
summarize table=TableNumber_ クロス集計 有効数_N 有効数_パーセント 効果量 
  /title='クロス集計表の効果量'
  /cellls=none
  /format=list nocasenum nototal/statistics=none.

クロス集計表の効果量

TableNumber_ クロス集計 有効数_N 有効数_パーセント 効果量
1 2 複数回線 * 婚姻状況 6400 100.0% .085
2 3 ボイス * 婚姻状況 6400 100.0% .075
3 4 ポケベル * 婚姻状況 6400 100.0% .066
4 8 TV * 婚姻状況 6400 100.0% .020
5 6 コールID * 婚姻状況 6400 100.0% .017
6 1 ワイヤレス * 婚姻状況 6400 100.0% .014
7 7 キャッチホン * 婚姻状況 6400 100.0% -.001
8 5 インターネット * 婚姻状況 6145 96.0% -.007
set ovars=names tvars=names.を使って変数名を使うように変更している。すべての効果量が極めて小さいことがわかる。
まとめて、シンタックスに書くと次のようになる。

get file='.\Tutorial\sample_files\demo.sav'.
OMS
  /SELECT TABLES
  /IF COMMANDS = ["Crosstabs"]
  SUBTYPES = [ 'Symmetric Measures']
  /DESTINATION FORMAT = SAV NUMBERED = TableNumber_
  OUTFILE = "OMS.sav".
OMS
  /SELECT TABLES
  /IF COMMANDS = ["Crosstabs"]
  SUBTYPES = [ 'Case Processing Summary' ]
  /DESTINATION FORMAT = SAV NUMBERED = TableNumber_
  OUTFILE = "OMS4.sav".
preserve.
set ovar=both tvar=both.
CROSSTABS
  /CELLS= ASRESID/statistics=chi phi
  /TABLES= ワイヤレス to TV BY 婚姻状況
.
omsend.
GET FILE='OMS.sav'.
select if (Var2="ファイ").
save outfile='OMS.sav'/drop=Command_ Subtype_ Label_ Var1 Var2 近似有意確率
  /rename=(値=効果量).
GET FILE='OMS4.sav'.
compute TableNumber_=$casenum.
save outfile='OMS4.sav'/drop=Command_ Subtype_ Label_ 欠損_N 欠損_パーセント 合計_N
  合計_パーセント
  /rename=(Var1=クロス集計).
exec.
GET FILE='OMS4.sav'.

GET FILE='OMS4.sav'.
match files file=*/ file=='OMS.sav'/by TableNumber_.
save outfile='crossOMS.sav'.
exec.
get file='crossOMS.sav'.

set ovars=names tvars=names.
sort cases by 効果量(D).
summarize table=TableNumber_ クロス集計 有効数_N 有効数_パーセント 効果量 
  /title='クロス集計表の効果量'
  /cellls=none
  /format=list nocasenum nototal/statistics=none.
restore.