I have some data that when plotted looks similar to this:
Then eyeballing the charts on this page, it looks like I might have an exponential decay (Increasing form) relationship?
I searched for how to fit this type of model in R and found this SO post. The solution from that post:
set.seed(1) # so the example is reproduceable
df <- data.frame(Abundance=sort(sample(1:70,30)))
df$Richness <- with(df, 20*(1-exp(-0.03*Abundance))+rnorm(30))
fit <- nls(Richness ~ C*(1-exp(k*Abundance)),data=df,
algorithm="port",
start=c(C=10,k=-1),lower=c(C=0,k=-Inf), upper=c(C=Inf,k=0))
I tried to fit this to my own data but get a convergence error:
fit <- nls(TOTAL_CUMULATIVE_AMOUNT ~ C*(1-exp(k*TENURE)), data=pdata2,
+ algorithm="port",
+ start=c(C=10,k=-1),lower=c(C=0,k=-Inf), upper=c(C=Inf,k=0))
Error in nls(TOTAL_CUMULATIVE_AMOUNT ~ C * (1 - exp(k * TENURE)), data = pdata2, :
Convergence failure: singular convergence (7)
I was unsure what start
, lower
and upper
where in this context so looked at the documentation for ?nls
:
start: a named list or named numeric vector of starting estimates. When start is missing (and formula is not a self-starting model, see selfStart), a very cheap guess for start is tried (if algorithm != "plinear").
lower/upper: vectors of lower and upper bounds, replicated to be as long as start. If unspecified, all parameters are assumed to be unconstrained. Bounds can only be used with the "port" algorithm. They are ignored, with a warning, if given for other algorithms.
I still don't really understand what those mean.
I tried leaving them out and fitting again but this gave another error:
fit <- nls(TOTAL_CUMULATIVE_AMOUNT ~ C*(1-exp(k*TENURE)), data=pdata2,
+ algorithm="port")
Error in C * (1 - exp(k * TENURE)) :
non-numeric argument to binary operator
Here's a summary of pdata2
:
pdata2 %>% summary
TENURE TOTAL_CUMULATIVE_AMOUNT
Min. : 7.0 Min. :1.207e+08
1st Qu.:187.8 1st Qu.:1.191e+09
Median :368.5 Median :1.703e+09
Mean :368.5 Mean :1.538e+09
3rd Qu.:549.2 3rd Qu.:1.969e+09
Max. :730.0 Max. :2.119e+09
pdata2 %>% glimpse
Rows: 724
Columns: 2
$ TENURE <dbl> 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,…
$ TOTAL_CUMULATIVE_AMOUNT <dbl> 12065.81, 13422.30, 14708.39, 15923.89, 17107.51, 18243.34, 19395.96, 20…
How can I overcome this error and fit a exponential decay (increasing form) model?
[Edit] Scaled and sanitized data, here's the dput of pdata2:
structure(list(TENURE = c(7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590,
591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616,
617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629,
630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681,
682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707,
708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720,
721, 722, 723, 724, 725, 726, 727, 728, 729, 730), TOTAL_CUMULATIVE_AMOUNT = c(120.658144,
134.222981, 147.083863, 159.238861, 171.07506, 182.433427, 193.959608,
205.398569, 217.065617, 227.88294, 238.208604, 248.7267, 259.033375,
269.645001, 280.22768, 290.339236, 300.175645, 309.893532, 319.401227,
328.538212, 337.812905, 346.897638, 356.256771, 365.203453, 374.028778,
382.44069, 391.031376, 399.603472, 408.643964, 417.62814, 425.905169,
433.880421, 442.137973, 450.552238, 458.817027, 467.328472, 475.763503,
483.932499, 491.837662, 499.533161, 507.334929, 515.577564, 523.74277,
531.629968, 539.297029, 546.683601, 554.070205, 561.262417, 568.487104,
575.741234, 582.921559, 589.671381, 596.42627, 603.115026, 610.038471,
616.910091, 623.626384, 630.386505, 636.95572, 643.033317, 649.249905,
655.330175, 661.8546, 668.450269, 675.098372, 681.524995, 687.873301,
694.147956, 700.505076, 706.964236, 713.422493, 719.760698, 725.931634,
731.999539, 738.055802, 743.957791, 749.99346, 756.130357, 762.077698,
767.799198, 773.650374, 779.182589, 784.743745, 790.331146, 795.880115,
801.298307, 806.524801, 811.712454, 816.822691, 821.595714, 826.572265,
831.77164, 837.024091, 842.260608, 847.209915, 852.37978, 857.474076,
862.78088, 868.00515, 873.381476, 878.25394, 883.144414, 887.951485,
892.789252, 897.888436, 902.783288, 907.86608, 912.641968, 917.480793,
922.212901, 926.830266, 931.138449, 935.693909, 940.170322, 944.446869,
948.740737, 952.613686, 956.618882, 961.00304, 965.167469, 969.386703,
973.634411, 977.892102, 981.991028, 986.129414, 990.283106, 994.517307,
998.58441, 1002.682591, 1006.611134, 1010.656914, 1014.5957,
1018.852938, 1023.053059, 1027.293643, 1031.410214, 1035.34798,
1039.265272, 1043.157102, 1047.040021, 1050.864722, 1054.764933,
1058.244164, 1061.742756, 1065.266805, 1068.59785, 1072.123547,
1075.62904, 1079.227407, 1082.703456, 1086.119529, 1089.39846,
1092.684765, 1096.106552, 1099.430422, 1102.964752, 1106.267448,
1109.678124, 1113.008005, 1116.387063, 1120.13737, 1123.723282,
1127.398092, 1130.718812, 1134.390364, 1138.054106, 1141.497474,
1144.981198, 1148.473253, 1152.063834, 1155.414638, 1158.86215,
1162.231715, 1165.461909, 1168.959181, 1172.251376, 1175.614261,
1178.964644, 1182.154069, 1185.338248, 1188.626183, 1192.02864,
1195.565526, 1199.110816, 1202.663641, 1206.077989, 1209.294201,
1212.90853, 1216.563103, 1220.366396, 1224.2231, 1227.84374,
1231.72717, 1235.474692, 1239.367729, 1243.368245, 1247.34284,
1251.397334, 1255.199083, 1259.067231, 1262.995486, 1266.839902,
1270.844278, 1274.544348, 1278.462843, 1282.244194, 1286.059436,
1289.712231, 1293.522813, 1297.489811, 1301.467906, 1305.34363,
1309.235806, 1312.996128, 1316.735788, 1320.669961, 1324.753659,
1328.804284, 1332.754207, 1336.738981, 1340.545334, 1344.40407,
1348.305588, 1352.371126, 1356.334823, 1360.299955, 1363.904752,
1367.702834, 1371.617151, 1375.284838, 1379.101011, 1382.813628,
1386.333213, 1389.743653, 1393.19626, 1396.504151, 1399.842653,
1403.069048, 1406.239951, 1409.303995, 1412.339564, 1415.322623,
1418.305515, 1420.994144, 1423.982232, 1427.052502, 1430.145899,
1433.122526, 1436.083515, 1439.057432, 1442.071709, 1445.13259,
1448.185091, 1451.381345, 1454.330247, 1457.269911, 1460.174267,
1462.995213, 1466.115549, 1468.980675, 1471.846668, 1474.654904,
1477.216483, 1479.754973, 1482.376588, 1485.067753, 1487.733443,
1490.324571, 1492.931949, 1495.236589, 1497.511185, 1499.797216,
1502.305557, 1504.928327, 1507.512611, 1509.99524, 1512.443055,
1515.004266, 1517.554906, 1520.30226, 1523.050502, 1525.814132,
1528.317127, 1530.983185, 1533.701645, 1536.499075, 1539.360258,
1542.147208, 1545.005254, 1547.59168, 1550.095662, 1552.846693,
1555.434547, 1558.075603, 1560.508738, 1563.170669, 1565.440903,
1567.777821, 1570.200538, 1572.473211, 1574.871431, 1577.285379,
1579.642384, 1581.941331, 1584.237304, 1586.506749, 1588.946016,
1591.354846, 1593.89034, 1596.317624, 1598.814065, 1601.163581,
1603.433059, 1605.824195, 1608.368816, 1610.906523, 1613.400685,
1615.747353, 1618.164303, 1620.453064, 1622.75839, 1625.06362,
1627.207458, 1629.347692, 1631.464796, 1633.367574, 1635.226171,
1637.21937, 1639.143279, 1641.134923, 1643.004188, 1644.84348,
1646.795757, 1648.510309, 1650.331746, 1652.343251, 1654.205449,
1656.179753, 1657.97928, 1659.890551, 1661.760924, 1663.721208,
1665.878364, 1668.071522, 1670.222918, 1672.279365, 1674.357448,
1676.444112, 1678.395956, 1680.514781, 1682.514992, 1684.567783,
1686.454762, 1688.292311, 1690.080282, 1691.836858, 1693.690806,
1695.45231, 1697.237985, 1698.782572, 1700.367967, 1701.930589,
1703.575422, 1705.308103, 1707.014531, 1708.759111, 1710.459851,
1712.229397, 1713.904607, 1715.53513, 1717.359619, 1719.273153,
1721.269764, 1723.174235, 1724.952676, 1726.766171, 1728.716402,
1730.723349, 1732.638268, 1734.523676, 1736.336088, 1738.127718,
1739.952827, 1741.716276, 1743.534389, 1745.303761, 1746.958243,
1748.72396, 1750.327146, 1751.895053, 1753.411818, 1755.047015,
1756.763254, 1758.426989, 1760.005224, 1761.555474, 1763.107565,
1764.712157, 1766.306445, 1767.923549, 1769.60143, 1771.171298,
1772.741663, 1774.315452, 1775.905081, 1777.777227, 1779.543643,
1781.27696, 1782.958628, 1784.576438, 1786.181779, 1787.792262,
1789.445287, 1790.923773, 1792.39076, 1793.854135, 1795.361157,
1796.863343, 1798.223991, 1799.810749, 1801.376326, 1802.839369,
1804.232902, 1805.659449, 1807.079526, 1808.415968, 1809.87946,
1811.438264, 1813.026061, 1814.516293, 1815.987857, 1817.466149,
1819.123237, 1820.923127, 1822.742003, 1824.430273, 1826.19286,
1827.85354, 1829.495486, 1831.083874, 1832.901235, 1834.553371,
1836.19862, 1837.754796, 1839.291447, 1840.940053, 1842.588251,
1844.304211, 1845.832641, 1847.455655, 1848.890278, 1850.363349,
1851.768116, 1853.20816, 1854.780594, 1856.41732, 1857.992287,
1859.496168, 1861.014546, 1862.588633, 1864.052801, 1865.682258,
1867.332324, 1868.928318, 1870.496911, 1871.957182, 1873.477532,
1875.018451, 1876.678698, 1878.315847, 1879.882682, 1881.388598,
1882.846858, 1884.291378, 1885.743881, 1887.241131, 1888.564247,
1890.070431, 1891.39115, 1892.665267, 1893.850056, 1895.131998,
1896.392988, 1897.712892, 1899.043681, 1900.257178, 1901.467152,
1902.666816, 1903.872949, 1905.094606, 1906.344748, 1907.670942,
1908.963841, 1910.182558, 1911.442594, 1912.699588, 1914.055497,
1915.378803, 1916.847055, 1918.121266, 1919.388446, 1920.658823,
1921.954494, 1923.182034, 1924.52994, 1925.756313, 1926.9195,
1928.183374, 1929.390734, 1930.468215, 1931.613638, 1932.811333,
1933.956674, 1935.083563, 1936.094193, 1937.146568, 1938.097524,
1939.133879, 1940.191244, 1941.266231, 1942.395255, 1943.536303,
1944.625599, 1945.807483, 1946.976349, 1948.23384, 1949.467243,
1950.789394, 1952.072652, 1953.193346, 1954.533898, 1955.835956,
1957.095555, 1958.337401, 1959.588729, 1960.705211, 1961.880867,
1962.940155, 1964.109688, 1965.267875, 1966.33494, 1967.432935,
1968.377021, 1969.4206, 1970.413201, 1971.512269, 1972.649377,
1973.726413, 1974.808854, 1975.895989, 1977.043123, 1978.157038,
1979.210513, 1980.344019, 1981.363123, 1982.460554, 1983.588788,
1984.703296, 1985.756032, 1986.979204, 1988.202853, 1989.392291,
1990.53944, 1991.668943, 1992.743234, 1993.763261, 1994.849328,
1995.941137, 1997.060964, 1998.055055, 1999.062206, 2000.058294,
2001.085915, 2002.112686, 2003.148157, 2004.220921, 2005.213965,
2006.199354, 2007.193265, 2008.097689, 2009.18287, 2010.263105,
2011.289517, 2012.29533, 2013.374441, 2014.414378, 2015.532926,
2016.612376, 2017.699906, 2018.78173, 2019.793475, 2020.86628,
2021.82259, 2022.779732, 2023.720419, 2024.726128, 2025.769499,
2026.588959, 2027.527135, 2028.360566, 2029.186272, 2030.108328,
2031.009647, 2031.845284, 2032.702852, 2033.499841, 2034.366214,
2035.129436, 2035.97315, 2036.954232, 2037.841308, 2038.599598,
2039.433289, 2040.194893, 2040.982037, 2041.829719, 2042.736004,
2043.708097, 2044.591034, 2045.417719, 2046.171035, 2047.020962,
2047.861129, 2048.771176, 2049.610206, 2050.415006, 2051.206384,
2051.91939, 2052.661776, 2053.416051, 2054.143987, 2054.944003,
2055.665503, 2056.382868, 2057.101225, 2057.746514, 2058.390645,
2059.14009, 2059.901556, 2060.655685, 2061.348192, 2062.016618,
2062.703635, 2063.459766, 2064.170619, 2065.028039, 2065.739219,
2066.46064, 2067.155939, 2067.95052, 2068.759063, 2069.580089,
2070.320339, 2071.087929, 2071.879018, 2072.596424, 2073.275462,
2074.004092, 2074.735455, 2075.417659, 2076.112459, 2076.726591,
2077.491649, 2078.211092, 2078.877653, 2079.658134, 2080.334735,
2080.900122, 2081.612223, 2082.188123, 2082.842574, 2083.512981,
2084.16379, 2084.882462, 2085.589718, 2086.296668, 2086.968431,
2087.662409, 2088.376486, 2089.091666, 2089.837666, 2090.573526,
2091.300063, 2091.944606, 2092.684779, 2093.444628, 2094.250776,
2094.937853, 2095.691648, 2096.373772, 2097.052356, 2097.819015,
2098.454447, 2099.148136, 2099.804163, 2100.474076, 2101.083332,
2101.710105, 2102.374124, 2103.007984, 2103.701434, 2104.386384,
2105.103455, 2105.738529, 2106.329921, 2106.976084, 2107.649693,
2108.374716, 2109.083112, 2109.740453, 2110.413842, 2111.043085,
2111.811259, 2112.514298, 2113.186637, 2113.848428, 2114.541891,
2115.278173, 2115.904512, 2116.545973, 2117.164639, 2117.787811,
2118.424383, 2119.028871)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -724L))
help("SSasympOrig")
$\endgroup$