多変量外れ値分析から上方管理限界を取得するための JSL メソッドこのウィッシュリストリクエストのきっかけは何ですか?
多変量プラットフォームの外れ値分析を使用すると、マハラノビス距離、ジャックナイフ距離などを列に保存できます。これらをプロットし、現在のアルファに対する計算された上限管理限界を表示します。これは、距離を使用して点が外れ値であるかどうかを評価するのに非常に役立ちます。JMP は、この UCL である列プロパティ (つまり、「ジャックナイフ距離」列) に単一の値 (つまり、ジャックナイフ値) を入れます。ただし、By グループがあった場合は、グループごとに個別の UCL 値があり (グループ内の欠損していない点の数に基づいて)、列プロパティのこの 1 つの値は最後のグループだけのものであるように見えます。
プラットフォームのレポートから値を抽出できると思う人もいるかもしれませんが、そうではないようです。値はレポート内のテキストボックスではなくフレームボックスにあり、それらの値を抽出する方法がわかりません。
改善してほしいことは何ですか?
私の使用例では、グループ別では、UCL も列に含めたいと考えています。しかし、私が期待しているのは、プラットフォームにそれらを要求する機能です。これは、<
関連: このような場合に、<<その値のリストをより適切に使用するためにグループが何であるかを取得するための良い方法があればいいのにと思います。 少なくとも、レポート上のアウトラインボックス名を解析せずにそれを行う方法がわかりません。<
この考え方がなぜ重要なのでしょうか?
UCL がなぜ有用であるかは明らかだと思います。UCL は、特定の信頼度に対して、距離が長いかどうかを確認するために距離を比較するものです。
これは、誰かがこの値を望んでいたコミュニティ投稿です。列プロパティの単一の値に満足していたため、By を使用していなかったのだろうと思います。解決済み: ジャックナイフ予測値 - JMP ユーザー コミュニティ
自動化とスクリプト作成基本的なデータ分析とモデリングRe: 多変量外れ値分析から上方管理限界を取得するための JSL メソッドスクリプトを使用してこれらの値をエクスポートできます。 これは最良の方法ではありませんが、可能であることを示す必要があります
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Solubility.jmp");
dt << New Column("Group", Numeric, Continuous, Formula(
If(Row() < 20, 1, Row() < 40, 2, 3);
));
mv = dt << Multivariate(
Y(:Ether, :Chloroform, :Benzene, :Carbon Tetrachloride, :Hexane),
Variance Estimation("Row-wise"),
Scatterplot Matrix(1),
By(:Group)
);
mv << Jackknife Distances(1, Save Jackknife Distances);
window = mv[1] << Top Parent;
fbs = window << XPath("//OutlineBox[text()='Jackknife Distances']//FrameBox");
fbs_of_interest = fbs[2::NItems(fbs)::2];
segs = fbs_of_interest << Find Segs(CustomStreamSeg(1));
seg_scripts = segs << get script;
ucls = {};
For Each({seg_script}, seg_scripts,
Insert Into(ucls, seg_script[1]["Text"][2]);
);
show(ucls);Re: 多変量外れ値分析から上方管理限界を取得するための JSL メソッド頭がいい!FindSegs を使用しようとして失敗しました。しかし、それらの値を直接リクエストする方法が欲しいという私の願いが変わるわけではありません。
Re: 多変量外れ値分析から上方管理限界を取得するための JSL メソッドKudo + Kudo 素晴らしい回避策:)
@jthiそれはどうやって分かりましたかカスタムストリームセグ?
のようなものはありますか<< セグメントをリストする?


Re: 多変量外れ値分析から上方管理限界を取得するための JSL メソッドおそらく、推測してさまざまなことを試してみることです (FrameBox であることはわかっています -> 表示セグメントがある可能性があることはわかっています -> そこから進みます (xml を確認し、<< セグメント検索を使用します... または単に xml から開始します)。 LineSeg にアクセスする「以前の」FrameBox から UCL 値を取得できるため、その奇妙な CustomStreamSeg にアクセスする必要はありません。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Solubility.jmp");
dt << New Column("Group", Numeric, Continuous, Formula(
If(Row() < 20, 1, Row() < 40, 2, 3);
));
mv = dt << Multivariate(
Y(:Ether, :Chloroform, :Benzene, :Carbon Tetrachloride, :Hexane),
Variance Estimation("Row-wise"),
Scatterplot Matrix(1),
By(:Group)
);
mv << Jackknife Distances(1, Save Jackknife Distances);
window = mv[1] << Top Parent;
linesegs = window << XPath("//FrameBox[@helpKey = 'Multiv Outlier']/LineSeg[@description='UCL Line']");
ucls = {};
For Each({yvals}, linesegs << Get Y Values,
Insert Into(ucls, yvals[1]);
);
show(ucls);Re: 多変量外れ値分析から上方管理限界を取得するための JSL メソッドありがとう :)
ここでも XML を使用する素晴らしいトリックです。FrameBox レベルで停止すると予想していました。
ここでも XPath が機能するのは素晴らしいことです...
Re: 多変量外れ値分析から上限管理限界を取得する JSL メソッドこれに関して、他に注目すべき点がいくつかあります。ジャックナイフ距離をこの方法で保存すると (多変量プラットフォームの外れ値分析から)、マハラノビス距離または T 平方を保存すると数式列が作成されますが、ジャックナイフ距離の結果は多変量メソッドのドキュメントで説明されている数式と一致しますが、他のすべての値が同じで標準偏差が 0 である単純な 1 次元のケースでは、一貫して欠損値にはなりません。その場合、欠損値または非常に大きな値になる可能性があります。