#df <- read.csv("unemployment.csv")
df<-scan("https://www.r-exercises.com/wp-content/uploads/2017/04/unemployment.csv", skip=1)
df<-data.frame(desempleos=df)
unempl <- ts(df, start = c(2012, 1), frequency = 12)
plot(unempl)
# Exercise 2 #
#vecsito --> require(quadprog)
#necesito --> require(quantmod)
library(forecast)
fcast_ses <- ses(unempl, h = 12)
plot(fcast_ses)
Debemos de entender qué es lo que hace el comando .
Es un suavizado exponencial simple, y como puedes ver la predicciĂłn que nos devuelve es exesivamente bĂĄsica, sĂłlo sirve para series temporales sin tendencia ni estacionalidad.
# Exercise 3 #
fit_ets_default <- ets(unempl)
fcast_ets_default <- forecast(fit_ets_default, h = 12)
plot(fcast_ets_default)
El es un comando que realiza un âExponential smoothing state space modelâ, es decir aquĂ ya va a tener en cuenta la Tendencia âExponential Trend Smoothingâ.
summary(fit_ets_default)
ETS(M,A,M)
Call:
ets(y = unempl)
Smoothing parameters:
alpha = 0.5717
beta = 1e-04
gamma = 1e-04
Initial states:
l = 8.4353
b = -0.0564
s=0.9567 0.9453 0.957 0.9669 1.0245 1.0591
1.0365 0.9642 0.9403 1.0224 1.0542 1.0729
sigma: 0.021
AIC AICc BIC
37.38299 50.98299 73.81628
Training set error measures:
ME RMSE MAE MPE MAPE MASE
Training set -0.009791689 0.1271141 0.102154 -0.1209349 1.687472 0.1322298
ACF1
Training set 0.08649403
En esta salida podemos observar lso valores de alpha, beta , gamma que nos indicarĂĄ el tipo de modelo que ha estimado. En nuestro caso beta y gamma son equivalentes a cero. el valor de \(\alpha\) nos indica segĂșn la formula la relaciĂłn con el valor anterior de la serie.
La formula que estima estos valores la podeis encopntrar aquĂ:
Yhat[t+h] = a[t] + h * b[t] + s[t - p + 1 + (h - 1) mod p],
where a[t], b[t] and s[t] are given by
a[t] = α (Y[t] - s[t-p]) + (1-α) (a[t-1] + b[t-1])
b[t] = ÎČ (a[t] - a[t-1]) + (1-ÎČ) b[t-1]
s[t] = Îł (Y[t] - a[t]) + (1-Îł) s[t-p]
Con TENDENCIA
## Con TENDENCIA ##
fit_ets_damped_trend <- ets(unempl, damped = TRUE)
fcast_ets_damped_trend <- forecast(fit_ets_damped_trend, h = 12)
plot(fcast_ets_damped_trend)
Sin TENDENCIA
## SIN TENDENCIA ##
fit_ets_no_trend <- ets(unempl, model = "ZNZ")
fcast_ets_no_trend <- forecast(fit_ets_no_trend, h = 12)
plot(fcast_ets_no_trend)
Con este Ășltimo ejercicio podemos ver la diferencia entre estimar con y sin tendencia. Debemos decidir por cual nos quedamos.