library(forecast)
## Warning: package 'forecast' was built under R version 4.3.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(TSA)
## Warning: package 'TSA' was built under R version 4.3.3
## Registered S3 methods overwritten by 'TSA':
## method from
## fitted.Arima forecast
## plot.Arima forecast
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
library(tseries)
## Warning: package 'tseries' was built under R version 4.3.3
library(urca)
## Warning: package 'urca' was built under R version 4.3.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
install.packages("dplyr")
## Warning: package 'dplyr' is in use and will not be installed
library(stats)
library(seasonal)
## Warning: package 'seasonal' was built under R version 4.3.3
##IMPORTAR DATOS
library(readxl)
library(readr)
##
## Attaching package: 'readr'
## The following object is masked from 'package:TSA':
##
## spec
Evolucion_salario_promedio_mensual_en_Durangodiferenciando_trabajadores_formales_e_informales <- read_csv("C:/Users/CITY CLUB 1019/Desktop/UNI/8VO/CLASE R1/PARCIAL 2/R MARKDOWN/Evolucion-salario-promedio-mensual-en-Durangodiferenciando-trabajadores-formales-e-informales.csv")
## Rows: 54 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Quarter
## dbl (2): Monthly Wage, Workforce
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(Evolucion_salario_promedio_mensual_en_Durangodiferenciando_trabajadores_formales_e_informales)
View(Evolucion_salario_promedio_mensual_en_Durangodiferenciando_trabajadores_formales_e_informales)
##DAR FORMA A LA SERIE
formalts=ts(Evolucion_salario_promedio_mensual_en_Durangodiferenciando_trabajadores_formales_e_informales$`Monthly Wage`,freq=4,start=c(2010,1))
plot(formalts, xlab= "Tiempo", ylab = "Salario", main = "Salario FOrmal en Durango")
autoplot(formalts, xlab= "Tiempo", ylab = "Salario", main = "Salario Formal en Durango")
descompsal = decompose(formalts)
plot(descompsal)
par(mfrow = c(2, 2))
plot(descompsal$x, main = "Original", col = "black")
plot(descompsal$trend, main = "Tendencia", col = "green")
plot(descompsal$seasonal, main = "Estacionalidad", col = "red")
plot(descompsal$random, main = "Irregular", col = "red")
###Estacionalidad
salario_esta =seasadj(descompsal)
par(mfrow = c(1, 1))
plot(salario_esta)
lines(salario_esta, col = "red")
Ahora se hará un analisis de razís unitaria.
##Análisis de estacionariedad
#Prueba de Dickey- Fuller aumentada
tests = adf.test(formalts)
print(tests)
##
## Augmented Dickey-Fuller Test
##
## data: formalts
## Dickey-Fuller = -1.2734, Lag order = 3, p-value = 0.8671
## alternative hypothesis: stationary
## Se debe diferencias la serie
primdiferenciasal = diff(formalts)
## Prueba de Dickey- Fuller aumentada para la primera diferencia
test2 = adf.test(primdiferenciasal)
print(test2)
##
## Augmented Dickey-Fuller Test
##
## data: primdiferenciasal
## Dickey-Fuller = -3.851, Lag order = 3, p-value = 0.02268
## alternative hypothesis: stationary
plot(primdiferenciasal)
Ahora, según la metdología de Box-Jenkins se debe observar los
correlogramas
##1 . Análisis de los correlogramas
"El valor de q se observa en el correlograma total"
## [1] "El valor de q se observa en el correlograma total"
## [1] "El valor de q se observa en el correlograma total"
acf(primdiferenciasal)
"El valor de p se observa en el correlograma parcial"
## [1] "El valor de p se observa en el correlograma parcial"
## [1] "El valor de p se observa en el correlograma parcial"
pacf(primdiferenciasal)
El modelo es un ARIMA de orden (p,d,q) donde según lo observado debería
ser uno del tipo (1,2,1). Sin embargo, la función auto.arima de la
librería forecast le permite tener el mejor modelo ARIMA:
ARIMA_FINAL = auto.arima(formalts)
summary(ARIMA_FINAL)
## Series: formalts
## ARIMA(0,1,0)(1,0,1)[4]
##
## Coefficients:
## sar1 sma1
## 0.9095 -0.7024
## s.e. 0.0939 0.1624
##
## sigma^2 = 57825: log likelihood = -365.56
## AIC=737.12 AICc=737.61 BIC=743.03
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 43.72253 233.6922 189.9013 0.5762376 3.078105 0.5144742 -0.1739332
```