0

したがって、minitab の C1 にこのサンプル セットがあり、このデータから 200 個のリサンプルを作成し、C2-C201 に保存します。ここで、これらの各列から標本分散を計算し、結果を別の列に保存したいと考えています。各列のサンプル分散を計算することはできますが、結果の保存に問題があります。これは私の現在のマクロです:

GMACRO          #Starts the global macro
Resample        #Names the macro
DO K1=2:201
Sample 16 'Data' CK1;
Replace.        #Resampling
Name c202 "Variance"
Statistics CK1;     # Calculate S^2 
  Variance 'Variance'.
ENDDO
ENDMACRO        #Ends the macro

これは機能しますが、同じセルを何度も上書きするだけです。最適なのは、反復ごとに c202(K1) のように保存することですが、これを実装する方法がわかりません。

4

1 に答える 1

0

うーん。そのマクロを変更する方法はたくさんあります。

あなたが述べた問題の原因は、統計への分散サブコマンドが結果を列全体に保存し、内容を上書きすることです。200 個の個別のサブサンプルを別々の列に格納したい場合は、次のようにします。

GMACRO          #Starts the global macro
Resample        #Names the macro
Name c202 "Variance" # no need to name this column 200 times!
DO K1=2:201
  Sample 16 'Data' CK1;
    Replace.        #Resampling
  Statistics CK1;     # Calculate S^2 
    Variance C203.  # into row 1 of temporary column C203
  Stack 'Variance' C203 'Variance' # append to end of Variance
ENDDO
erase K1 c203  # clean up
ENDMACRO        #Ends the macro

サブサンプルを保存したいが、それらを 2 つの列だけに保存​​することに満足している場合、これはより適切です。

GMACRO          #Starts the global macro
Resample        #Names the macro
Name C2 'Sample number' c3 'Sample data'
set 'Sample number' # populate Sample number
(1:200)16
end
DO K1=1:200 
  Sample 16 'Data' c4;
    Replace.        #Resampling
  Stack C4 'Sample data' 'Sample data' # append to Sample data
ENDDO
Name c4 "Variance"
Statistics 'Sample data';
  By 'Sample number';
  Variance 'Variance'.
ENDMACRO        #Ends the macro

もちろん、置換を伴う 200 x 16 サンプルは、置換を伴う 3200 サンプルと同じであるため、さらにきれいに (そしてはるかに高速に) 次のようになります。

GMACRO          #Starts the global macro
Resample        #Names the macro
Name C2 'Sample number' c3 'Sample data'
set 'Sample number' # populate Sample number
(1:200)16
end
Sample 3200 'Data' 'Sample data';
replace.
Name c4 "Variance"
Statistics 'Sample data';
  By 'Sample number';
  Variance 'Variance'.
ENDMACRO        #Ends the macro
于 2016-01-20T14:13:05.430 に答える