排出削減と車あたりのコストに関するいくつかの基本的なデータがあります。
q24 <- read.table(text = "reductions cost.per.car
50 45
55 55
60 62
65 70
70 80
75 90
80 100
85 200
90 375
95 600
",header = TRUE, sep = "")
これは指数関数であることを知っているので、以下に適合するモデルを見つけることができると期待しています。
model <- nls(cost.per.car ~ a * exp(b * reductions) + c,
data = q24,
start = list(a=1, b=1, c=0))
しかし、私はエラーが発生しています:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
私は私が見ているエラーに関するたくさんの質問を読んでおり、問題はおそらくより良い/異なるstart
値が必要であることを収集しています(initial parameter estimates
もう少し理にかなっています)が、私が持っているデータ、より良いパラメータを推定する方法。
exp(50)
と比較しexp(95)
ます。c=0
yの対数を設定して取得する場合(線形関係を作成する場合)、回帰を使用して、データに十分なlog()および初期推定値を取得できます(または、原点を通る直線を当てはめる場合は、そのままにしておくことができます)を1に設定し、の推定値を使用するだけで、データにも十分です)。場合、これら二つの値の周りのかなり狭い間隔ずっと外で、あなたはいくつかの問題に実行されます。[別のアルゴリズムを試す]b a b b