T2 外れ値の数式を Python、C として保存する方法、または Excel で使用する方法は?JMP コミュニティの皆様、こんにちは。
T^2 外れ値分析式の完全な式を Python、C、または Excel の同等の式として保存する方法はありますか? このテストを必要としている他の同僚が使用できるように保存したいのですが、JMP は実行していません。 私はJMP Pro 15を持っています。
別のオプションは、Vec Quadratic(S, X) 計算を実行する JSL に含まれる完全な数式は何かということです。 これは、他のプログラムで実装できます。少なくともこれは私の考えです。
ありがとう!、
DS
分析他のスクリプティングRe: T2 外れ値の数式を Python や C として保存する方法、または Excel で使用する方法は?やあ@nascif_jmp 、
これに関するご意見とアイデアをお寄せいただきありがとうございます。 それが機能することに疑いの余地はありませんが、IT の制限と Excel で xlwings を実装する際の難しさのために、別の方法で実行することになりました。
実際、Excel で行列計算を行う方法についてかなりのことを学びましたが (それほど単純ではありません)、実行可能です。
私は少しハイブリッドなアプローチで行きました:
まず、JMP の PCA プラットフォームを使用して T2 値を計算し、その数式をデータ テーブルに保存して、逆共分散行列 S と、Excel でデータを標準化するための平均および標準偏差ベクトルを取得しました。 .
その後、データ テーブルの新しいエントリの T2 値を取得するために X*S*X` の行列計算を実行するのはそれほど難しくありませんでした。 これを機能させるには、行列の計算を行うために Excel で一時的な配列を使用する必要がありました。 残念ながら、これは Excel で段階的に行う必要があるため、あまり効率的ではありません。 それでも、JMP と比較すると、新しいエントリの正しい T2 値が計算されます。
そこで、エクセルのMMULTコマンドについて学びました。 MMULT(X,S)、私はこれを XS、新しい 1xm 配列と呼びました。 次に、T2 を取得するには、関数呼び出し MMULT(XS,X`) を実行する必要があります。ここで、X` は X の転置です。
ハイブリッド アプローチを選択したのは、S マトリックスと平均および標準偏差の配列は、モデルのトレーニング データを使用して生成されたため、それほど頻繁に変更されず、新しいデータ行が来るたびに更新する必要がないためです。の。 これにより、Excel での行列計算がはるかに簡単になります。 モデルを再トレーニングし、JMP で新しい T2 式を生成するたびに、常に Excel ファイルを正しい行列で更新できると思います。
良い学習体験であり、機能しますが、JMP ほど効率的でも簡単でもありません!
ありがとう!、
DS
Re: T2 外れ値の数式を Python や C として保存する方法、または Excel で使用する方法は?以下は、スコアリング コード生成のサポートの一環として、JMP が Python で Vec Quadratic を実装する方法です。 このコード フラグメントは、JMP Pro で配布される jmp_score.py ファイルからのものです。
import numpy as np
def vec_diag(M):
return np.diag(M).reshape(M.shape[0], 1)
def vec_quadratic(S, X):
if S.shape[1] == X.shape[0]:
return vec_diag(np.dot(X.T, np.dot(S, X)))
return vec_diag(np.dot(X, np.dot(S, X.T)))
VBA と xlwings などのライブラリを使用して、Excel から Python コードを呼び出すことができます。
https://www.xlwings.org/
https://towardsdatascience.com/how-to-supercharge-excel-with-python-726b0f8e22c2
Re: T2 外れ値の数式を Python や C として保存する方法、または Excel で使用する方法は?T^2 計算を行うコードを JSL で記述できることは確かですが、T^2 を生成する JMP のコードは、JSL ではなく C++ または C で記述されていると思います。Re: T2 外れ値の数式を Python や C として保存する方法、または Excel で使用する方法は?マハラノビス距離に基づいており、単なる行列演算であるため、式が独自のものになる理由はわかりません。
Vec Quadratic(S,X) 式は、行列計算 X*S*X' の対角要素を取得します。ここで、S は対称逆共分散行列であり、X は S と等しい列数を持つ長方形行列であり、X' はおそらく、Vec Quadratic(S,X) は Vec Diag(X*S*X') と同じ計算です。
私の場合、私が持っている予測列は X 行列を構成しています。つまり、8 つの予測子があるとしましょう。つまり、X = [8x1] 行列です。 S は、PCA または多変量プラットフォームから計算できる逆共分散行列です。 S マトリックスは、変化しない 8x8 マトリックスになります。 ただし、8 つの X-predictors の新しいエントリ (行) ごとに、Excel で T2 値を計算すると便利です。
したがって、JMP がそれをどのように処理するかという数式はそれほど隠されていません。 私が苦労しているのは、JMP を実行していない他の同僚が、私が行っているモデリングの T2 統計を計算できるように、それを Excel で同等の数式表現に変換する方法です。 行列の計算に Excel を使用したことがないため、同等の計算を Excel で実装する方法がわかりません。
それらの関数呼び出しフォームは数学を単純化すると思いますが、JSL で同じことをプログラミングできるはずですが、すべてのステップを明示的にレイアウトします。 それが得られたら、同等のものを Excel で作成することはそれほど難しくありません。 少なくとも、これは私が考えていることです。
ありがとう、
DS
Re: T2 外れ値の数式を Python や C として保存する方法、または Excel で使用する方法は?JMP が T^2 を生成するために使用するコードを JMP から取得できるかどうかを尋ねていますか? SAS研究所だと思います。は、そのコードを専有および知的財産と見なします。