No.04842 SPSSマクロの使い方  【印南洋】 2007/11/28(Wed) 14:01

現在,メタ分析における重回帰分析をしています。このため,Metareg.spsと呼ばれるSPSSマクロを使おうとし ていますが,説明書どおりにしたがっても,マクロがうまく動きません。説明書では,SPSSシンタックスファイルを自分で作り,以下(1)(2)の情報を 含むようにあります。まず,マクロが置かれているフォルダの指定をすること。

説明(1)
___________
To make use of these macros, you must perform your analyses from a syntax
window, rather then use the pull-down menus. It is also useful to change
the default setting turning on the "Display of commands in the log" found
under the "Viewer" tab of the options.

To use, you must first initialize the macro with the include statement. This
only needs to be done once during an SPSS session. For example, to
initialize the macro Metareg.sps, run the following SPSS syntax:

INCLUDE 'A:\Metareg.sps' .

The above syntax assumes that the macro is currently stored on a floppy disk
inserted into the A drive.
___________

そして,分析データファイル内の変数の名前を指定することです。

説明(2)
*--------------------------------------------------------------
*' SPSS/Win 6.1 or Higher Macro -- Written by David B. Wilson
*' Meta-Analysis Modified Weighted Multiple Regression for
*' any type of effect size
*' To use, initialize macro with the include statement:
*' INCLUDE "[drive][path]METAREG.SPS" .
*' Syntax for macro:
*' METAREG ES=varname /W=varname /IVS=varlist
*' /MODEL=option /PRINT=option .
*' Where ES is the effect size variable, W is the inverse
*' variance weight, IVS is the list of independent variables
*' and MODEL is either FE for a fixed effects model, MM for
*' a random effects model estimated via the method of moments,
*' and ML is a random effects model estimated via iterative
*' maximum likelihood. If /MODEL is omitted, FE is the
*' default. The /PRINT subcommand has the option EXP and
*' if specified will print the exponent of the B coefficient
*' (the odds-ratio) rather than beta. If /PRINT is omitted,
*' beta is printed.
*' Example:
*'
*' metareg es = effct /w = invweght /ivs = txvar1 txvar2
*' /model = fe .
*'
*--------------------------------------------------------------

上記に基づきSPSSシンタックスファイルを

INCLUDE "C:\MetaReg.sps" .
metareg es = effect /w = weight /ivs = random intensit /model = fe .

のようにつくり,シンタックスを走らせましたが以下のようなエラーがでます。
________________
Run MATRIX procedure:
>Error encountered in source line # 255

>Error # 12554
>GET a working file is requested, but a working file does not exist.
>This command not executed.

>Error encountered in source line # 256

>Error # 12492
>An attempt has been made to use previously undefined matrix (or scalar).
>This command not executed.

Matrix - 'DATA ' is undefined
>Error encountered in source line # 256

>Error # 12345
>Undefined operand for NROW or NCOL.

>Error encountered in source line # 257

(投稿者注:実際はこのようなエラーがもっと続きます)
________________

いろいろと試行錯誤してみたり,知人に聞いてみたりしたのですが,解決していないままです。お手数をおかけしますが,ご回答いただけましたら幸いです。

なお,このマクロは,以下のページ内のspss_macros.zip内に入っています。
http://mason.gmu.edu/~dwilsonb/ma.html

No.04847 Re: SPSSマクロの使い方  【青木繁伸】 2007/11/28(Wed) 18:18

データを用意していないだけじゃないですか?

> GET a working file is requested, but a working file does not exist.

って,言われてますよ。

よくわからないながら,適当なデータをクワしてやったら,エラーもなく結果を吐いたようですが。

No.04850 Re: SPSSマクロの使い方  【印南洋】 2007/11/28(Wed) 21:27

青木先生

お返事いただき,どうもありがとうございました。ただ,データを入れるため以下の内容でシンタックスファイルを作っても,どうもエラーが出てきてしまいます。シンタックスファイル内の記載が何か間違っているのでしょうか?

INCLUDE "C:\MetaReg.sps" .
GET FILE='Wilson.sav'.
metareg es = effect /w = weight /ivs = random intensit /model = fe .
________________________________
アウトプット↓

Run MATRIX procedure:
>Error encountered in source line # 274

>Error # 12417
>Source operand is singular for INV.
>This command not executed.

>Error encountered in source line # 277

>Error # 12492
>An attempt has been made to use previously undefined matrix (or scalar).
>This command not executed.

Matrix - 'B ' is undefined
>Error encountered in source line # 277

>Error # 12359
>Undefined operand for transpose.

>Error encountered in source line # 278

(投稿者注:実際はこのようなエラーがもっと続きます)

No.04851 Re: SPSSマクロの使い方  【青木繁伸】 2007/11/28(Wed) 22:26

私は,SPSSもそのマクロもよくは知りませんが

>Source operand is singular for INV.

ということは,与えられたデータで計算中,逆行列の計算ができなかった(特異行列だった)ということでしょう?

与えたデータに問題があるか,与え方に問題があるのでしょう。

エラーメッセージは確かにわかりにくい。
初めてSPSS(のせいなのだろう,マクロに特有なエラーメッセージではないように思うが)を使う人には,ちんぷんかんぷんだろうなあと,同情します。

singular というのは,singular matrix というときの形容詞です
INV というのは,inverse matrix を求める関数名なんでしょうね
他のことをいろいろ経験していると,なんとなく,SPSSが言いたいことが分かるが

No.04852 Re: SPSSマクロの使い方  【印南洋】 2007/11/28(Wed) 22:28

解決しました。エラーの原因は,

>Error # 12417
>Source operand is singular for INV.
>This command not executed.

だっ たので,INVに相当する変数名を見直したところ,stringとなっていましたのでnumericに変更しました。このマクロを使った教科書の分析結果 (Lipsey & Wilson, 2001, Practical meta-analysis. Sage, p. 141)とも一致しました。

この度は本当に助かりました。どうもありがとうございました。

● 「統計学関連なんでもあり」の過去ログ--- 041 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る