こんにちは、みんな、
私がここで投稿したスクリプトが私の上で完璧に動作していたときに、他の誰かのコンピュータ上で機能していなかった理由を見つけようと私の頭を傷つけました。JSLのLeast Squares Solve関数のX変数とY変数の順序は、JMP 13ではJMP 14とは逆になっています。当然、これは私の最初のスクリプトをJMPバージョン<14を使っている人には使えないものにしています。これは少し面倒です。これらの微妙な変更はどこかに文書化されていますか?
よろしく、イヴ
あなたの詳しい説明をしてくれてありがとうMilo。もう1つ質問があります。JMP14では、X行列が(1の初期列で)増やされるかどうかは、ソリューションにとって重要ではないと思われます。これはJMP 13でも当てはまりますか。私のスクリプトを使用していた独立したユーザー以外は、JMP 13にアクセスできません。どのJMPバージョンであるかを確認することに関して、私はあなたの解決策に従います。
再度、感謝します
それは非常にイライラするでしょう。Least Squares Solve()JSL関数の変更点をどのようにして発見したかをお詫び申し上げます。
このようにJSL関数のパラメータの順序を入れ替えることは非常にまれです。変更によって以前のバージョンとの互換性が損なわれた場合は、それをリリースノート 。
私たちはJMPで活発な開発環境にいますが、後方互換性も維持するために最善を尽くします。パラメーターの順序がJMP 13.0(機能が導入されたとき)から14.0に変更されたことは正しいです。それだけでなく、デフォルトでは、14.0の最小二乗法Solve()に切片項が含まれています。
その変化を動機づけた理由はいくつかありました。まず、JMP 13.0でLeast Square Solve()が(私によって)導入されたため、長い間流通していませんでした。次に、順序とデフォルトのインターセプト用語を直列に切り替えて、ほぼすべてのユースケースで、最小二乗Solve()が誤った数ではなくスクリプトが実行されないようにします。後者は特に見つけにくいでしょう。第3に、14.0で、私は基本的に最小二乗法Solve()と同じ問題を解決しますが、線形回帰から標準出力へのよりユーザーフレンドリーなアクセスでJSL関数Linear Regression()を導入しました。テスト、R ^ 2など)。この新しい関数では、y = Xbの問題を解決するので、パラメーターをy、Xの順に並べることがより理にかなっています。これら2つの関数は類似しているため、パラメーターを同じ順序で使用して同じように動作させることを選択しました。
Least Squares Solve()の順序を線形回帰()と一致するように切り替えることを決心しましたが、JMP 14以降ではもっときれいに見えたので切り替えました。直感的です。
Least Squares Solve()を使用してJMP 13またはJMP 14でスクリプトを本当に実行したい場合は、次のようにします。
Names Default To Here(1);
// generate data<BR />random reset(123);
x = j(10,2,random normal());
beta = [1, 2];
y = x * beta + j(10,1,random normal(0,.2) );
<BR />// check version
jmpver = num(left(jmpversion(),2));
if(jmpver >= 14,
Least Squares Solve(y, X, <<NOINTERCEPT></NOINTERCEPT> // where in latest versions, the parameter order is switched <BR /> // and an intercept is added by default
/*else if*/ jmpver == 13,
Least Squares Solve(X, y) <BR /> // this function was introduced in JMP 13.0 with limited functionality
);
参考までに、2つのJMPバージョンのスクリプトインデックスの変更に気付きました。
JMP 13とJMP 14の間で異なる動作をする構文の例をいくつか提供していただけますか。私はこの分野で行われた変更を意識していません。確かに意図的に行われた変更ではありません。
すみません、私はあなたのメッセージをもう一度読みます。私はあなたが最小二乗Solve()関数を参照していることを逃しました。私はFit Least Squaresプラットフォームを見ていました。
調べさせてください。