0
我有氣候壓力值和測量壓力站的高度的數據。我想爲他們擬合一個指數模型。數據是這樣的:R:我的數據集的函數「nls」出錯
x
[1] 539 575 1320 438 1840 496 316 552 325 386 1599 1073 556 1029 1661
[16] 2472 1594 1197 910 1035 596 646 420 516 1980 1045 2287 440 419 1611
[31] 577 3580 484 1018 1669 745 1974 366 273 454 203 588 1427 405 1403
[46] 485 490 2106 990 3305 1078 455 300 1638 1708 438 1303 482 775 2502
[61] 457 2690 422 1638 555 426
y
[1] 954.1 951.4 867.2 964.0 813.3 958.8 979.7 950.8 978.4 971.3 835.1 894.1
[13] 952.0 904.4 833.3 751.5 839.0 882.5 912.0 899.4 947.1 942.3 968.5 961.9
[25] 801.3 893.6 769.8 965.6 965.1 836.9 949.2 653.6 959.8 900.2 830.6 928.6
[37] 800.3 971.1 983.5 963.4 992.6 947.5 848.3 969.4 858.2 959.9 959.3 787.2
[49] 900.4 677.6 893.2 962.7 981.5 834.9 827.0 966.0 870.1 961.1 925.2 749.3
[61] 962.8 734.0 968.0 836.3 950.4 966.5
我也第一次嘗試只是爲了取數據的對數和適合的lm
他們:
log.p=log(y)
log.height=log(x)
lmlog=lm(log.p~log.height)
但因爲這傳遞不適合在所有的模型,我決定使用nls
功能已經從其他職位採取了各種提示(如「啓動」):
f <- function(x,a,b) {a* exp(b * x)}
dat <- as.list(x, y)
start <- coef(nls(log(y) ~ log(f(x, a, b)), dat, start = c(a = 1, b = -1)))
nls=nls(y~ f(x,a,b), data=dat, start=start)
不幸的是,即使是「開始」,在弗洛翼錯誤出現,我真的不知道該怎麼辦了...
Error in numericDeriv(form[[3L]], names(ind), env) :
Missing value or an infinity produced when evaluating the model
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
任何人都可以幫忙嗎? 在此先感謝!
非常感謝您的幫助,甚至徹底糾正了我的「愚蠢」錯誤! ;-) 由於數據來自大氣下部,因此線性和非線性擬合的緊密程度是可以預期的,而這正是我想要觀察的結果! – user3017048