Ich habe einige grundlegende Daten zur Emissionsreduzierung und zu den Kosten pro Auto:
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 = "")
Ich weiß, dass dies eine Exponentialfunktion ist, daher erwarte ich, ein Modell finden zu können, das zu Folgendem passt:
model <- nls(cost.per.car ~ a * exp(b * reductions) + c,
data = q24,
start = list(a=1, b=1, c=0))
aber ich erhalte eine Fehlermeldung:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
Ich habe eine Menge Fragen zu dem Fehler durchgelesen, den ich sehe, und ich stelle fest , dass das Problem wahrscheinlich darin besteht, dass ich bessere / andere start
Werte brauche (das initial parameter estimates
macht ein bisschen mehr Sinn), aber ich bin mir angesichts der Tatsache nicht sicher, ob das so ist Daten, die ich habe, wie ich vorgehen würde, um bessere Parameter abzuschätzen.
exp(50)
und exp(95)
mit den y-Werten bei x = 50 und x = 95. Wenn Sie c=0
y setzen und protokollieren (eine lineare Beziehung erstellen ), können Sie mithilfe der Regression anfängliche Schätzungen für log ( ) und b abrufen, die für Ihre Daten ausreichen (oder wenn Sie eine Linie durch den Ursprung ziehen, können Sie diese verlassen a bei 1 und verwende einfach die Schätzung für b ; das reicht auch für deine Daten). Wenn b außerhalb eines relativ engen Intervalls um diese beiden Werte liegt, treten einige Probleme auf. [Alternativ versuchen Sie es mit einem anderen Algorithmus]