[英]Piecewise linear regression with constraint - r
我正在嘗試用一個斷點在R中進行分段線性OLS回歸分析。 我有以下回歸公式和限制:
其中D是假人。 我想施加一個限制,以便回歸線是連續的(帶有斷點)。 以下限制可以正常工作。
我的問題是,如何在R的lm()函數中公式化? 我以前嘗試過“分段”程序包,但是我需要在回歸摘要中解釋這兩行的截距。
我在下面提供了一些數據。 此處的斷點為0,因此對於x> = 0, d
為1。
x y d
1 4.3047451 11.2660463 1
2 7.0062423 -3.2897982 1
3 2.7862009 -2.8232636 1
4 -0.8662964 0.4051925 0
5 -0.9553261 -0.9228929 0
6 -1.6626654 3.5044546 0
7 3.4906905 1.4961349 1
8 -0.7072658 -0.2758436 0
9 -7.0054069 -1.3041742 0
10 -2.2510701 -0.1848814 0
11 -13.3617905 -0.2113756 0
12 4.1001251 0.2845748 1
13 -4.6575944 -1.1603290 0
14 5.2243857 3.8324236 1
15 3.5003320 -2.3672985 1
16 -13.2623113 -7.1593177 0
17 -1.7944354 -2.1725478 0
18 0.5885924 -0.2411048 1
19 -19.3744936 -0.1982088 0
20 -17.9876978 -1.5995063 0
編輯:
我添加了我要執行的圖形表示。 重要的是2條擬合線在閾值處相遇,並且我可以得到4個系數。 2個alpha和2個beta。
由於斷點是x = 0,所以我們有a = a2,所以:
nls( y ~ (x < 0) * (a + b * x) + (x > 0) * (a + b2 * x), dat,
start = list(a = 1, b = 1, b2 = 1))
或使用lm
lm(y ~ I(x * (x < 0)) + I(x * (x > 0)), dat)
通常,如果B是斷點:
B <- 0
nls( y ~ (x < B) * (a + b * (x - B)) + (x > B) * (a + b2 * (x - B)), dat,
start = list(a = 1, b = 1, b2 = 1))
B <- 0
lm(y ~ I((x - B) * (x < B)) + I((x - B) * (x > B)), dat)
這不是答案,而是評論,不能在評論部分進行編輯,因為它要求圖像易於理解。
實際上,我無法理解您的數據:當用笛卡爾圖表示時(如下圖所示),這些點顯得非常分散。 它看起來不像是分段函數。 我想念什么?
順便說一句,如果這些點與由兩個傾斜段組成的分段函數相距不太遠,則有一種非常簡單的擬合方法。 參見本文第12-13頁: https : //fr.scribd.com/document/380941024/Regression-par-morceaux-Piecewise-Regression-pdf
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.