Una ley exponencial (negativa) toma la forma . Sin embargo, cuando permite cambios de unidades en los valores x e y , digamos y = α y ′ + β y x = γ x ′ + δ , entonces la ley se expresará comoy=−exp(−x)xyy= α y′+ βx = γX′+ δ
α y′+ β=y=−exp(−x)=−exp(−γx′−δ),
que algebraicamente es equivalente a
y′=−1αexp(−γx′−δ)−β=a(1−uexp(−bx′))
utilizando tres parámetros , u = 1 / ( β exp ( δ ) ) , y b = γ . Podemos reconocer a como un parámetro de escala para y , b como un parámetro de escala para x , y u como derivado de un parámetro de ubicación para x .a=−β/αu=1/(βexp(δ))b=γaybxux
Como regla general, estos parámetros se pueden identificar de un vistazo desde la gráfica :
El parámetro es el valor de la asíntota horizontal, un poco menos de 2000 .a2000
El parámetro es la cantidad relativa que la curva sube desde el origen hasta su asíntota horizontal. Aquí, el aumento, por lo tanto, es un poco menor que 2000 - 937 ; relativamente, eso es aproximadamente 0,55 de la asíntota.u2000−9370.55
Debido a que , cuando x es igual a tres veces el valor de 1 / b, la curva debería haber aumentado a aproximadamente 1 - 0.05 o 95 % de su total. El 95 % del aumento de 937 a casi 2000 nos sitúa alrededor de 1950 ; El escaneo a través de la trama indica que esto tomó de 20 a 25 días. La llamada de Hagámosle 24 por simplicidad, de donde b ≈ 3 / 24exp(−3)≈0.05x1/b1−0.0595%95%93720001950202524 . (Este 95 %b≈3/24=0.12595% método del para observar una escala exponencial es estándar en algunos campos que utilizan mucho las parcelas exponenciales).
Veamos cómo se ve esto:
plot(Days, Emissions)
curve((y = 2000 * (1 - 0.56 * exp(-0.125*x))), add = T)
¡No está mal para empezar! (Incluso a pesar de escribir 0.56
en lugar de 0.55
, lo cual fue una aproximación cruda de todos modos). Podemos pulirlo 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)
La salida de nls
contiene información extensa sobre la incertidumbre de los parámetros. Por ejemplo , un simple summary
proporciona errores estándar de estimaciones:
> 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 ***
Podemos leer y trabajar con toda la matriz de covarianza de las estimaciones, que es útil para estimar intervalos de confianza simultáneos (al menos para grandes conjuntos de datos):
> 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
admite gráficos de perfil para los parámetros, brindando información más detallada sobre su incertidumbre:
> plot(profile(fit))
a :
219451995