SPSS ときど記(241〜250)

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

(231)〜(240) ときど記(メニュー)へ  (251)〜(260)

  1. SPSS ときど記(250) 2007/ 1/21 シンタックス ベクトル変数のlag関数内記述
  2. SPSS ときど記(249) 2007/ 1/16 SPSS15.0 15.0日本語版インストール
  3. SPSS ときど記(248) 2007/ 1/12 マクロ 度数分布表の情報量(分散)マクロ
  4. SPSS ときど記(247) 2007/ 1/12 SPSS15.0 15.0日本語版来る。
  5. SPSS ときど記(246) 2007/ 1/03 syntax 乱数生成シンタックス、マクロ
  6. SPSS ときど記(245) 2007/ 1/02 BASE do if はformat を制御しない
  7. SPSS ときど記(244) 2006/ 9/20 SPSS15.0 15.0英語版でる
  8. SPSS ときど記(243) 2006/ 8/31 クラスター分析 two-step cluster analysis
  9. SPSS ときど記(242) 2006/ 7/26 分散分析 偏イータ2乗
  10. SPSS ときど記(241) 2006/ 7/25 SPSS14.0.2 SPSS14.0.2へのバージョンアップ

SPSS ときど記(250) 2007/ 1/21

シンタックス ベクトル変数のlag関数内記述

data list free/v.
begin data.
90 80 70 60 50 40 30
end data.
vector b(2).
compute b(1)=v.
compute b(2)=b(1).
compute k=lag(b(1)).
exec.

この場合はつぎのエラーになる。

>Error # 4323 in column 19. Text: )
>LAG 関数の最初の引数は変数でなければいけません。定数や式は使えません。
>This command not executed.

vector変数のベクトル記述はシンタックスエラーを引き起こす。b(1)をb1 と書き換えるときちんと動く。表記の仕方を変えるといい。
data list free/v.
begin data.
90 80 70 60 50 40 30
end data.
vector b(2).
compute b(1)=v.
compute b(2)=b(1).
compute k=lag(b1).
exec.


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


SPSS ときど記(249) 2007/ 1/16

SPSS15.0 15.0日本語版インストール

spss15をやっとインストールした。IE7のインストールに失敗しているので、インストールできるのか心配であったが、問題なく終わった。

 何が新しくなったのかはCD-ROMのspec sheetsフォルダにある、What's New in SPSS 15.0.pdf をみるのがいい。このフォルダにあるpdfファイルは日本語である。このフォルダはコピーされないのでコピーして適宜参照するのがいいかもしれない。
 各option (SPSSファミリーと新たにいっている)の説明もそれぞれのシートを見るのがいいだろう。
 アルゴリズムは英文マニュアルに統一された。さらにhelpでも見ることができるようになってる。
 GLP(グラフィック言語)マニュアルも相変わらず英語版だけである。
 追加された統計機能は従来のボタン式ではなくタブ式でページを見ることが出来るようになった。スマートな感じ。
 出力窓の出力としてシンタックスが出力されるのが既定値となった。以前は細長いとても見にくいものだったが、今回は見やすくなった。
 GEEは一般化線型モデル→一般化推定方程式 で選択される。
 GZLMは一般化線型モデル→一般化線型モデル で選択される。
 詳しくは日本語マニュアルのadvanced models15.0Jにある。
 線型混合モデルと線型複合モデルが同時に使われていて、まだ混乱しているようだ。
 以上ちょっと見てみたところである。
 

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


SPSS ときど記(248) 2007/ 1/12

マクロ 度数分布表の情報量(分散)マクロ

度数分布表の情報量(分散)、相対情報量、poinit を求める
マクロを作った。
  1. 特定カテゴリへの極端な集中を調べることができる。リッカート尺度項目のチェックなどにも使用できる。
  2. データのチェックにも利用できる。
詳しくはマクロの説明を参照してください。

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


SPSS ときど記(247) 2007/ 1/12

SPSS15.0 15.0日本語版来る。

1月8日にSPSS15.0日本語版が来ていた。少し前についていたようだが、何日か不明。まだインストールしていない。

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


SPSS ときど記(246) 2007/ 1/03

乱数生成シンタックス、マクロ

標準偏差1、平均値0の正規分布の乱数データを生成するシンタックスは次のようになる。
(1)10が変数の数、
(2)100がサンプルサイズであり、
(3)normal(1)が標準偏差1の正規分布の乱数を生成する。
 normal(1)の部分を他の乱数変数関数に変えると、それぞれの分布関数の乱数をつくる。(乱数変数関数のヘルプ参照のこと)
 
*乱数生成シンタックス.
new file.
input program.
vector v(10).
loop #i=1 to 100.
+ loop #j = 1 to 10.
+ compute v(#j)=normal(1).
+ end loop.
+ end case.
end loop.
end file.
end input program.
exec.

このシンタックスをマクロに変えると下のようになる。最後の1行がマクロを走らせる命令である。nvar=変数数/nsmpl=サンプルサイズ を指定する。
*乱数生成マクロ.
define ransu (nvar=!charend('/')/
nsmpl=!charend('/')
).
new file.
input program.
vector v(!nvar).
loop #i=1 to !nsmpl.
+ loop #j = 1 to !nvar.
+ compute v(#j)=normal(1).
+ end loop.
+ end case.
end loop.
end file.
end input program.
exec.
!enddefine.

ransu nvar=10/nsmpl=100.

変数間の相関を一定にするマクロは
任意の相関行列を満たす正規乱数生成マクロである。
メニューへ  トップへ (247)へ


SPSS ときど記(245) 2007/ 1/02

BASE do if はformat を制御しない

syntax の中で format を制御しようとすると do if を使うことになるはずだが,つぎのようにシンタックスを組んで走らせると,aは f6.1のフォーマットでデータ窓に出力される。bの値は do if 文の中を通っていないため1である。tblは1であり2ではない。ということで,do if ではformat文を制御することはできないことがわかる。

data list free/a.
begin data.
10
end data.
compute tbl=1.
format a(f6.0).
compute b=1.
do if (tbl=2).
format a(f6.1).
compute b=2.
end if.
exec.
これをマクロの!if !ifend を使って制御する。
以下を走らせるとformatもbも制御される。最後のtbl=1をtbl=2 に変えると制御を確認できる。
define macro (tbl = !tokens(1)).

format a(f6.0).
compute b=1.
!if (!tbl=2) !then
format a(f6.1).
compute b=2.
!ifend.
exec.
!enddefine.

data list free/a.
begin data.
10
end data.

macro tbl=1.

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


SPSS ときど記(244) 2006/ 9/20

SPSS15.0 15.0英語版でる

http://www.spss.com/spss/brochures_1.htm
にあるようにspss15.0英語版が出たようである。
新機能はhttp://www.spss.com/pdfs/S15CMPhr.pdf のpdfふぁいるのほうがわかりやすいであろう。
特に面白そうなのがadvanced に追加されたGEEである。やっとSPSSでもGEEができるようになる。その他advanced はバージョンアップのしがいのあるものになっている。
amosもバージョンアップする。これは毎年バージョンアップするつもりのようですね。
メニューへ  トップへ (245)へ


SPSS ときど記(243) 2006/ 8/31

クラスター分析 two-step cluster analysis


11.5からTwoStep cluster analysis というのが入っている。どんなものかよくわからない。Two step cluster, two-step cluster とも言及されることがある。

AICもしくはBICと距離によってクラスターの分類数を決定する便利なクラスター分析である。
 spss 社にテクニカルレポートがある。
The SPSS twostep cluster component
これではよくわからない。
 spssのNorusisが解説を書いていて、使用法はある程度わかる。
SPSS 14.0 Statistical Procedures Companion: Download Chapter
net上ではあまりうまく分類できないという主張と、外れ値を除くを指定すればうまく分類できるという経験を挙げているものがある。
いずれにしてもよくわからない。
大量データのとき使用といっているが分類数を決めるにはある程度小さなデータでもよさそうである。このとき、AICだけを基準にする、BICだけを基準にするという方法もありそうである。それぞれ最小値となるときのクラスター数を指定することになる。AIC, BIC の性格からAICのほうが分類を細かくする可能性が高い。
メニューへ  トップへ (244)へ


SPSS ときど記(242) 2006/ 7/26

分散分析 偏イータ2乗

米国心理学会(APA)などの雑誌では効果量を記述することが求められている。 SPSSは分散分析の効果量として偏イータ2乗(partial eta squared)(偏η2)が出力される。SPSSのこの出力に関して2つの論文がでている(Timothy et al, 2002; Pierce et al, 2004)。Timothy et al(2002)はSPSS ver9が偏η2のことをη2と言っていると指摘している。 Pierce et al, (2004)はver12まで偏η2というようになっているけれども、説明はη2のことになっているとの指摘である。
 現在ver14であるが、Pierce et al.(2004)の指摘がそのままあてはまる。呼び方は偏η2に類する名前であるが、説明は違っているものが多い。ただし計算式は正しく偏η2である。
GLM オプション、多変量解析および反復測定のヘルプ
>効果サイズの推定値は、偏相関のイータの 2 乗の値をそれぞれの効果とそれぞれのパラメータ推定値に与えるものです。イータの 2 乗統計量は、因子に起因させられる総変動の比率を記述するものです。

「イータの 2 乗統計量は、因子に起因させられる総変動の比率を記述するものです。」はη2の説明であって、偏η2の説明ではありません。また「偏相関のイータの 2 乗」は誤訳でしょう。正しくは偏η2

偏イータ2乗の用語の説明
>偏イータの2乗。イータの2乗は、独立変数の全変動の説明される従属変数の変動の比として解釈されます。これはグループSSと合計SS間のの比です

この計算式はη2の説明であって、偏η2の説明ではありません。

command syntax reference では
ETASQの説明として偏イータ2乗としているが、式は

 η2=(dfh×F)/(dfh×F+dfe)
 偏η2とη2の混乱しやすい。右辺は偏η2である。

 偏η2とη2のどちらのほうが効果量としていいかというとどうやらη2である。偏η2は特殊な場合のみいいといえる。もちろんω2やε2のほうが不偏なのでよい。
 という説明がTimothy et al(2002)にある。わかりやすい解説もあるので一読を勧める。なお、η2は分散分析の出力から簡単に求めることができる。η2=効果の平方和÷平方和の修正総和 出力があれば簡単に求めることができる。偏η2だとη2よりもかなり大きな値になることがある。
 なお、一元分散分析では η2=偏η2 である。  

Timothy R. Levine & Craig R. Hullett. (2002). Eta squared, partial eta squared, and misreporting of effect size in communication research. Human Communication Research, 28, 612-625.
(Blackwellの論文データベースにある 
契約している場合はここ

Pierce, C. A., Block, R. A., & Aguinis, H. (2004). Cautionary note on reporting eta-squared values from multifactor ANOVA designs. Educational and Psychological Measurement, 64, 916-924. http://www.montana.edu/wwwpy/Block/papers/Pierce,Block,&Aguinas-2004.pdf

ps. 小野寺ほか『SPSS事典─BASE編』ナカニシヤ出版(2004) p79
「偏イータ2乗は役に立つ?」というコラムがある。ここでの偏η2の説明はη2の説明である。つまり、η2がr2もしくはR2であり、不偏推定はω2である。決して偏η2ではない。偏η2は偏相関と対応する。

ps.η2の計算例

SPSS出力
被験者間効果の検定
従属変数: SCORE
ソースタイプ III 平方和自由度平均平方F 値有意確率偏イータ 2 乗
修正モデル268.667(a)553.73325.453.000.914
切片1352.00011352.000640.421.000.982
A149.333274.66735.368.000.855
B5.55615.5562.632.131.180
A * B113.778256.88926.947.000.818
誤差25.333122.111
総和1646.00018
修正総和294.00017
aR2乗 = .914 (調整済みR2乗 = .878)
(小数点以下第4位を四捨五入)
Aのη2=149.333/294=0.508
Bのη2=5.556/294=0.019
A*Bのη2=113.778/294=0.387
このように、η2の合計は必ず1以下になる(表のR2=.914に対応する)。η2は総分散の何%を説明できたかを示すものである(r2と同じ)。偏η2にはこの性質はない。上の表の偏η2と比較しη2の値が小さいことに注意せよ。

ω2を求める

Aのω2=(SSa-dfa*MSerror)/(SStotal+MSerror)
         =(149.333-2*2.111)/(294+2.111)=0.490
Bのω2=(SSb-dfb*MSerror)/(SStotal+MSerror)
         =(5.556-1*2.111)/(294+2.111)=0.012

A*Bのω2=(SSab-dfab*MSerror)/(SStotal+MSerror)
         =(113.778-2*2.111)/(294+2.111)=0.370

ω2の合計0.872が調整済みR2に近い値であるが同一でない点に注意すること。ε2が調整済みR2に正しく対応する。

ε2を求める

Aのω2=(SSa-dfa*MSerror)/(SStotal)
         =(149.333-2*2.111)/(294)=0.494
Bのω2=(SSb-dfb*MSerror)/(SStotal)
         =(5.556-1*2.111)/(294)=0.012
A*Bのω2=(SSab-dfab*MSerror)/(SStotal)
         =(113.778-2*2.111)/(294)=0.373
誤差の範囲で合計は調整済みR2と一致した。

指針

一般にはη2でよい。だから、SPSSで効果量の推定はする必要はない。R2と調整済みR2の値が気になるほど異なっているならば(大抵はサンプルサイズが小さいとき)、ω2またはε2をもとめる。
異なる実験計画間で個別要因を比較したいとき(例えば、1要因の場合と2要因の場合の共通の要因)は、偏η2を求める。

PS. 2006/8/27
fpr において南風原さんから偏イータというのは美しくないという指摘を頂いた。偏相関比というのがいいそうだ。このとき偏η2は偏相関比の2乗となる

一度偏η2について話題にしていたのを忘れていた。SPSS ときど記(22) 2000/ 5/13

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


SPSS ときど記(241) 2006/ 7/25

SPSS14.0.2 SPSS14.0.2へのバージョンアップ

spss 14.0.2 へのバージョンアップがでている。
http://www.spss.co.jp/support/tech_info/spss14_060531.html
に情報とパッチファイルがある。

間違ったパッチファイルをダウンロードして、パッチをあてようとしたところ、
>An installation of SPSS Server 14.0 was not found on this machine.
というダイアログメッセージがでてバージョンアップできなかった。当然か。
正しいパッチファイルをダウンロードしたところバージョンアップできた。

バージョンアップのバグフィックスのリストにはないのだが、 因子分析 において行列データの読み込みをするとき何も処理をしなかったのが処理するようになった。

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


堀 啓造ホームページへ