library(foreign)
base = read.csv(file.choose())
class(base)
## [1] "data.frame"
Base de datos del precio del petróleo crudo, fijado por la Organización de países exportadores de petróleo (OPEP).
Se tienen registros a partir del mes de Agosto de 1993, en una frecuencia mensual.
Dólares americanos
PPDP <- ts(base$Precios, frequency = 12, start = c(1993,8))
class(PPDP)
## [1] "ts"
library(forecast)
plot(PPDP, col = "red", main = "Precios del Barril Petróleo", ylab = "Dólares", xlab ="Tiempo", lwd=2, type="l", pch=10)
library(fpp2)
## Loading required package: ggplot2
## Loading required package: fma
## Loading required package: expsmooth
library(TSA)
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
data(PPDP)
## Warning in data(PPDP): data set 'PPDP' not found
autoplot(PPDP) + ggtitle("Precios del barril de petróleo")
mes.<-season(PPDP)
MOD1<-lm(PPDP~mes.)
summary(MOD1)
##
## Call:
## lm(formula = PPDP ~ mes.)
##
## Residuals:
## Min 1Q Median 3Q Max
## -40.824 -28.814 -6.085 21.624 79.306
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 48.2132 6.5882 7.318 2.55e-12 ***
## mes.February 1.0504 9.3171 0.113 0.910
## mes.March 2.7736 9.3171 0.298 0.766
## mes.April 4.3984 9.3171 0.472 0.637
## mes.May 5.1600 9.3171 0.554 0.580
## mes.June 4.7035 9.4137 0.500 0.618
## mes.July 5.3106 9.4137 0.564 0.573
## mes.August 3.6192 9.3171 0.388 0.698
## mes.September 3.0296 9.3171 0.325 0.745
## mes.October 2.0276 9.3171 0.218 0.828
## mes.November 0.9236 9.3171 0.099 0.921
## mes.December -0.2304 9.3171 -0.025 0.980
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 32.94 on 286 degrees of freedom
## Multiple R-squared: 0.003412, Adjusted R-squared: -0.03492
## F-statistic: 0.089 on 11 and 286 DF, p-value: 1
La regresión muestra que los meses no muestran una representación estadistica significativa a pesar de que el modelo presenta estacionalidad. La R cuadrada nos muestra que el modelo no reprenta la relidad, por lo que se concluye que los meses no tienen gran importancia en el movimiento de los precios del petróleo.
mes.<-season(PPDP)
MOD2<-lm(PPDP~mes.+time(PPDP)+I(time(PPDP)^2))
summary(MOD2)
##
## Call:
## lm(formula = PPDP ~ mes. + time(PPDP) + I(time(PPDP)^2))
##
## Residuals:
## Min 1Q Median 3Q Max
## -42.45 -16.08 -2.77 15.13 63.78
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.203e+05 1.074e+05 -6.709 1.06e-10 ***
## mes.February 7.805e-01 5.984e+00 0.130 0.896
## mes.March 2.236e+00 5.984e+00 0.374 0.709
## mes.April 3.596e+00 5.984e+00 0.601 0.548
## mes.May 4.095e+00 5.985e+00 0.684 0.494
## mes.June 4.251e+00 6.047e+00 0.703 0.483
## mes.July 4.586e+00 6.047e+00 0.758 0.449
## mes.August 5.006e+00 5.985e+00 0.836 0.404
## mes.September 4.134e+00 5.985e+00 0.691 0.490
## mes.October 2.852e+00 5.984e+00 0.477 0.634
## mes.November 1.471e+00 5.984e+00 0.246 0.806
## mes.December 4.195e-02 5.984e+00 0.007 0.994
## time(PPDP) 7.149e+02 1.070e+02 6.679 1.26e-10 ***
## I(time(PPDP)^2) -1.774e-01 2.668e-02 -6.649 1.51e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 21.16 on 284 degrees of freedom
## Multiple R-squared: 0.5917, Adjusted R-squared: 0.5731
## F-statistic: 31.66 on 13 and 284 DF, p-value: < 2.2e-16
Al igual que en el modelo anterior se puede observar que los meses no son representativos en los precios del petróleo, y en si el modelo en general no es significativo al tener una R cuadrada de 0.5917. Aunque es mas representativo que el modelo anterior
GRÁFICO DE LOS RESIDUOS
plot(y=rstandard(MOD1), x=time(PPDP), type="o")
plot(y=rstandard(MOD2), x=time(PPDP), type="o")
CUANTIL-CUANTIL
qqnorm(rstandard(MOD1));qqline(rstandard(MOD1), col = "red")
qqnorm(rstandard(MOD2));qqline(rstandard(MOD2), col = "green")
x<-rnorm(100)
y<-rexp(100)
par (mfrow= c (1, 2))
qqnorm (x); qqline(x, col= "red")
qqnorm (y); qqline (y, col= "green")
HISTOGRAMA
hist(rstandard(MOD1))
hist(rstandard(MOD2))
CORRELOGRAMA
ggAcf(rstandard(MOD1))
ggAcf(rstandard(MOD2))
shapiro.test(rstandard(MOD1))
##
## Shapiro-Wilk normality test
##
## data: rstandard(MOD1)
## W = 0.90156, p-value = 5.12e-13
shapiro.test(rstandard(MOD2))
##
## Shapiro-Wilk normality test
##
## data: rstandard(MOD2)
## W = 0.96925, p-value = 5.491e-06