适合指数或曲棍球棒衰减

fit exponential or hockey stick decay

我正在尝试找到适合我的数据的方程式。我认识到形状是 y=-exp(x)nls(y~-a*exp(x*b)) 具有各种参数起始值失败。 y 为负,因此 log(y)~log(a)+bx 的 "easy" 拟合效果不佳。我试过 log(y+2)~a+bx 使一切都变得积极,但没有得到正确的形状。

有人可以提供一些帮助来拟合这些数据吗?谢谢!

y=瑞典夫

x=平均日期

dat2=structure(list(swediff = c(0.0379635202678687, 0.0845477936160927, 
0.146010217481196, 0.0416237104326292, 0.0659140490644253, 0.134535534695029, 
0.0095147654468483, 0.238456044233877, 0.276025694437364, 0.29435448415394, 
0.00301157777812485, 0.19171002685605, 0.277759059448242, 0.00400780564144798, 
0.342605838471721, 0.236804884903432, 0.151048712082562, 0.188620966368049, 
-0.0615972418208484, -0.00184933102124457, -0.0163171325413688, 
0.00370250929658511, 0.30014673206306, 0.135354035472228, 0.00699671782210069, 
0.0174510674253347, -0.0145499677497698, 0.0113155610814752, 
-0.0683884523999768, 0.20157093417998, 0.186320361855075, -0.115609443650563, 
0.069177592825418, -0.0161221161393796, 0.150181081582068, 0.0632121126749741, 
0.0769960292118834, 0.061783685314432, 0.0442014176783082, -0.00990798027657931, 
-0.00186219548019918, 0.0274216740478325, 0.118878480695049, 
0.0592089915185285, -0.00823096478874009, 0.120750948230554, 
0.278594307094423, -0.0111994006625954, 0.0379360193757585, 6.29460162030332e-05, 
0.0602068958909111, 0.173755367986025, 0.135902420389977, 0.124863098282806, 
0.0706487190649132, 0.284186487140106, 0.395475978216811, 0.207437141623493, 
0.125297332063683, 0.173198938943319, 0.286364692763195, 0.187181622294097, 
0.0155249739392275, 0.0284811383447792, 0.3302152196822, 0.279809724823687, 
0.137578862533244, 0.116541887214791, 0.0092271882470954, -0.244303611220416, 
-0.0553353805122039, 0.000651263069993122, 0.095154425644194, 
0.208713883186232, 0.188079755592783, 0.205982363732731, 0.0411534316934769, 
0.0245409797776046, 0.309614117523271, 0.355492037841145, 0.288275778246439, 
0.321807979017761, 0.287947161484914, 0.156217353669998, 0.172890522219893, 
-0.0179090707980069, 0.0179643473340213, 0.25572307647916, 0.129243837667331, 
-0.122599542543602, -0.250851649402414, -0.590393411432316, -0.358595360363101, 
-0.0550622410807962, 0.117220026030236, 0.164838184961244, -0.069042978776428, 
0.167357636244551, 0.196797358553372, 0.0360344219433584, 0.104666349576576, 
0.180262208126638, 0.310581785237572, -0.0391739945001232, 0.183767269585731, 
-0.152544955460898, -0.158059621319118, 0.0295497815037277, 0.279152618815129, 
0.449891855544769, 0.0647285940606174, 0.198100342057544, 0.180654262068054, 
-0.0276951482994757, -0.265654834430295, -0.391084042220014, 
-0.232183493444027, -0.350719544866729, -0.430609172084572, -0.360201519737938, 
-0.150370469022476, 0.193858381273031, 0.0324799885766501, 0.00919239862196636, 
0.0389874409767672, 0.0735492920963668, -0.0246395678120185, 
-0.456275023145791, -0.454966261045632, -0.449668204190322, 0.109736227977039, 
0.258795304502191, 0.097510631994483, 0.311711079270686, -0.214511654649866, 
-0.369907957164848, -1.10256371343854, -0.540460735663232, -0.524390818371818, 
-0.807243819575856, -0.821087579040873, -0.464518686689061, -0.00423706426563258, 
-0.215993248122225, -0.250111278782723, -0.388687939032414, -0.360549487118099, 
-0.650590724024303, -0.519445819136207, -0.202899217122569, 0.0586223761941996, 
0.216084208573312, 0.0706260521616783, 0.0756847641524316, 0.0770749593558848, 
0.117128900658644, 0.176013651395269, -0.0908276818873188, -0.264146913474664, 
-0.397227204225366, -0.520243226629073, -0.315371107607145, -0.317452140016727, 
-0.288852876616768, -0.341051691256037, -0.221530347691469, -0.459411134488964, 
-0.637940256805166, -0.27643564304224, -0.0101249183839163, 0.286080813914053, 
0.185985595857955, 0.0607903622684369, 0.0739324892640134, 0.0613910749095987, 
0.081924014991581, 0.191652099453867, 0.0671457700438239, -0.239590260546166, 
-0.153731321264683, -0.925001640233871, -0.768208799308804, -0.953874558691501, 
-0.879388655106864, -0.731569006141193, -0.80662535340525, -0.546541080560938, 
-0.0290726402048612, 0.0899201018225928, -0.427683149429864, 
-0.642914036196173, -0.00975702612958795, 0.108679758607406, 
0.115330348818079, 0.0636578050454333, 0.12389689549272, 0.0784572603799192, 
0.0984567282801977, -0.192624142725435, -0.512093030098511, -0.478389465413485, 
-0.621953473157772, -0.14258209361421, 0.215855068127397, 0.10933805943701, 
0.0371862858446161, 0.147743925023497, 0.110106354151748, 0.167891959372529, 
0.0869501603757304, 0.079154830708945, -0.0538071559599136, 0.329630218853886, 
-0.069082249729998, -0.168466429438044, -0.0413130450215624, 
-0.220680450761757, -0.778270577227636, -0.579688137311179, -0.377826042303253, 
-0.172521105687602, 0.0123755037495739, 0.146581091763792, 0.142823263739513, 
0.118485470250309, 0.123284157640724, 0.00262964701743046, -0.324425563039869, 
0.0535619813150857, 0.172683623868712, 0.127449390525177, 0.268301759367799, 
-0.00433449818031201, -0.371211977194441, -0.457630978639089, 
-0.40157582709021, -0.303037159227197, -0.664551261534142, -0.619530450371125, 
-0.310697158309397, -0.146761733349917, 0.0236095942741553, 0.00995413363968556, 
-0.220037507344027, -0.298201547051362, -0.228524953982665, 0.139997538150043, 
-0.0164089841500689, 0.0480316934068684, -0.0202200927067654, 
0.210784261132325, 0.235666847665425, 0.187862324743091, -0.0954145478677223, 
-0.198055375090692, -0.299881653134342, -0.693717473430792, -0.826874682094633, 
-0.537211297019843, 0.0727237791693081, 0.252505366529933, -0.317726197889352, 
-0.279117149104267, -0.0368974550397417, 0.292430819817608, 0.14796346005382, 
0.037310174880905, 0.111369531415814, 0.222644841684763, 0.232955939088023, 
0.0985704990997788, -0.045553014664072, -0.207731060229671, -0.229935960514404, 
-0.686597725938266, -0.247064364067584, -0.371521331373238, -0.430762168759812, 
-0.196945305918869, 0.215658033923907, 0.390228305203605, 0.300921043791892, 
0.043076468096275, -0.00079320334809857, 0.252832538725812, -0.0267246881907509, 
-0.0904732083287169, -0.254702182910177, -0.289199140111472, 
-0.903663808758846, -0.730480757062446, -0.399450175857138, -0.204946388704593, 
0.167241850751596, 0.108062173538109, 0.158279079258542, 0.110014597255262, 
-0.0307183404739954, -0.105426447364233, 0.133090339859816, -0.178600042668314, 
-0.271699090774754, -0.342264904547807, -1.09265736425287, -0.699172072891869, 
-0.0979254975665448, 0.268596423677819, 0.155665651298694, 0.0992990830653245, 
0.277629262139193, 0.176822125972084, -0.103178451026634, -0.461191269578747, 
-0.216966326644849, -0.1084886076781, -0.154140082268591, -0.652188752264078, 
-0.657623380576153, -0.0784736154290889, 0.0742726185810828, 
0.0709763425947463, 0.294940653726301, 0.293652811592831, 0.0640793559532362, 
-0.0367757730565124, -0.415018906491611, -0.538095246521145, 
-0.18261089894835, -0.566401860686253, -0.194554300183061, -0.0327973145856545, 
0.106726178908186, 0.0748878637317865, 0.0234611871797437, 0.218270627297708, 
-0.15143333931606, -0.028720599313675, -0.604914220546465, -0.484120047066584, 
-0.629905362306152, -0.363942052067613, -0.1558791539258, 0.0559939704995262, 
-0.267565269947471, -0.507879399175005, -0.163173363661096, -0.0301926306852119, 
0.0141783247953152, -0.078676708722438), avgdate = c(107.642857142857, 
108.142857142857, 111.928571428571, 101.857142857143, 80.1428571428571, 
78.1428571428571, 120.214285714286, 114.785714285714, 110.428571428571, 
112.5, 111.571428571429, 103.214285714286, 68.1428571428571, 
85, 79.6428571428571, 78.3571428571429, 100, 99.6428571428571, 
78.2142857142857, 116.285714285714, 82.5714285714286, 84.4285714285714, 
87, 65.7142857142857, 54.8571428571429, 77.2142857142857, 113.214285714286, 
99.7142857142857, 98.4285714285714, 116.428571428571, 128.928571428571, 
102.785714285714, 96.5, 121.071428571429, 115.214285714286, 116.5, 
114.785714285714, 53, 45.2142857142857, 39.5, 72.5714285714286, 
84.4285714285714, 112.571428571429, 74.3571428571429, 96.8571428571429, 
118.571428571429, 159.642857142857, 164.214285714286, 20.2857142857143, 
49.1428571428571, 59.7142857142857, 43.5, 60.8571428571429, 117, 
64.6428571428571, 31.2857142857143, 16.5714285714286, 16.5714285714286, 
32.3571428571429, 33.5, 42.0714285714286, 47.4285714285714, 68.7142857142857, 
113.071428571429, 135, 154.214285714286, 159.714285714286, 167.5, 
167.642857142857, 143.642857142857, 97.4285714285714, 40.0714285714286, 
22.2142857142857, 18.5714285714286, 39.6428571428571, 66.2857142857143, 
80.3571428571429, 56.6428571428571, 28.7142857142857, 30.8571428571429, 
19.8571428571429, 18.7857142857143, 85, 138.142857142857, 121.357142857143, 
104.785714285714, 64.4285714285714, 147.785714285714, 161.285714285714, 
171.214285714286, 173.357142857143, 168.214285714286, 170.5, 
172.5, 33.5, 47.2857142857143, 134.214285714286, 101.571428571429, 
66.7857142857143, 62.8571428571429, 75.8571428571429, 57.3571428571429, 
135.785714285714, 131.357142857143, 140.214285714286, 167.214285714286, 
171.857142857143, 157, 120.928571428571, 92.2857142857143, 90.2142857142857, 
127.5, 137.285714285714, 167.785714285714, 170.857142857143, 
169.714285714286, 180.714285714286, 174.857142857143, 191.071428571429, 
162.857142857143, 156.142857142857, 143.642857142857, 112.071428571429, 
155.571428571429, 155.928571428571, 156.714285714286, 168.142857142857, 
173.5, 180.428571428571, 175.642857142857, 152.642857142857, 
144.214285714286, 119, 141.428571428571, 164.714285714286, 175.142857142857, 
166.428571428571, 129.571428571429, 143.071428571429, 162.571428571429, 
NA, 187.357142857143, 167.285714285714, 159.642857142857, 152.785714285714, 
174.142857142857, 180.357142857143, 180.357142857143, 173.642857142857, 
177.642857142857, 170.357142857143, 158.928571428571, 141.357142857143, 
117.571428571429, 136.571428571429, 118.714285714286, 165.785714285714, 
169.5, 171.357142857143, 196.785714285714, 198.428571428571, 
195.428571428571, 193.642857142857, 185, 191.928571428571, NA, 
195.642857142857, 169, 168.642857142857, 162.928571428571, 147, 
136.928571428571, 93.6428571428571, 105.285714285714, 130.428571428571, 
139.714285714286, 145.214285714286, 160.928571428571, 164.714285714286, 
171.785714285714, 174.5, 185, 187.071428571429, 191.5, 190.214285714286, 
NA, 173.357142857143, 171.285714285714, 165.214285714286, 186.642857142857, 
178.714285714286, 169.928571428571, 132.428571428571, 133.357142857143, 
137.5, 141.357142857143, 152.642857142857, 151.428571428571, 
157.142857142857, 172.142857142857, 166.714285714286, 187.785714285714, 
179.857142857143, 164.428571428571, 141.357142857143, 140.357142857143, 
174.357142857143, 142.214285714286, 126.285714285714, 150.571428571429, 
154.571428571429, 128.857142857143, 141.785714285714, 163.5, 
169, 165.714285714286, 175.071428571429, 170.285714285714, 180.071428571429, 
180.5, 178.357142857143, 167.285714285714, 152.357142857143, 
136.714285714286, 154.5, 162.571428571429, 168.714285714286, 
164.428571428571, 164, 129.214285714286, 134.142857142857, 152.428571428571, 
169, 169.5, 174.857142857143, 174.857142857143, 177.285714285714, 
188.071428571429, 191.214285714286, 184.5, 176.214285714286, 
170.142857142857, 162.428571428571, 174, 173.428571428571, 167.785714285714, 
165.785714285714, 137.714285714286, 147, 145.642857142857, 141.571428571429, 
150.5, 158.428571428571, 172.428571428571, 174.285714285714, 
171.285714285714, 185.285714285714, 190.857142857143, 177.214285714286, 
166.571428571429, 167.571428571429, 169.428571428571, 159.357142857143, 
156.357142857143, 142.571428571429, 136.928571428571, 158.714285714286, 
159.071428571429, 146.928571428571, 149.214285714286, 152.285714285714, 
159.928571428571, 162.785714285714, 174, 179.285714285714, 181.571428571429, 
176.428571428571, 176.071428571429, 169.285714285714, 150.428571428571, 
134.785714285714, 144, 152.714285714286, 163.785714285714, 159.428571428571, 
172.714285714286, 164.642857142857, 167.857142857143, 165.642857142857, 
179.571428571429, 179.142857142857, 144.428571428571, 176.357142857143, 
152.285714285714, 132, 129.142857142857, 139.071428571429, 161.142857142857, 
171.785714285714, 161.642857142857, 171.357142857143, 172.571428571429, 
172.428571428571, 180.285714285714, 180.857142857143, 175.142857142857, 
164.5, 135.357142857143, 132, 144, 147.714285714286, 166.928571428571, 
178.571428571429, 176.071428571429, 173.785714285714, 169.857142857143, 
183.785714285714, 193.857142857143, 169.714285714286, 160.928571428571, 
144, 148.785714285714, 150, 160.428571428571, 157.785714285714, 
174.357142857143, 175.571428571429, 171.785714285714, 180.142857142857, 
180.857142857143, 172.928571428571, 168.214285714286, 158.5, 
162.214285714286, 166.928571428571, 169.071428571429, 168.5, 
178.428571428571, 188.285714285714, 178.142857142857, 175.785714285714, 
170.214285714286, 154.571428571429, 170.142857142857, 165.214285714286, 
168.642857142857, 167.214285714286, 154.071428571429, 168.357142857143
)), row.names = c(NA, -349L), class = c("tbl_df", "tbl", "data.frame"
), .Names = c("swediff", "avgdate"))

难怪它不收敛。您的模型不允许拟合度超过 0。

您的 nls 模型需要一个渐近线参数,而不是强制它为 0。

如果你尝试

nls(y~c-a*exp(x*b),start=list(a=.1,b=.1,c=0.2))

你很合身:

统计学家可能会问你为什么需要函数形式;典型的非参数回归/平滑方法*应该描述这种关系,或者稍微好一点;您可以使用交叉验证来选择 df。

* 我希望具有 3 df 加上常数项的自然三次样条会表现得很好(它有一个额外的参数,所以如果它比 nls 指数拟合更好,那就不足为奇了)


你可以很容易地做一个虚线配合包segmented:

 library(segmented)
 linmdl <- lm(y~x)
 segmentedmdl <- segmented(linmdl, seg.Z = ~x, psi=150)
 summary(segmentedmdl)

        ***Regression Model with Segmented Relationship(s)***

Call: 
segmented.lm(obj = linmdl, seg.Z = ~x, psi = 150)

Estimated Break-Point(s):
    Est.  St.Err 
154.173   1.962 

Meaningful coefficients of the linear terms:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.1518234  0.0427016   3.555  0.00043 ***
x           -0.0003317  0.0003784  -0.877  0.38134    
U1.x        -0.0191520  0.0015109 -12.676       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1909 on 342 degrees of freedom
Multiple R-Squared: 0.5835,  Adjusted R-squared: 0.5799 

Convergence attained in 2 iterations with relative change 1.425652e-16 

如您所见,它在大约 154 处设置了中断,产生了这个拟合: