分段回歸<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />有誰知道如何在 JMP 上執行分段回歸併計算斷點(兩條線相交的位置)?
回覆:分段回歸對於那些還沒有看過這個的人,這是我的同事寫的一個可能有用的博客@傑瑞魚關於如何在 JMP 中建構和操作分段擬合(使用非線性平台):分段非線性解第 3 部分:使用 JMP 的公式編輯器求解未知參數。
我將其包含在這裡,因為它與本次討論非常吻合。
回覆:分段回歸我最近嘗試過這個,它對我來說比非線性平台實用程式更有意義。我有興趣了解迭代方案如何收斂到我的解決方案?我嘗試為我的數據選擇一個合理的 d 值(切點),當我“鎖定”d 的值並重新單擊從生成的平台對話框上的“Go”按鈕時,它似乎工作得更好使用以下工具啟動非線性平台:
Nonlinear( Y( :Y ), X( :Ypred ), Newton, Finish );
程式碼的一部分。
有沒有一種簡單的方法可以更改這個簡短的腳本來呼叫資料表? (手動輸入 X 和 Y 的值)?
我確信這是一個“JSL 新手問題”,所以我提前道歉...
我以一種令人討厭的方式將其複製並貼上到我保存的資料表中,其中包含列,{X,Y,Ypred}和我填充的資料:
Parameter( {a = 5, b = 45, c = -100, d = 0.109}, a + b * :X + c * (:X - d) * (:X > d) );
Nonlinear( Y( :Y ), X( :Ypred ), Newton, Finish );這就是我得出數據結果的方式!再次感謝您對社區的貢獻。
回覆:分段回歸謝謝我會嘗試!
回覆:分段回歸正如 Dodo 所建議的,分段迴歸可以使用非線性平台來完成。 下面是一個基於上面斷棍範例的範例。
New Table( "piecewise",
Add Rows( 20 ),
New Column( "X",
Continuous,
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] )
),
New Column( "Y",
Numeric,
Set Values( [15, 12, 27, 31, 26, 31, 42, 47, 56, 56, 47, 46, 36, 44, 38, 35, 34, 35, 25, 19] )
),
New Column( "Ypred",
Numeric,
Formula( Parameter( {a = 20, b = 1, c = -10, d = 10}, a + b * :X + c * (:X - d) * (:X > d) ) )
)
);
Nonlinear( Y( :Y ), X( :Ypred ), Newton, Finish );
回覆:分段回歸如果這是一個簡單的斷棍關係,你可以這樣做:
// Create a broken stick relationship with some noise;
x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
y = [15, 12, 27, 31, 26, 31, 42, 47, 56, 56, 47, 46, 36, 44, 38, 35, 34, 35, 25, 19];
expr_FX = expr(a + b*x + c*(x-d):*(x>d));
expr_SSE = expr(sum((y-expr_FX)^2));
// Supply a set of starting values;
a = 20; b = 1; c = -10; d = 15;
print("Starting values:");
show(a, b, c, d);
sse = minimize(expr_SSE, {a, b, c, d}, << tolerance(1e-5));
print("Final estimates:");
show(a, b, c, d);
show(eval(expr_FX));
我基於《JMP 10 手冊》第 8 章中的最小平方法範例,將表達式中的斷棒關係替換為範例中的指數模型。斷點將是參數 d,因為它是線斜率變化的 x 值。請注意,當您將兩個矩陣 (xd) 和 (x>d) 相乘時,您將需要逐元素乘積:*而不是簡單的乘法。您可能還需要一個相對較好的斷點起始值,以便表達式收斂。在此範例中,所有輸出都寫入日誌。
據推測,這也可以在非線性平台(分析|建模|非線性)中設置,但我還沒有嘗試過,因為我不太熟悉在數據表中使用公式。這些幫助有用?