Una legge esponenziale (negativa) assume la forma . Quando si consentono cambiamenti di unità nei valori x e y , tuttavia, dire a y = α y ′ + β e x = γ x ′ + δ , quindi la legge sarà espressa comey= - exp( - x )Xyy= α y'+ βx = γX'+ δ
α y'+ β= y= - exp( - x ) = - exp( - γX'- δ) ,
algebricamente equivalente
y'= - 1αexp( - γX'- δ) - β= a ( 1 - u exp(−bx′))
usando tre parametri , u = 1 / ( β exp ( δ ) ) e b = γ . Possiamo riconoscere una come parametro di scala per y , b come un parametro di scala per x , ed u come derivanti da una posizione parametro xa=−β/αu=1/(βexp(δ))b=γaybxux .
Come regola generale, questi parametri possono essere identificati a colpo d'occhio dalla trama :
Il parametro è il valore dell'asintoto orizzontale, un po 'meno di 2000 .a2000
Il parametro è la quantità relativa che la curva sale dall'origine al suo asintoto orizzontale. Qui, l'aumento è quindi leggermente inferiore a 2000 - 937 ; relativamente, questo è circa 0,55 dell'asintoto.u2000−9370.55
Poiché , quando x è pari a tre volte il valore di 1 / b la curva dovrebbe essere salita a circa 1 - 0,05 o al 95 % del suo totale. Il 95 % dell'aumento dal 937 a quasi 2000 ci colloca intorno al 1950 ; la scansione della trama indica che sono stati necessari dai 20 ai 25 giorni. Chiamiamolo 24 per semplicità, da cui b ≈ 3 / =exp(−3)≈0.05x1/b1−0.0595%95%93720001950202524 . (Questometodo al 95 % per il bulbo oculare di una scala esponenziale è standard in alcuni campi che usano molto i grafici esponenziali.)b≈3/24=0.12595%
Vediamo come appare:
plot(Days, Emissions)
curve((y = 2000 * (1 - 0.56 * exp(-0.125*x))), add = T)
Non male come inizio! (Anche se si digita 0.56
al posto di 0.55
, che era comunque un'approssimazione approssimativa.) Possiamo lucidarlo con nls
:
fit <- nls(Emissions ~ a * (1- u * exp(-b*Days)), start=list(a=2000, b=1/8, u=0.55))
beta <- coefficients(fit)
plot(Days, Emissions)
curve((y = beta["a"] * (1 - beta["u"] * exp(-beta["b"]*x))), add = T, col="Green", lwd=2)
L'output di nls
contiene informazioni dettagliate sull'incertezza dei parametri. Ad esempio , un semplice summary
fornisce errori standard di stima:
> summary(fit)
Parameters:
Estimate Std. Error t value Pr(>|t|)
a 1.969e+03 1.317e+01 149.51 2.54e-10 ***
b 1.603e-01 1.022e-02 15.69 1.91e-05 ***
u 6.091e-01 1.613e-02 37.75 2.46e-07 ***
Possiamo leggere e lavorare con l'intera matrice di covarianza delle stime, utile per stimare intervalli di confidenza simultanei (almeno per grandi set di dati):
> vcov(fit)
a b u
a 173.38613624 -8.720531e-02 -2.602935e-02
b -0.08720531 1.044004e-04 9.442374e-05
u -0.02602935 9.442374e-05 2.603217e-04
nls
supporta grafici di profilo per i parametri, fornendo informazioni più dettagliate sulla loro incertezza:
> plot(profile(fit))
un'
219451995