您好,这个问题与之前提出的问题有关,但由于那个问题已经得到成功回答并且我的疑问现在不同,所以我觉得提出一个新问题是合理的。如果您认为这里不是正确的地方,请随意将它移动到Cross Validated。
这个问题与这里有关。我将在此提供相同的数据以供参考:
x<-c(1e-08, 1.1e-08, 1.2e-08, 1.3e-08, 1.4e-08, 1.6e-08, 1.7e-08,
1.9e-08, 2.1e-08, 2.3e-08, 2.6e-08, 2.8e-08, 3.1e-08, 3.5e-08,
4.2e-08, 4.7e-08, 5.2e-08, 5.8e-08, 6.4e-08, 7.1e-08, 7.9e-08,
8.8e-08, 9.8e-08, 1.1e-07, 1.23e-07, 1.38e-07, 1.55e-07, 1.76e-07,
1.98e-07, 2.26e-07, 2.58e-07, 2.95e-07, 3.25e-07, 3.75e-07, 4.25e-07,
4.75e-07, 5.4e-07, 6.15e-07, 6.75e-07, 7.5e-07, 9e-07, 1.15e-06,
1.45e-06, 1.8e-06, 2.25e-06, 2.75e-06, 3.25e-06, 3.75e-06, 4.5e-06,
5.75e-06, 7e-06, 8e-06, 9.25e-06, 1.125e-05, 1.375e-05, 1.625e-05,
1.875e-05, 2.25e-05, 2.75e-05, 3.1e-05)
y2<-c(-0.169718017273307, 7.28508517630734, 71.6802510299446, 164.637259265704,
322.02901173786, 522.719633360006, 631.977073772459, 792.321270345847,
971.810607095548, 1132.27551798986, 1321.01923840546, 1445.33152600664,
1568.14204073109, 1724.30089942149, 1866.79717333592, 1960.12465709003,
2028.46548012508, 2103.16027631327, 2184.10965255236, 2297.53360080873,
2406.98288043262, 2502.95194879366, 2565.31085776325, 2542.7485752473,
2499.42610084412, 2257.31567571328, 2150.92120390084, 1998.13356362596,
1990.25434682546, 2101.21333152526, 2211.08405955931, 1335.27559108724,
381.326449703455, 430.9020598199, 291.370887491989, 219.580548355043,
238.708972427248, 175.583544448326, 106.057481792519, 59.8876372379487,
26.965143266819, 10.2965349811467, 5.07812046132922, 3.19125838983254,
0.788251933518549, 1.67980552001939, 1.97695007279929, 0.770663673279958,
0.209216903989619, 0.0117903221723813, 0.000974437796492681,
0.000668823762763647, 0.000545308757270207, 0.000490042305650751,
0.000468780182460397, 0.000322977916070751, 0.000195423690538495,
0.000175847622407421, 0.000135771259866332, 9.15607623591363e-05)
我已经成功地使用分段函数模型 segmented
在断点为 1e-07
和 1e-06
的情况下拟合了一条分段线性模型:
linear.model2<-lm(y~x)
segmented.mod2<-segmented(linear.model2,seg.Z= ~x, psi=c(0.0000001,0.000001))
生成的图形如下,拟合效果还不错:
![Segmented fit](https://istack.dev59.com/fAAed.webp)
summary(segmented.mod2)
确认)。现在我意识到这就是该软件包的目的,即迭代直至找到定义最佳拟合的断点,但是我有一个理论上的原因要求最佳拟合由那些确切的断点(我猜你可以称之为固定节点)定义。使用segmented包是否可能实现这一点?或者有人能够提供更好的解决方案以确切定义断点吗?另外一个问题是,由于我将使用这些关系进行预测,我想提取定义线段的斜率和截距。使用
slope(segmented.mod2)
和intercept(segmented.mod2)
应该可以实现,但是在这种情况下,结果似乎与我预期的不符:Est. St.Err. t value CI(95%).l CI(95%).u
slope1 4.614e+10 3.936e+09 11.7200 3.824e+10 5.403e+10
slope2 -6.177e+09 4.397e+08 -14.0500 -7.059e+09 -5.296e+09
slope3 -2.534e+06 5.376e+06 -0.4714 -1.332e+07 8.248e+06
Est.
intercept1 -165.90
intercept2 3061.00
intercept3 46.93
这些线的形式不是y=mx+c
吗?也许这是一个非常愚蠢的问题,但它们是我最喜欢的!;)
任何建议将不胜感激。
yhat=a+b*x
:在我建立的模型中,这将是第一行的 y 值:ypred1 <- intercept(segmented.mod3)$x[1,1] + slope(segmented.mod3)$x[1,1]*x
。 - IRTFMit.max
设置为 0(而不是1),才能使其正常工作。 - kakarot