SPSS ときど記(71〜80)
SPSSを使っていてトラぶったところや変な出力や裏技表技の便利な使い方を中心に書き留めてみる。何回話題があるかわからですが,時々書きます。(Keizo Hori)
最終更新日:
(2000/8/31から)
(61)〜(70) ときど記(メニュー)へ
(81)〜(90)
- SPSS ときど記(80) 2000/ 9/29 因子分析 /criteria の使用法
- SPSS ときど記(79) 2000/ 9/27 10.1 SPSS 10.1 のアナウンス
- SPSS ときど記(78) 2000/ 9/27 因子分析 nokaiserのバグ
- SPSS ときど記(77) 2000/ 9/26 因子分析 promax と obliminのバグ
- SPSS ときど記(76) 2000/ 9/22 MAC Mac 版SPSS 10.0
- SPSS ときど記(75) 2000/ 9/15 スクリプト 多変量正規分布検定・外れ値チェックスクリプト
- SPSS ときど記(74) 2000/ 9/13 スクリプト 数量化3類スクリプト改訂版
- SPSS ときど記(73) 2000/ 9/ 1 初期設定 Set mxmemory=32000など
- SPSS ときど記(72) 2000/ 8/31 因子分析 探索的因子分析リンク集
- SPSS ときど記(71) 2000/ 8/30 相談 spss-l アーカイブ
因子分析 /criteria の使用法
因子分析のsyntax の /criteria の使用法に疑問がある。回転法にoblique を指定して因子分析のダイアログの「貼り付け」ると
FACTOR
/VARIABLES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 /MISSING LISTWISE /ANALYSIS v1
v2 v3 v4 v5 v6 v7 v8 v9 v10
/PRINT INITIAL EXTRACTION ROTATION
/CRITERIA FACTORS(2) ITERATE(25)
/EXTRACTION ML
/CRITERIA ITERATE(25) DELTA(0)
/ROTATION OBLIMIN .
のように /criteria が2つ付く。help のfactor analysis syntax command では/criteria は /extraction の前にある。spssbase.pdf を読むと確かに複数箇所指定できること,/extraction の前においた /criteria の指定のみ抽出に有効とある。
とすると,/extraction の /criteria は/rotation に対して命令するものだ。ところで,rotation と /extraction とダブっている命令は iterate だけである。つまり,抽出とのきと最大反復回数と,回転のときの最大反復回数を別に指定できるわけだ。だが,収束基準は 抽出のECONVERGE(n)と回転のRCONVERGE(n)のように別になっている。iterate を一緒の命令にするなら収束も同じ命令のするんじゃないの。いずれにしても統一性がない。どう見てもiterate を両者で別命令にするほうが一貫しているでしょ。
しかも,help のsyntax command では一カ所にしか入れてないのだしね。
ところで,/delta(0)の命令はoblimin のδの指定であるが,help によると /rotation oblimin(0)という指定が正しい。/criteria delta(0)という指定はhelp のsyntax command にもspssbase.pdf にもない。昔の方法としてあったのかもしれない。エラーはでないし,ちゃんと処理しているようだ。
自分の決めた基準と違うのを貼り付けで出力しているのはなぜだ?
/rotation も複数指定しても最後だけが有効である。ますます複数/criteria を有効にする意味がないでしょ。
PS. なんでこんなことを指摘しているか疑問でしょうね。実は 因子数を指定して,因子抽出をしようとして,あとの /criteria につけちゃったのね。そうすると効果がない。help を見てfactors の正しい指定場所はわかったのだけど,じゃなぜ2つも /criteria があるのという疑問に答えられない。そこで pdf ファイルまで見ないといけない。なんて面倒なことになってるの。とすると,貼り付けが標準的でないからだということになる。
メニューへ トップへ (81)へ
10.1 SPSS 10.1 のアナウンス
SPSS 10.1 のアナウンスがでている。
http://www.spss.com/spss10/details.htm
しかし,Windows版にいつバージョンアップするのかはわからない。どのようにするかもわからない。サイトに置くのか?日本語版はやるとすればおそらくCDの配布であろう。
この告知は11は年内にはでないという良い知らせであろう。
メニューへ トップへ (80)へ
因子分析 /criteria nokaiserのバグ
factor の /criteria の option に nokaiser というのがあるが,oblimin と一緒に指定しても「 回転法: Kaiser の正規化を伴うオブリミン法」という表示になる。「重み付き」「重みなし」と同じように間違った表示をしている可能性もあるが,とりあえず変化なし。
つまり指定しても無効のようだ。
《追記》
他のソフトと比較し確かめた結果、表記が同じになっているだけで計算は nokaiser でやっている。
メニューへ トップへ (79)へ
因子分析 promax と obliminのバグ
日本心理学会大会のワークショップの準備のためSPSSを使っていたら,3つバグが見つかった。まず一番問題のありそうなの。
次のシンタックスを走らせてみてください。
*spss syntax 開始----------------------------------.
matrix data var=v1 to v10 /format =free full /n=1000 /contents=corr.
begin data
1 0.6 0.6 0.6 0.6 0.3 0.3 0.3 0.3 0.3
0.6 1 0.6 0.6 0.6 0.3 0.3 0.3 0.3 0.3
0.6 0.6 1 0.6 0.6 0.3 0.3 0.3 0.3 0.3
0.6 0.6 0.6 1 0.6 0.3 0.3 0.3 0.3 0.3
0.6 0.6 0.6 0.6 1 0.3 0.3 0.3 0.3 0.3
0.3 0.3 0.3 0.3 0.3 1 0.6 0.6 0.6 0.6
0.3 0.3 0.3 0.3 0.3 0.6 1 0.6 0.6 0.6
0.3 0.3 0.3 0.3 0.3 0.6 0.6 1 0.6 0.6
0.3 0.3 0.3 0.3 0.3 0.6 0.6 0.6 1 0.6
0.3 0.3 0.3 0.3 0.3 0.6 0.6 0.6 0.6 1
end data.
FACTOR
/matrix=in (cor=*) /ANALYSIS v1 to v10
/PRINT INITIAL EXTRACTION ROTATION
/CRITERIA FACTORS(2) ITERATE(25)
/EXTRACTION ML
/CRITERIA ITERATE(25)
/ROTATION OBLIMIN(0) .
FACTOR
/matrix=in (cor=*) /ANALYSIS v1 to v10
/PRINT INITIAL EXTRACTION ROTATION
/CRITERIA FACTORS(2) ITERATE(25)
/EXTRACTION ML
/CRITERIA ITERATE(25)
/ROTATION promax(4) .
*syntax 終わり--------------------.
spss 10.0.7 J. での斜交解のpromax, obliminともおかしな結果を出力します。因子パタンを求めるのになぜか1回で収束してしまいます。つまり,ML解(回転前の解)になってしまいます。
結果は
-------------------------
因子パタン
因子
1 2
V1 .671 .387
V2 .671 .387
V3 .671 .387
V4 .671 .387
V5 .671 .387
V6 .671 -.387
V7 .671 -.387
V8 .671 -.387
V9 .671 -.387
V10 .671 -.387
因子間の相関
因子 1 2
1 1.000 .000
2 .000 1.000
------------------------
Stata のpromax(k=4)の結果はだいたい想定された因子パタンになります。
. rotate, promax(4)
(promax rotation)
Rotated Factor Loadings
Variable | 1 2 Uniqueness
----------+--------------------------------
v1 | 0.77241 0.00414 0.40023
v2 | 0.77268 0.00388 0.40001
v3 | 0.77266 0.00400 0.39993
v4 | 0.77249 0.00408 0.40014
v5 | 0.77281 0.00381 0.39985
v6 | 0.00411 0.77264 0.39988
v7 | 0.00399 0.77257 0.40008
v8 | 0.00396 0.77243 0.40032
v9 | 0.00397 0.77270 0.39990
v10 | 0.00387 0.77265 0.40006
symmetric Phi[2,2]
c1 c2
c1 1
c2 .49220776 1
どういう場合におかしくなるのかはよくわかりません。3因子以上の場合は問題なさそうです。2因子の場合でも特定の場合だけではないかと思われます。
《追記 2000/09/28 》
すでに修正しましたが,
途中にバリマックス解とあったのは,ML解の間違いでした。つまり回転前の解。promax の場合,回転前の解→バリマックス回転解を使った目標行列の作成→promax 解の段階を踏みます。バリマックス回転解を使った目標行列を作っていないの?obliminのほうは? ま,SPSS社のほうで検討してくれるそうです。
間違いの指摘ありがとうございました。
同時にsystat の oblimin もダメだそうです。
メニューへ トップへ (78)へ
MAC Mac 版SPSS 10.0
SPSSのMac版が発売されたとのニュースが流れた。
http://www.spss.com/spss10/spss10mac/
日本語版のアナウンスはまだない。
こっちのほうが手軽に分かる。
SPSS Inc. announces SPSS 10.0 for Macintosh
追加 2000/9/24
faq を見ると英語以外の版はでそうにないですね。しかも,いまんとこMac−OSも英語版のみなんですか。う〜ん。
メニューへ トップへ (77)へ
スクリプト 多変量正規分布検定・外れ値チェックスクリプト
SPSS ときど記(39)において紹介したマクロをスクリプト化した。素直にそのままスクリプトにしたものと,マクロの基本は同じだけど,スクリプトならユーザーインターフェイスをこういうふうにもできるよという2つのタイプ。
ただし,ユーザーインターフェイスを考えたにしては困った部分が残っている。
(1)このスクリプトで生成した変数が残るため次に走らせたとき,万一全変数を指定したら,その生成した変数が含まれてしまう。これは指定できないようにすべき。
(2)同じデータに対して2回目以降のジョッブにおいて,sig という変数がすでにあるから,このコマンドは無視しますというエラーメッセージがでること。これは無視されていいのだけど,エラーという言葉を嫌うでしょうね。
いずれ,対応するつもりですが,今はちょっと時間がとれない。
メニューへ トップへ (76)へ
スクリプト 数量化3類スクリプト改訂版
多変量正規分布マクロをスクリプト化しようとして,数量化3類スクリプトにいくつかバグのあることに気づいた。あくまでスクリプト部分で,マクロ部分ではない。
わたしのバグっている部分はすでに,9/6に修正をすませてアップした。SPSSがそういう仕様になってたのねというのがあった。match ファイルで現行ファイルにくっつけたファイルを手放さない。match ファイルでひっつけて無用になっているファイルに再度保存しようとするとエラーになって保存してくれない。静かに文句をいうのでよくわからなかったのだろうか。前に処理した個体数量をそのまま使用してしまうことがあった。問題をもってきちんと特定してから別に報告する。
9/6に修正した分は処理する変数を決めるdialog の処理にへまがあったのでバグフィックスした。
メニューへ トップへ (75)へ
初期設定 Set mxmemory=32000など
SPSSが前は設定できていた初期設定ができなくなっている。これをどう設定するか。
spss-l での回答は
SPSS フォルダの中の Scripts フォルダにある Autoscript.sbs の中に次の3行を追加する。
Sub Application_Create
objSpssApp.ExecuteCommands "Set mxmemory=32000.",False
End Sub
おっとこれだけではダメですね。
' enabled Application_Create
という一文をファイルの上のほうに付け加えます。
なお,
objSpssApp.ExecuteCommands "Set mxmemory=32000.",False
に続けて同じようにset文を入れていけば,初期設定ができるようになります。
Sub Application_Create
objSpssApp.ExecuteCommands "Set mxmemory=32000.",False
objSpssApp.ExecuteCommands "Set mxloop=200000.",False
End Sub
のようにします。
set で設定できることについてはhelp を参照してください。
mxmemory 自体は
編集→オプション→全般 専用ワークスペース メモリの限度
に設定すればいいのです。
メニューへ トップへ (74)へ
因子分析 探索的因子分析リンク集
探索的因子分析のリンク集を作りました。
探索的因子分析リンク集(日本語中心)
http://www.ec.kagawa-u.ac.jp/~hori/spss/factorlink.html
●用語辞典
●Q&A
●わかりやすさをねらった説明
●数式を使わないまたはほとんど使わない説明
●数式を使う説明
●advanced course
●本
●手順の理解・アプリの説明+α(SAS SPSS)
●特定統計パッケージの説明または補説のみ(SPSS SAS STATA S-Plus R エクセル統計2000)
●因子分析データ集
●プログラム・アルゴリズム
●実行プログラム
●WWW上で分析
●先端分析実行
●文献
●メーリングリスト・相談系
●因子分析利用研究
●検索
のようにカテゴリー分けしているので,自分の要求やレベルに応じた研鑽ができるでしょう。
「因子分析利用研究」ははじめのほうに検索エンジンに引っかかったものを中心にしていますので,代表的研究とはいえないですが,因子分析をどう利用するのかわかりやすいでしょう。
メニューへ トップへ (73)へ
相談 spss-l アーカイブ
SPSSのメーリングリストの spss-l のアーカイブ(書庫)が新たに作られました。
http://vm.marist.edu/htbin/wlvindex?SPSSX-L
まだ,検索ができないなど低機能です。が,ないよりはいいでしょう。
semnet のアーカイブはいいですね。
http://bama.ua.edu/archives/semnet.html
メニューへ トップへ (72)へ
堀 啓造ホームページへ