X 軸の特定の値で標準の最小二乗回帰を実行するにはどうすればよいですか?
詳細については、電圧と電流をプロットし、値 -10A -5A 5A 10A をプロットします。これらの値の周囲に非常に多くの点がある標準的な最小回帰モデルが必要です。 これを表すためにデータ上に 4 つの点または 4 つの小さな線を取得すると想像します。
私はJMP 17 proを持っており、現在すべてのデータセットに対してそれを行っていますが、これは私が必要とするものではありません。
JMP 分析を通じてこれを行う方法はスクリプトよりも推奨されますが、何でも良いでしょう 
こんにちは@MedianRooster10 、
データがどのように構造化されているかを確認できるように、サンプル データ テーブルを共有していただけますか? これは、より早く解決策を見つけるのに役立つ可能性があります。
思いついたアイデアの 1 つは、現在のさまざまなグループを公称データ型として分類する列を用意するというものです。 :Current 列には -10、-5、5、10 などの数値を指定できますが、次のようなテキストを含む列を指定することもできます。 -10A -5A 5A 10A、電流のグループごとに、標準の LS 回帰を実行するときに、この列を「BY」変数として使用します。
これは、Big Class.jmp ファイルを使用して、:height を Y、:weight を X、そして :sex を「BY」変数としてモデル化するようなものです。 これにより、さまざまな電圧範囲にグループ化されたすべての Y のモデルが提供されます。 これはあなたが求めているものではないかもしれませんが、データがどのように構造化されているかを確認し、より具体的な解決策を提供するために、サンプル データ テーブルを取得すると役立ちます。
お役に立てれば!、
DS
こんにちは@SDF1
それが私が求めていることではないと思います。
1 つの温度のデータのサブセットと私が作成したグラフを添付しました。
線形グラフではありませんが、部分線形回帰が必要です。 たとえば、5A に最も近い 10 個のデータ ポイントを取得し、その最小最小二乗を計算したいとします (これをグラフ上のデータ ポイントとしてプロットします)。
助けてくれてありがとう!
こんにちは@MedianRooster10 、
区分回帰をしようとしていると思います。 Functional Data Explorer または非線形プラットフォームを使用して実行できる場合があります。
この JMP ブログは、非常によく似た使用例でこの回帰タイプを理解するのに役立つかもしれません。 JMP の非線形プラットフォームを使用した区分関数のフィッティング
これがお役に立てば幸いです。
こんにちは@MedianRooster10 、
データ表をありがとう。これは物事をよりよく理解するのに役立ちます。
すべてのデータに対して最小二乗近似を行う必要はなく、特定のセグメントまたは複数のセグメントに対してのみ行う必要がある場合でも、何らかの識別列を使用して、それをモデル内で次のいずれかとして使用するのが良い方法だと私は考えています。 BY 変数として、またはローカル データ フィルターとして。 また、多くのデータ テーブルや列に対してこれを行う必要があるかもしれないと推測しています。つまり、実際にはスクリプトを使用することが非常に良い方法であることを意味します。
少しのスクリプトでそれを実行し、残りは JMP とのインターフェースとして使用したい場合は、データ テーブルを並べ替え、新しいデータ テーブルを作成し、:Segment という列を生成し、そのセグメントに値を割り当てる小さなコードを以下に示します。選択。 コードでは、ターゲットはターゲットの現在値です。私は 10 を選択しました。範囲はその両側のデータ ポイントの数です。次に、通常の標準最小二乗を実行し、:Segment 列をローカル データ フィルターとして使用すると、セグメント 2 を選択してデータに適合する最小二乗を取得できます。
Names Default To Here( 1 );
Current Data Table() << Sort( By( :"Current(A)"n ), Order( Ascending ), Output Table( "Sorted.jmp" ) );
dt = Data Table("Sorted");
dt << New Column( "Segment", "Continuous", "Ordinal" );
range = 5; //rows to group on either side of target
target = 10; //5A
rows = Current Data Table() << Get Rows Where( (:"Current(A)"n >= target - 0.3 & :"Current(A)"n <= target + 0.3) );
For( i = 1, i <= N Rows(dt), i++,
If(
i < rows - range, :Segment[i] = 1,
(i >= rows - range & i <= rows + range), :Segment[i] = 2,
i > rows + range, :Segment[i] = 3
)
);次のような出力が得られます。

SLS モデル フィットの BY 変数としてセグメント列を使用する場合、データのモデルを取得するときに、CTRL キーを押したまま、いずれかの「応答電圧」名の近くにあるレッドホット ボタンを左クリックして、 [列の保存] > [予測式] を選択すると、セグメント番号に応じて異なる式が使用される予測式列がデータ テーブルに保存されます。



確かにそれも一つの方法です。
もう 1 つの方法は、グラフ ビルダーで電圧と電流のグラフを作成し、投げ縄ツール (虫眼鏡の横、メニューの下) を使用して、当てはめるデータを選択することです。

次に、「行」>「行選択」>「行選択を反転」に移動します。

次に、行番号の 1 つを右クリックし、[非表示と除外] を選択します。 次に、標準最小二乗法のモデル プラットフォームに移動すると、非表示または除外されていないデータ ポイントだけをモデル化できます。
以下の例では、モデルと SLS がデータに適合していることがわかります。 予測による残差プロットからは、ある程度の曲率が確認できるため、Current*Current 項を追加しました。わずかにランダムな残差を使用すると、より良好な適合が得られます。


データのさまざまな区分セクションの数式の関数形式がわかっている場合は、Victor が非線形プラットフォームを使用して言及した方法でそれを行うと思います。 ただし、各部分の機能形式を理解し、データをどこで「スライス」するかを知る必要があります。
ここから Victor の投稿までの間に、始めるのに十分な内容が揃っているはずです。
お役に立てれば!、
DS