私は、いくつかのシミュレーションを行う必要があるプロジェクトに取り組んでいます。私は今、RandNormal
関数を使用して、平均ベクトルと共分散行列が与えられた多変量正規データを生成したいところです。共分散行列については、さまざまなパラメーターを使用する必要があるため、値を直接入力する代わりに、行列に変数名を入力するだけです (手動で計算する必要がありません)。
次のエラーが表示されます。
エラー: (実行) 文字引数は数値でなければなりません。
これが私たちのコードです。データセットSimulatie
には、この で定義された変数も含まれていますproc iml
。
proc iml;
use Simulatie;
read all;
close Simulatie;
sigma0sq = 2;
sigma1sq = 3;
sigma2sq = 1;
sigma0 = sqrt(sigma0sq);
sigma1 = sqrt(sigma1sq);
sigma2 = sqrt(sigma2sq);
rhoM = 0.7;
rhoV = 0.5;
rhoMsigma0sigma1 = rhoM*sigma0*sigma1;
rhoVsigma0sigma2 = rhoV*sigma0*sigma2;
rhoVsigma1sigma2 = rhoV*sigma1*sigma2;
Mean = {0, 0, 0}; /* population means */
Cov = {sigma0sq rhoMsigma0sigma1 rhoVsigma0sigma2, /* population covariances */
rhoMsigma0sigma1 sigma1sq rhoVsigma1sigma2,
rhoVsigma0sigma2 rhoVsigma1sigma2 sigma2sq};
N = 185; /* sample size */
call randseed(123);
X = RandNormal(N, Mean, Cov); /*x is a nx3 matrix */
SampleMean = mean(X);
SampleCov = cov(X);
quit;
例を入れてみました
Cov = {3 2 1, 2 4 0,1 0 5};
これは問題なく機能しますが、変数名に変更するとエラーが発生します。グーグルで調べましたが、解決策が見つかりませんでした。誰か助けてください:) ばかげた、簡単に修正できるエラーのように思えますが、うまくいきません!
前もって感謝します。