Une loi exponentielle (négative) prend la forme . Cependant, lorsque vous autorisez des changements d'unités dans les valeurs x et y , dites y = α y ′ + β et x = γ x ′ + δ , alors la loi sera exprimée commey= - exp( - x )Xyy= α y′+ βx = γX′+ δ
α y′+ β=y=−exp(−x)=−exp(−γx′−δ),
qui est algébriquement équivalent à
y′=−1αexp(−γx′−δ)−β=a(1−uexp(−bx′))
en utilisant trois paramètres , u = 1 / ( β exp ( δ ) ) et b = γ . Nous pouvons reconnaître a comme paramètre d'échelle pour y , b comme paramètre d'échelle pour x et ua=−β/αu=1/(βexp(δ))b = γuneybXu comme dérivant d'un paramètre d' emplacement pour .X
En règle générale, ces paramètres peuvent être identifiés en un coup d'œil à partir de l'intrigue :
Le paramètre une est la valeur de l'asymptote horizontale, un peu inférieure à .2000
Le paramètre est la valeur relative de la montée de la courbe depuis l'origine jusqu'à son asymptote horizontale. Ici, la hausse est donc un peu inférieure à 2000 - 937u2000−937 ; relativement, cela représente environ de l'asymptote.0.55
Parce que , lorsque x est égal à trois fois la valeur de 1 / b, la courbe aurait dû monter à environ 1 - 0,05 ou 95 % de son total. 95 % de l'augmentation de 937 à près de 2000 nous situe vers 1950 ; le balayage à travers le tracé indique que cela a pris 20 à 25 jours. L'appel de Let it 24 pour plus de simplicité, d' où b ≈ 3 / 24exp(−3)≈0.05x1/b1−0.0595%95%93720001950202524 . (Cetteméthode à 95 % pour observer une échelle exponentielle est standard dans certains domaines qui utilisent beaucoup les tracés exponentiels.)b≈3/24=0.12595%
Voyons à quoi cela ressemble:
plot(Days, Emissions)
curve((y = 2000 * (1 - 0.56 * exp(-0.125*x))), add = T)
Pas mal pour un début! (Même en tapant 0.56
à la place de 0.55
, ce qui était de toute façon une approximation grossière.) Nous pouvons le polir avec 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)
La sortie de nls
contient des informations détaillées sur l'incertitude des paramètres. Par exemple , un simple summary
fournit des erreurs standard d'estimations:
> 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 ***
Nous pouvons lire et travailler avec toute la matrice de covariance des estimations, ce qui est utile pour estimer les intervalles de confiance simultanés (au moins pour les grands ensembles de données):
> 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
prend en charge les tracés de profil pour les paramètres, donnant des informations plus détaillées sur leur incertitude:
> plot(profile(fit))
a
219451995