用R语言从分段包函数中求直线方程

用R语言从分段包函数中求直线方程,r,regression,linear-regression,R,Regression,Linear Regression,我想做的是得到这里给出的曲线的双线性表示。首先,我想问有没有比我的代码更好的方法?第二个也是很重要的一点是,我不知道是什么函数或命令显示了直线的交点和每条直线的方程式。所以问题是如何从这个分段命令中得到直线方程。不清楚你所说的曲线的双线性表示是什么意思。要获得直线方程,您可以使用intercept和slope如下: X=c(- 0.000000446,0.000006498,0.00001344,0.00002039,0.00002733,0.00003427,0.00004122,0.

我想做的是得到这里给出的曲线的双线性表示。首先,我想问有没有比我的代码更好的方法?第二个也是很重要的一点是,我不知道是什么函数或命令显示了直线的交点和每条直线的方程式。所以问题是如何从这个分段命令中得到直线方程。

不清楚你所说的曲线的双线性表示是什么意思。要获得直线方程,您可以使用
intercept
slope
如下:

 X=c(-    0.000000446,0.000006498,0.00001344,0.00002039,0.00002733,0.00003427,0.00004122,0.00004816,0.00005511,0.00006205,0.000069,0.0000836,0.00009821,0.0001128,0.0001274,0.000142,0.0001566,0.0001713,0.0001859,0.0002005,0.0002151,0.0002297,0.0002443,0.0002589,0.0002735,0.0002881,0.0003027,0.0003173,0.000332,0.0003466,0.0003612,0.0003758,0.0003904,0.000405,0.0004196,0.0004342,0.0004488,0.0004634,0.000478,0.0004926,0.0005073,0.0005219,0.0005365,0.0005511,0.0005657,0.0005803,0.0005949,0.0006095,0.0006241,0.0006387,0.0006533,0.000668,0.0006826,0.0006972,0.0007118,0.0007264,0.000741,0.0007556,0.0007664)
 Y=c(0,61820,73630,83830,93720,103600,109000,112700,116100,119500,120900,122100,123300,124300,125300,126600,127800,129000,130100,131200,132300,133300,134200,135200,136100,136900,137800,138600,139400,140100,140900,141500,142200,142800,143500,144000,144600,145100,145600,146100,146600,147000,147400,147800,148200,148500,148800,149100,149300,149600,149800,149800,149900,149800,149700,149300,148500,148000,147600)
 plot(X,Y)
 linear1=lm(Y~X)
 linear2=segmented(linear1,seg.Z=~X, psi = 0.0005,data=d)
 plot(linear2)
 points(X,Y)
 slope(linear2)

这是一个老问题,但我一直在寻找有关使用分段的信息,因为我想我理解你的问题,所以我可以提供一个快速的答案。两条曲线相交的“x”值为断点。以您的例子:

直线2

调用:segmented.lm(obj=linear1,seg.Z=~X,psi=5e-04,data=d)

线性项的有意义系数:

(截距)xu1.X
2.997e+042.212e+09-2.167e+09

预计断点psi1.X:4.215e-05

模型的线性方程组为:


y=slope1*x+intercept1当x断点时

我说的双线性是指两条线相交于数学上一致的点。我知道坡度1和坡度2都可以。我的问题是交叉点。我的理解是截距2是交点Y坐标。端点X到Y坐标如何,数组中的最大X是否自动成为端点X坐标?很抱歉,我本想直接像y=mx+c一样得到这个方程,但没能出来。再次感谢您的回复
intercept(linear2)
$X
             Est.
intercept1  22730
intercept2 119200

> slope(linear2)
$X
            Est.   St.Err. t value CI(95%).l CI(95%).u
slope1 2.938e+09 288100000   10.20 2.360e+09 3.515e+09
slope2 4.872e+07   3840000   12.69 4.103e+07 5.642e+07