平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーションリサンプリング時の部分のデバッグに問題があります。 助けていただければ幸いです。
dt=現在のデータテーブル();
n=N 行(dt);
nSim=1000;
dtMC=新しいテーブル("MC", 新しい列 ("Sim"、数値、"連続")、新しい列 ("平均"、数値、"連続")、新しい列 ("標準偏差"、数値、"連続") );
For(i=1, i<=nSim, i++,
dtResample=dt< dtMC<<行を追加(1);
dtMC:Sim[i]=i;
dtMC:平均[i]=平均(dtResample:X)
dtMC:Std Dev[i]= Std Dev(dtResample:X);
);
dtMC<<グラフビルダー(
サイズ(400、300)、
変数 (X(:Sim)、Y(:Mean))、
要素(点(X,Y))
);
高度な統計モデリングRe: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーションスクリプト内のエラーを診断するのは困難です。 おそらく他のメンバーがその問題を解決してくれるでしょう。 これを機会として、別の方法を紹介します。 データ テーブル コマンドを使用して対話的にリサンプリングを行っていた場合、その方法は完全に理にかなっています。 代わりに、スクリプトで行列演算を使用できます。
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
n = N Row( data );
nSim = 1000;
// matrix of simulation results
sim = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
sim[i, 1] = i;
sim[i, 2] = Mean( X );
sim[i, 3] = Std Dev( X );
);
// make data tabel from matrix
dtMC = As Table( sim, <<COLUMN names=""></COLUMN>
Re: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーションこれは間違いなく役に立ちました。一つの質問。 「ランダム」はどのように行われるのでしょうか?整数「関数は機能しますか?」 リサンプリングにはさまざまな手法がありますか? おそらく、リサンプリングの実行方法をさらに制御できるでしょうか?再度、感謝します :)
Re: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーションRandom Integer() 関数は、値の範囲にわたる整数を等しい確率で返します (一様分布関数)。

これは、J() 関数の呼び出しの 3 番目の引数です。 これは行列の作成中に行単位で評価され、元のデータ行列の添字として指定されます。 この使用法は、置換を伴うサンプリングと同等であり、これはリサンプリングされたサンプル統計に必要なものです。
Re: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーション各シミュレーションで 1 行を置き換えるようです。 複数の行でランダムな整数値を生成することは可能ですか?
Re: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーションあなたの仮定が理解できません("各シミュレーションで 1 行を置き換えるようです。 ") またはあなたの質問 ("複数の行でランダムな整数値を生成することは可能ですか? ")。 このスクリプトは統計のリサンプリングに適しています。 私はベクトル化されたソリューションを使用していますが、馴染みのないものかもしれません。 スクリプトの修正バージョンには、Distribution プラットフォームを使用した平均値のリサンプリングされた推定値と元の推定値の分布が含まれています。
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
sampleMean = Col Mean( dt:weight );
n = N Row( data );
nSim = 1000;
// matrix of simulation results
sim = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
sim[i, 1] = i;
sim[i, 2] = Mean( X );
sim[i, 3] = Std Dev( X );
);
// make data tabel from matrix
dtMC = As Table( sim, <<COLUMN names=""></COLUMN>
何か別のことを試みていますか? あなたの最後の返信をもっと詳しく説明してください。
Re: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーション混乱を招いて申し訳ございません。 最初のスクリプトで、1000 回の反復ですべての値をシミュレートするには、各反復から X をテーブルに抽出するにはどうすればよいでしょうか? ご協力いただきありがとうございます
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
n = N Row( data );
nSim = 1000;
// matrix of simulation results
sim = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
sim[i, 1] = i;
sim[i, 2] = Mean( X );
sim[i, 3] = Std Dev( X );
);
// make data tabel from matrix
dtMC = As Table( sim, <<COLUMN names=""></COLUMN>
Re: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーションこのスクリプトは 2 つのデータ テーブルを作成します。1 つはリサンプリングされたデータを含むテーブル、もう 1 つはリサンプリングされた統計を含むテーブルです。
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
sampleMean = Col Mean( dt:weight );
sampleSD = Col Std Dev( dt:weight );
n = N Row( data );
nSim = 1000;
// matrix of simulation data
simData = [];
// resample data
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
simData ||= X;
);
// make table of resampled data
colNames = List();
For( i = 1, i <= nSim, i++, Insert Into( colNames, Eval( "Sample " || Char( i ) ) ) );
dtSimData = As Table( simData, << Column Names( colNames ) );
// matrix of simulation results
simStat = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
simStat[i, 1] = i;
simStat[i, 2] = Mean( simData[0,i] );
simStat[i, 3] = Std Dev( simData[0,i] );
);
// make data table from matrix
dtMC = As Table( simStat, << Column Names( {"Simulation", "Mean", "Std Dev"} ) );
// plot resampled statistics
dtMC << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Simulation ), Y( :Mean ), Y( :Std Dev ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 3 ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 4 ) ) )
);
obj = dtMC << Distribution( Y( :Mean, :Std Dev ) );
rpt = obj << Report;
rpt[AxisBox(1)] << Add Ref Line( sampleMean, "Solid", "Red", "Sample Mean", 1, 0 );
rpt[AxisBox(2)] << Add Ref Line( sampleSD, "Solid", "Red", "Sample Std Dev", 1, 0 );Re: 平均値と標準偏差 jmp 14 のモンテカルロ再苗木シミュレーションありがとう。 質問。 データセット [1 2 3 5 8 9 7] があり、上記のロジックに従って 2 回の反復を実行したい場合、
各位置を置き換えてデータセットから番号をランダムに選択して 2 セット?例えば:
[3 2 1 5 8 7 7]
[9 1 3 5 2 8 6]
これが本当にランダムであれば、実行するたびに異なるデータセットが得られることになるのではないでしょうか?