0

誰かが次のことを行うための最良の方法をアドバイスしてもらえますか?

3 つの変数 (X、Y、Z) と 4 つのグループ (1、2、3、4) が​​あります。私は SPSS で判別関数分析を使用して、既知のグループ化されたデータのグループ メンバーシップを予測し、将来のグループ化されていないデータで使用しています。

理想的には、データのサブセットの数を増やしてランダムにサンプリングし、目的の正しい分類パーセンテージに到達するために必要な観測数を確認できるようにしたいと考えています。

ただし、これが難しい場合があることは理解しています。したがって、私は手段のためにこれを行うことを検討しています。

たとえば、変数 X のグループ 1 の平均が 141 であるとします。この平均は、2000 の観測値から計算された可能性があります。ただし、平均が 700 回の観測で発生した場合もあります。私のデータの平均レベルがいくつの観察/ケースで計算できるようにしたいと考えています。たとえば、おそらく 10 回の観測から始めて、これをランダムに 50 回または 100 回繰り返し、その後 20 回の観測に増やします....などです。

これは一種のモンテカルロ テストであることは理解しています。SPSS 15、17、18 と Excel にアクセスできます。minitab 15 & 16 と amos17 にもアクセスでき、「R」をダウンロードしましたが、これらに慣れていません。私の経験はSPSSとExcelです。私は SPSS Modified でいくつかの構文を試しました。

誰かが助けてくれることを願っています。

読んでくれてありがとう。

アンディ

4

2 に答える 2

1

リンク先のテキストは良い出発点です ( SAMPLESPSS でコマンドを使用することもできますが、リンク先の Raynald スクリプトの IMO は、サンプルをそのように構築することを考えるとより柔軟です)。

疑似コードでは、プロセスは次のようになります。

do n for sample size (a to b)
    loop 100 times
        draw sample size n
        compute (& save) statistics

ここで、SPSS のマクロ言語の出番です (このドキュメントは良い入門書であり、 SPSS タグ wikiで他の参考文献を調べることができます)。基本的に、サンプルを描画して必要な統計を計算する方法を理解したら、プロセスをループできるようにマクロを作成する方法を理解する必要があります (そして、それにサンプル サイズ パラメーターを渡します)。ループを 100 回含めます。これは、各サンプル サイズに関連する誤差について何らかの推定を行えるようにするためです。

統計を計算する方法の例を挙げれば、それをマクロ関数にして、必要な回数ループする方法の例を示すことができるかもしれません。

于 2011-08-04T16:21:44.983 に答える
0

@アンディ・W @オリバー

皆さんの提案に感謝します。次のマクロを使用して回避策を見つけることができました.... http://www.spsstools.net/Syntax/Bootstrap/GetRandomSampleOfVariousSizeCalcStats.txt ただし、このためには、変数をコピーして貼り付ける必要があります特定のグループのデータを新しいデータ ウィンドウに表示します。それはたいした問題ではありません。1/ std error、std dev ect などの他の統計を記録できます。2/他の分析、理想的には判別関数分析を使用し、多くの出力テーブルを用意するのではなく、正しい分類のパーセンテージを新しいデータ ウィンドウに記録します。 3/グループごとに変数をコピー アンド ペーストする必要がないため、n を指定してマクロを実行するだけで済みます。グループ 1、2、3、および 4 の x 変数のサンプル。

再度、感謝します。

DEFINE !sample(myvar !TOKENS(1) 
        /nbsampl !TOKENS(1)
        /size !CMDEND).
* myvar = the variable of interest (here we want the mean of salary)
* nbsampl = number of samples.
* size = the size of each samples.

!LET !first='1'
!DO !ss !IN (!size)
!DO !count = 1 !TO !nbsampl.

GET FILE='c:\Program Files\SPSS\employee data.sav'.

COMPUTE draw=uniform(1).
SORT CASES BY draw.
N OF CASES !ss.

COMPUTE samplenb=!count. 
COMPUTE ss=!ss.

AGGREGATE
  /OUTFILE=*
  /BREAK=samplenb
  /!myvar = MEAN(!myvar) /ss=FIRST(ss).

!IF (!first !NE '1') !THEN
ADD FILES /FILE=*  /FILE='c:\temp\sample.sav'.
!IFEND
SAVE OUTFILE='c:\temp\sample.sav'.
!LET !first='0'

!DOEND. 
!DOEND. 

VARIABLE LABEL ss 'Sample size'.
EXAMINE
  VARIABLES=salary BY ss /PLOT=BOXPLOT/STATISTICS=NONE/NOTOTAL
  /MISSING=REPORT.

!ENDDEFINE.
* ----------------END OF MACRO ----------------------------------------------.


* Call macro (parameters are number of samples (here 20) and sizes of sample (here 5, 10,15,30,50). 
* Thus 20 samples of size 5.
* Thus 20 samples of size 10, etc.
!sample myvar=salary nbsampl=20 size= 5 10 15 30 50.
于 2011-08-05T08:27:52.640 に答える