後で使用するためにレポートから値の列を保存する方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
私はいくつかのデータ分析作業を自動化するためのスクリプトを開発しようとしています。その1つは、データセットの分布を自動的に見つけてから、その分布のパラメータでシミュレーションを実行することです。
Profilerシミュレーションで、配布から保存したパラメータの使用方法がわからない場合を除いて、ほとんどの部分が整っています。
配布コードの後に、以下のようにパラメーターを保存します。
parameterOne = distReport [ 「オーバーオールYA-P20」 ] [ outlinebox ( 「?」 || distNameOne [] 「パラメータ推定値」 ] [ NumberColBox ( 1 )] ;
これにより、列全体のすべての値が保存されますか。私が使っているかどうかわかります… [ NumberColBox ( 1 [] 1 ] ;それは最初の行を保存します、どうやって未知の行数の値を保存するのですか?
2番目の質問:プロファイラーでこの変数 "parameterOne"をそのまま使用することはできますか?
Eval(Parse(EvalInsert( "\ [
プロファイラ(
Y(列(3))
プロファイラ(
1、
期間値(
お名前(「全体のYA-P20」)(227.01)、
お名前(「全体のXB-P2」)(324.6375)
)
シミュレータ(
1、
要因(
名前( "全体のYA-P20")<<ランダム(
^ distNameOne ^( parameterOne )
)
名前( "全体のXB-P2")<<ランダム(
^ distNameTwo ^(parameterTwo)
)
)
応答(まとめ<<ノイズなし)
)
)
)
] \ ")));
私はこれをやってみたが成功しなかった。エラーコードはありませんが、プロファイラは正しいパラメータを使用していません。
あなたの助けと私のアマチュアjslスキルに対する忍耐をありがとう。
再:後で使用するためにレポートから値の列を保存する方法素晴らしいです、ありがとう!すべてうまくいった。
後で使用するためにレポートから値の列を保存する方法わかりました、私は問題を理解しました。 次のコードを使用して、パラメータリストの文字列表現を作成できます。
mat = colBox <<行列として取得;
strValues = "";
(i = 1、i <= NRows(mat)、i ++、
strValues = strValues ||チャー(マット )|| 「」
;
次に、この変数をコマンドに挿入します。
...
因子(height << Random(^ dist ^(^ strValues ^)))、
...
厳密にはstrValues変数はリストの最後に追加のコンマをもたらします。 これは取り除かれるかもしれませんが、JMPは冗長なコンマを許容しており、コードはそのままでうまく動作します。
再:後で使用するためにレポートから値の列を保存する方法こんにちはデイブ
すべてのパラメータはNumColBox(1)に格納されていますが、2つの異なる分布レポートのパラメータを参照しているため、2回参照しています。
私の主な問題は、分布の種類によってパラメータの数が変わることです。そのため、データに応じて1、2、またはそれ以上のパラメータを設定できます(normal、Weibullなど)。それで、私はあなたが上で提供されたコードを使うことができません、それは私が常に2つのパラメータを持つことを仮定しているからです。未知のサイズの行列内の項目を使用する方法はありますか?
後で使用するためにレポートから値の列を保存する方法パラメータ推定値は、NumColBox(1)という名前の表示ボックスに含まれています。 あなたは一度だけこれを参照する必要があります。 Get As Matrixメッセージは、すべてのパラメーター推定値を単一のコレクションとして取得します。 その後、このマトリックス内の特定の項目を参照する必要があります。
開く( "$ SAMPLE_DATA / Big Class.jmp");
dist = Distribution(
連続配信(
列(:高さ)
フィット分布(ワイブル)
)
;
distR = dist << report;
parameterEstimates = distR [NumberColBox(1)];
matParameters = parameterEstimates <<行列として取得;
parameter1 = matParameters [1];
parameter2 = matParameters [2];
show(matParameters、parameter1、parameter2);
再:後で使用するためにレポートから値の列を保存する方法助けてくれてありがとう。
データをマトリックスとして正しく保存していますが、プロファイラで使用しようとすると、まだ間違った数値が使用されています。
matrixParameterOne = parameterOne << 行列として取得 ;
matrixParameterTwo = parameterTwo << 行列として取得 ;
//シミュレーションを実行
評価 ( 解析する ( EvalInsert ( "\ [
プロファイラ(
Y(列(3))
プロファイラ(
1、
期間値(
お名前(「全体のYA-P20」)(227.01)、
お名前(「全体のXB-P2」)(324.6375)
)
シミュレータ(
1、
要因(
名前( "全体のYA-P20")<<ランダム(
^ distNameOne ^(^ matrixParameterOne ^)
)
名前( "全体のXB-P2")<<ランダム(
^ distNameTwo ^(^ matrixParameterTwo ^)
)
)
応答(まとめ<<ノイズなし)
)
)
)
] \ " ))) ;
これについて何か考え?
再:後で使用するためにレポートから値の列を保存する方法パラメータの保存について表示ボックスへの参照を作成してからメッセージを送信することができます。次に例を示します。
開く( "$ SAMPLE_DATA / Big Class.jmp");
dist = Distribution(
連続分布(列(:高さ)、フィット分布(正規))
;
distR = dist << report;
colBox = distR [NumberColBox(1)];
mat = colBox <<行列として取得;
ショー(マット)
2番目の質問では、評価に変数を代入するために、あなたはディストリビューション名と同じように記法^ name ^を使います。
名前( "全体のYA-P20")<<ランダム(
^ distNameOne ^( ^ parameterOne ^ )
)
- デイブ