このトピックに関する他のスレッドを検索してみましたが、どの修正も機能していません。自然実験の結果があり、イベントの連続発生回数が指数分布に適合することを示したいと考えています。私のRシェルは以下に貼り付けられています
f <- function(x,a,b) {a * exp(b * x)}
> x
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
[26] 26 27
> y
[1] 1880 813 376 161 100 61 31 9 8 2 7 4 3 2 0
[16] 1 0 0 0 0 0 1 0 0 0 0 1
> dat2
x y
1 1 1880
2 2 813
3 3 376
4 4 161
5 5 100
6 6 61
7 7 31
8 8 9
9 9 8
10 10 2
11 11 7
12 12 4
13 13 3
14 14 2
> fm <- nls(y ~ f(x,a,b), data = dat2, start = c(a=1, b=1))
Error in numericDeriv(form[[3L]], names(ind), env) :
Missing value or an infinity produced when evaluating the model
> fm <- nls(y ~ f(x,a,b), data = dat2, start = c(a=7, b=-.5))
Error in nls(y ~ f(x, a, b), data = dat2, start = c(a = 7, b = -0.5)) :
singular gradient
> fm <- nls(y ~ f(x,a,b), data = dat2, start = c(a=7,b=-.5),control=nls.control(maxiter=1000,warnOnly=TRUE,minFactor=1e-5,tol=1e-10),trace=TRUE)
4355798 : 7.0 -0.5
Warning message:
In nls(y ~ f(x, a, b), data = dat2, start = c(a = 7, b = -0.5), :
singular gradient
書式設定が悪いことをお許しください。最初の投稿はこちらです。x にはヒストグラムのビンが含まれ、y にはそのヒストグラム内の各ビンの出現回数が含まれます。dat2 は 14 で途切れます。なぜなら、0 カウントのビンは指数関数的回帰を放棄するからです。実際には最初の 14 だけを適合させる必要があります。14 を超えるカウントを持つビンは、それらが特別であると信じる生物学的理由があります。私が最初に得た問題は無限大でしたが、値が 0 ではないため得られませんでした。ここの別の投稿で示唆されているように適切な開始値を指定すると、特異な勾配エラーが発生します。私が見た唯一の他の投稿には、より多くの変数があり、反復回数を増やしてみましたが、成功しませんでした。どんな助けでも大歓迎です。あ