######################################################
# Stat 6721 - Assignment 3
#
# Sarah Rathwell 
#
# Objective - Investigate Merck and Pfizer for 2014 
#             and trade on 2015 - Model selection.
######################################################
rm(list=ls())
library(quantmod)
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: TTR
## Version 0.4-0 included new data defaults. See ?getSymbols.
######################################################
cat(" Third look - Merk vs Pfizer.\n\n",
    "Last modification:",date(),'\n')
##  Third look - Merk vs Pfizer.
## 
##  Last modification: Fri Nov 18 11:43:50 2016
######################################################



MERK <- getSymbols('MRK', from = '2010-01-01',to = '2014-12-31', 
                   adjust = T, auto.assign = FALSE)
##     As of 0.4-0, 'getSymbols' uses env=parent.frame() and
##  auto.assign=TRUE by default.
## 
##  This  behavior  will be  phased out in 0.5-0  when the call  will
##  default to use auto.assign=FALSE. getOption("getSymbols.env") and 
##  getOptions("getSymbols.auto.assign") are now checked for alternate defaults
## 
##  This message is shown once per session and may be disabled by setting 
##  options("getSymbols.warning4.0"=FALSE). See ?getSymbols for more details.
PFE <- getSymbols('PFE', from = '2010-01-01',to = '2014-12-31', 
                  adjust = T, auto.assign = FALSE)
head(MERK)
##            MRK.Open MRK.High  MRK.Low MRK.Close MRK.Volume MRK.Adjusted
## 2010-01-04 30.24979 30.60306 30.02797  30.40589   13896500     28.72234
## 2010-01-05 30.64414 30.76738 30.34016  30.52912   14744800     28.83875
## 2010-01-06 30.57020 30.99741 30.31552  30.93990   15239900     29.22679
## 2010-01-07 30.78381 31.13708 30.72630  30.98920   11916600     29.27335
## 2010-01-08 31.11243 31.12886 30.75094  30.97277   10767100     29.25783
## 2010-01-11 31.12065 31.15351 30.80845  31.09600    9581800     29.37424
head(PFE)
##            PFE.Open PFE.High  PFE.Low PFE.Close PFE.Volume PFE.Adjusted
## 2010-01-04 15.13582 15.69088 15.11097  15.68260   52086000     14.62283
## 2010-01-05 15.67431 15.68260 15.36778  15.45892   43372800     14.41426
## 2010-01-06 15.45892 15.58318 15.33465  15.40921   41405100     14.36792
## 2010-01-07 15.44235 15.46720 15.29322  15.35122   39428000     14.31384
## 2010-01-08 15.42578 15.50034 15.34293  15.47548   30407700     14.42971
## 2010-01-11 15.59975 15.69917 15.46720  15.59975   32447500     14.54558
MRK.a <- MERK[,6]
PFE.a <- PFE[,6]

MRK.ld <- diff(log(MRK.a))
MRK.ld <- MRK.ld[-1,]
PFE.ld <- diff(log(PFE.a))
PFE.ld <- PFE.ld[-1,]

par(mfrow=c(1,2),oma = c(0, 0, 2, 0))

acf(MRK.ld, main="")
pacf(MRK.ld, main="")
mtext('Correlation Functions: MRK', outer = TRUE, cex = 1.5)

acf(PFE.ld, main="")
pacf(PFE.ld, main="")
mtext('Correlation Functions: PFE', outer = TRUE, cex = 1.5)

######################################################

tsdiag.new <- function (object, gof.lag = 10, ...) 
{
  
  rs <- object$residuals
  stdres <- rs/sqrt(object$sigma2)
  nlag <- gof.lag
  pval <- numeric(nlag)
  for (i in 1:nlag) pval[i] <- Box.test(rs, i, type = "Ljung-Box")$p.value
  plot(1:nlag, pval, xlab = "lag", ylab = "p value", ylim = c(0, 1), 
       main = "p values for Ljung-Box statistic", sub = object$call$order)
  abline(h = 0.05, lty = 2, col = "blue")
}


par(mfrow=c(1,1), oma=c(0,0,0,0))

PFE.arma11 <- arima(PFE.ld, order=c(1,0,1))
PFE.arma11$code
## [1] 0
PFE.arma11
## 
## Call:
## arima(x = PFE.ld, order = c(1, 0, 1))
## 
## Coefficients:
##           ar1      ma1  intercept
##       -0.0335  -0.0294      5e-04
## s.e.   0.4447   0.4427      3e-04
## 
## sigma^2 estimated as 0.0001357:  log likelihood = 3813.2,  aic = -7618.4
tsdiag.new(PFE.arma11)

PFE.arma10 <- arima(PFE.ld, order=c(1,0,0))
PFE.arma10$code
## [1] 0
PFE.arma10
## 
## Call:
## arima(x = PFE.ld, order = c(1, 0, 0))
## 
## Coefficients:
##           ar1  intercept
##       -0.0630      5e-04
## s.e.   0.0282      3e-04
## 
## sigma^2 estimated as 0.0001357:  log likelihood = 3813.21,  aic = -7620.41
tsdiag.new(PFE.arma10)

PFE.arma01 <- arima(PFE.ld, order=c(0,0,1))
PFE.arma01$code
## [1] 0
PFE.arma01
## 
## Call:
## arima(x = PFE.ld, order = c(0, 0, 1))
## 
## Coefficients:
##           ma1  intercept
##       -0.0624      5e-04
## s.e.   0.0280      3e-04
## 
## sigma^2 estimated as 0.0001357:  log likelihood = 3813.18,  aic = -7620.37
tsdiag.new(PFE.arma01)

# no 
PFE.arma00 <- arima(PFE.ld, order=c(0,0,0))
PFE.arma00$code
## [1] 0
PFE.arma00
## 
## Call:
## arima(x = PFE.ld, order = c(0, 0, 0))
## 
## Coefficients:
##       intercept
##           5e-04
## s.e.      3e-04
## 
## sigma^2 estimated as 0.0001362:  log likelihood = 3810.71,  aic = -7617.42
tsdiag.new(PFE.arma00)

# no 

PFE.armalist <- list(PFE.arma11, PFE.arma10, PFE.arma01)
# lowest are 01, 10
# --> 1 parameter

MRK.arma55 <- arima(MRK.ld, order=c(5,0,5))
MRK.arma55$code
## [1] 0
MRK.arma55
## 
## Call:
## arima(x = MRK.ld, order = c(5, 0, 5))
## 
## Coefficients:
##           ar1      ar2      ar3      ar4      ar5     ma1     ma2     ma3
##       -0.1675  -0.3450  -0.1551  -0.2967  -0.8504  0.1688  0.3936  0.1108
## s.e.   0.0895   0.0644   0.0809   0.0831   0.1060  0.1121  0.0887  0.0903
##          ma4     ma5  intercept
##       0.3353  0.8066      5e-04
## s.e.  0.0914  0.1202      3e-04
## 
## sigma^2 estimated as 0.0001383:  log likelihood = 3798.96,  aic = -7573.92
tsdiag.new(MRK.arma55)

MRK.arma54 <- arima(MRK.ld, order=c(5,0,4))
MRK.arma54$code
## [1] 0
MRK.arma54
## 
## Call:
## arima(x = MRK.ld, order = c(5, 0, 4))
## 
## Coefficients:
##          ar1     ar2      ar3     ar4      ar5      ma1      ma2     ma3
##       0.5156  0.0734  -0.6255  0.0623  -0.0873  -0.5422  -0.0507  0.5864
## s.e.  0.3831  0.2355   0.2495  0.3401   0.0369   0.3844   0.2423  0.2479
##           ma4  intercept
##       -0.0383      5e-04
## s.e.   0.3356      3e-04
## 
## sigma^2 estimated as 0.0001401:  log likelihood = 3793.33,  aic = -7564.67
tsdiag.new(MRK.arma54)

MRK.arma53 <- arima(MRK.ld, order=c(5,0,3))
MRK.arma53$code
## [1] 0
MRK.arma53
## 
## Call:
## arima(x = MRK.ld, order = c(5, 0, 3))
## 
## Coefficients:
##          ar1     ar2      ar3     ar4      ar5      ma1      ma2     ma3
##       0.4770  0.0833  -0.6049  0.0239  -0.0889  -0.5034  -0.0614  0.5673
## s.e.  0.1707  0.2178   0.1573  0.0401   0.0332   0.1705   0.2211  0.1701
##       intercept
##           5e-04
## s.e.      3e-04
## 
## sigma^2 estimated as 0.0001401:  log likelihood = 3793.32,  aic = -7566.64
tsdiag.new(MRK.arma53)

MRK.arma52 <- arima(MRK.ld, order=c(5,0,2))
MRK.arma52$code
## [1] 0
MRK.arma52
## 
## Call:
## arima(x = MRK.ld, order = c(5, 0, 2))
## 
## Coefficients:
##          ar1      ar2      ar3     ar4      ar5      ma1     ma2
##       0.1965  -0.0743  -0.0492  0.0268  -0.1002  -0.2206  0.0899
## s.e.  0.3275   0.2220   0.0300  0.0319   0.0292   0.3296  0.2266
##       intercept
##           5e-04
## s.e.      3e-04
## 
## sigma^2 estimated as 0.0001407:  log likelihood = 3790.28,  aic = -7562.55
tsdiag.new(MRK.arma52)

MRK.arma51 <- arima(MRK.ld, order=c(5,0,1))
MRK.arma51$code
## [1] 0
MRK.arma51
## 
## Call:
## arima(x = MRK.ld, order = c(5, 0, 1))
## 
## Coefficients:
##          ar1     ar2      ar3     ar4      ar5      ma1  intercept
##       0.1419  0.0133  -0.0462  0.0232  -0.0958  -0.1652      5e-04
## s.e.  0.2450  0.0290   0.0285  0.0304   0.0281   0.2458      3e-04
## 
## sigma^2 estimated as 0.0001408:  log likelihood = 3790.2,  aic = -7564.4
tsdiag.new(MRK.arma51)

MRK.arma50 <- arima(MRK.ld, order=c(5,0,0))
MRK.arma50$code
## [1] 0
MRK.arma50
## 
## Call:
## arima(x = MRK.ld, order = c(5, 0, 0))
## 
## Coefficients:
##           ar1     ar2      ar3     ar4      ar5  intercept
##       -0.0219  0.0095  -0.0439  0.0158  -0.0927      5e-04
## s.e.   0.0281  0.0281   0.0281  0.0281   0.0281      3e-04
## 
## sigma^2 estimated as 0.0001408:  log likelihood = 3790.03,  aic = -7566.06
tsdiag.new(MRK.arma50)

MRK.arma45 <- arima(MRK.ld, order=c(4,0,5))
MRK.arma45$code
## [1] 0
MRK.arma45
## 
## Call:
## arima(x = MRK.ld, order = c(4, 0, 5))
## 
## Coefficients:
##          ar1     ar2      ar3      ar4      ma1      ma2     ma3     ma4
##       0.4732  0.1835  -0.6545  -0.0071  -0.5001  -0.1612  0.6190  0.0245
## s.e.  0.3405  0.2256   0.2036   0.2916   0.3393   0.2328  0.2022  0.2834
##           ma5  intercept
##       -0.0833      5e-04
## s.e.   0.0338      3e-04
## 
## sigma^2 estimated as 0.0001401:  log likelihood = 3793.28,  aic = -7564.57
tsdiag.new(MRK.arma45)

MRK.arma44 <- arima(MRK.ld, order=c(4,0,4))
MRK.arma44$code
## [1] 0
MRK.arma44
## 
## Call:
## arima(x = MRK.ld, order = c(4, 0, 4))
## 
## Coefficients:
## Warning in sqrt(diag(x$var.coef)): NaNs produced
##           ar1     ar2     ar3     ar4     ma1      ma2      ma3     ma4
##       -0.4637  0.7527  0.5195  0.1075  0.4415  -0.7568  -0.5460  -0.095
## s.e.   0.9901     NaN  0.8625     NaN  0.9924      NaN   0.8532     NaN
##       intercept
##           5e-04
## s.e.      2e-04
## 
## sigma^2 estimated as 0.0001411:  log likelihood = 3788.7,  aic = -7557.41
tsdiag.new(MRK.arma44)

MRK.arma43 <- arima(MRK.ld, order=c(4,0,3))
MRK.arma43$code
## [1] 0
MRK.arma43
## 
## Call:
## arima(x = MRK.ld, order = c(4, 0, 3))
## 
## Coefficients:
## Warning in sqrt(diag(x$var.coef)): NaNs produced
##           ar1     ar2     ar3     ar4     ma1      ma2      ma3  intercept
##       -0.5576  0.8462  0.6204  0.0104  0.5356  -0.8522  -0.6421      5e-04
## s.e.      NaN  0.0785     NaN  0.0335     NaN   0.0658      NaN      2e-04
## 
## sigma^2 estimated as 0.0001411:  log likelihood = 3788.7,  aic = -7559.4
tsdiag.new(MRK.arma43)

MRK.arma42 <- arima(MRK.ld, order=c(4,0,2))
MRK.arma42$code
## [1] 0
MRK.arma42
## 
## Call:
## arima(x = MRK.ld, order = c(4, 0, 2))
## 
## Coefficients:
##           ar1     ar2      ar3      ar4     ma1      ma2  intercept
##       -0.1366  0.5883  -0.0475  -0.0014  0.1157  -0.5820      5e-04
## s.e.   0.3112  0.2282   0.0317   0.0388  0.3099   0.2229      3e-04
## 
## sigma^2 estimated as 0.0001413:  log likelihood = 3787.59,  aic = -7559.17
tsdiag.new(MRK.arma42)

# no
MRK.arma41 <- arima(MRK.ld, order=c(4,0,1))
MRK.arma41$code
## [1] 0
MRK.arma41
## 
## Call:
## arima(x = MRK.ld, order = c(4, 0, 1))
## 
## Coefficients:
##           ar1      ar2      ar3     ar4     ma1  intercept
##       -0.7816  -0.0052  -0.0340  0.0063  0.7622      5e-04
## s.e.   0.1912   0.0361   0.0359  0.0357  0.1893      3e-04
## 
## sigma^2 estimated as 0.0001415:  log likelihood = 3786.9,  aic = -7559.8
tsdiag.new(MRK.arma41)

# no

MRK.arma35 <- arima(MRK.ld, order=c(3,0,5))
MRK.arma35$code
## [1] 0
MRK.arma35
## 
## Call:
## arima(x = MRK.ld, order = c(3, 0, 5))
## 
## Coefficients:
##          ar1     ar2      ar3      ma1      ma2     ma3     ma4      ma5
##       0.4952  0.1591  -0.6458  -0.5222  -0.1364  0.6080  0.0202  -0.0840
## s.e.  0.1668  0.2111   0.1518   0.1676   0.2155  0.1654  0.0395   0.0316
##       intercept
##           5e-04
## s.e.      3e-04
## 
## sigma^2 estimated as 0.0001401:  log likelihood = 3793.28,  aic = -7566.57
tsdiag.new(MRK.arma35)

MRK.arma34 <- arima(MRK.ld, order=c(3,0,4))
MRK.arma34$code
## [1] 0
MRK.arma34
## 
## Call:
## arima(x = MRK.ld, order = c(3, 0, 4))
## 
## Coefficients:
## Warning in sqrt(diag(x$var.coef)): NaNs produced
##           ar1     ar2     ar3     ma1      ma2      ma3     ma4  intercept
##       -0.2274  0.6358  0.0973  0.2069  -0.6353  -0.1408  0.0062      5e-04
## s.e.      NaN     NaN     NaN     NaN      NaN      NaN     NaN      3e-04
## 
## sigma^2 estimated as 0.0001413:  log likelihood = 3787.6,  aic = -7557.19
tsdiag.new(MRK.arma34)

MRK.arma33 <- arima(MRK.ld, order=c(3,0,3))
MRK.arma33$code
## [1] 0
MRK.arma33
## 
## Call:
## arima(x = MRK.ld, order = c(3, 0, 3))
## 
## Coefficients:
## Warning in sqrt(diag(x$var.coef)): NaNs produced
##           ar1     ar2      ar3     ma1      ma2     ma3  intercept
##       -0.0851  0.5947  -0.0999  0.0641  -0.5879  0.0531      5e-04
## s.e.      NaN  0.1988      NaN     NaN   0.1949     NaN      3e-04
## 
## sigma^2 estimated as 0.0001413:  log likelihood = 3787.6,  aic = -7559.19
tsdiag.new(MRK.arma33)

MRK.arma32 <- arima(MRK.ld, order=c(3,0,2))
MRK.arma32$code
## [1] 0
MRK.arma32
## 
## Call:
## arima(x = MRK.ld, order = c(3, 0, 2))
## 
## Coefficients:
##           ar1     ar2      ar3     ma1      ma2  intercept
##       -0.1002  0.6081  -0.0473  0.0793  -0.6004      5e-04
## s.e.   0.2408  0.2291   0.0323  0.2398   0.2197      3e-04
## 
## sigma^2 estimated as 0.0001413:  log likelihood = 3787.57,  aic = -7561.15
tsdiag.new(MRK.arma32)

#no 
MRK.arma31 <- arima(MRK.ld, order=c(3,0,1))
MRK.arma31$code
## [1] 0
MRK.arma31
## 
## Call:
## arima(x = MRK.ld, order = c(3, 0, 1))
## 
## Coefficients:
##           ar1      ar2      ar3     ma1  intercept
##       -0.8029  -0.0057  -0.0368  0.7834      5e-04
## s.e.   0.1423   0.0363   0.0321  0.1401      3e-04
## 
## sigma^2 estimated as 0.0001415:  log likelihood = 3786.9,  aic = -7561.79
tsdiag.new(MRK.arma31)

#no 

MRK.arma25 <- arima(MRK.ld, order=c(2,0,5))
MRK.arma25$code
## [1] 0
MRK.arma25
## 
## Call:
## arima(x = MRK.ld, order = c(2, 0, 5))
## 
## Coefficients:
##          ar1      ar2      ma1     ma2      ma3     ma4      ma5
##       0.2138  -0.0993  -0.2375  0.1157  -0.0462  0.0298  -0.0854
## s.e.  0.4035   0.2610   0.4025  0.2651   0.0311  0.0359   0.0278
##       intercept
##           5e-04
## s.e.      3e-04
## 
## sigma^2 estimated as 0.000141:  log likelihood = 3789.17,  aic = -7560.34
tsdiag.new(MRK.arma25)

MRK.arma24 <- arima(MRK.ld, order=c(2,0,4))
MRK.arma24$code
## [1] 0
MRK.arma24
## 
## Call:
## arima(x = MRK.ld, order = c(2, 0, 4))
## 
## Coefficients:
## Warning in sqrt(diag(x$var.coef)): NaNs produced
##           ar1    ar2     ma1      ma2      ma3     ma4  intercept
##       -0.0599  0.691  0.0394  -0.6849  -0.0423  0.0101      5e-04
## s.e.      NaN    NaN     NaN      NaN   0.0300  0.0273      3e-04
## 
## sigma^2 estimated as 0.0001414:  log likelihood = 3787.55,  aic = -7559.1
tsdiag.new(MRK.arma24)

MRK.arma23 <- arima(MRK.ld, order=c(2,0,3))
MRK.arma23$code
## [1] 0
MRK.arma23
## 
## Call:
## arima(x = MRK.ld, order = c(2, 0, 3))
## 
## Coefficients:
##           ar1     ar2     ma1      ma2      ma3  intercept
##       -0.1677  0.6027  0.1469  -0.5978  -0.0462      5e-04
## s.e.   0.2733  0.2598  0.2739   0.2473   0.0323      3e-04
## 
## sigma^2 estimated as 0.0001413:  log likelihood = 3787.58,  aic = -7561.16
tsdiag.new(MRK.arma23)

#no
MRK.arma22 <- arima(MRK.ld, order=c(2,0,2))
MRK.arma22$code
## [1] 0
MRK.arma22
## 
## Call:
## arima(x = MRK.ld, order = c(2, 0, 2))
## 
## Coefficients:
##          ar1     ar2      ma1      ma2  intercept
##       0.0774  0.8800  -0.1202  -0.8585      5e-04
## s.e.  0.0659  0.0632   0.0722   0.0706      2e-04
## 
## sigma^2 estimated as 0.0001413:  log likelihood = 3787.88,  aic = -7563.77
tsdiag.new(MRK.arma22)

#no

MRK.arma15 <- arima(MRK.ld, order=c(1,0,5))
MRK.arma15$code
## [1] 0
MRK.arma15
## 
## Call:
## arima(x = MRK.ld, order = c(1, 0, 5))
## 
## Coefficients:
##          ar1      ma1     ma2      ma3     ma4      ma5  intercept
##       0.1477  -0.1714  0.0154  -0.0421  0.0249  -0.0812      5e-04
## s.e.  0.3093   0.3084  0.0299   0.0289  0.0322   0.0262      3e-04
## 
## sigma^2 estimated as 0.000141:  log likelihood = 3789.1,  aic = -7562.21
tsdiag.new(MRK.arma15)

#no
MRK.arma14 <- arima(MRK.ld, order=c(1,0,4))
MRK.arma14$code
## [1] 0
MRK.arma14
## 
## Call:
## arima(x = MRK.ld, order = c(1, 0, 4))
## 
## Coefficients:
##           ar1     ma1      ma2      ma3      ma4  intercept
##       -0.8405  0.8209  -0.0086  -0.0388  -0.0012      5e-04
## s.e.   0.1451  0.1467   0.0377   0.0404   0.0357      3e-04
## 
## sigma^2 estimated as 0.0001415:  log likelihood = 3786.96,  aic = -7559.92
tsdiag.new(MRK.arma14)

#no

MRK.arma05 <- arima(MRK.ld, order=c(0,0,5))
MRK.arma05$code
## [1] 0
MRK.arma05
## 
## Call:
## arima(x = MRK.ld, order = c(0, 0, 5))
## 
## Coefficients:
##           ma1     ma2      ma3     ma4      ma5  intercept
##       -0.0246  0.0111  -0.0408  0.0170  -0.0785      5e-04
## s.e.   0.0282  0.0282   0.0286  0.0273   0.0259      3e-04
## 
## sigma^2 estimated as 0.000141:  log likelihood = 3789,  aic = -7564.01
tsdiag.new(MRK.arma05)

#no
MRK.arma04 <- arima(MRK.ld, order=c(0,0,4))
MRK.arma04$code
## [1] 0
MRK.arma04
## 
## Call:
## arima(x = MRK.ld, order = c(0, 0, 4))
## 
## Coefficients:
##           ma1     ma2      ma3     ma4  intercept
##       -0.0211  0.0064  -0.0463  0.0159      5e-04
## s.e.   0.0285  0.0286   0.0291  0.0275      3e-04
## 
## sigma^2 estimated as 0.0001421:  log likelihood = 3784.45,  aic = -7556.89
tsdiag.new(MRK.arma04)

#no


MRK.armalist <- list(MRK.arma55, MRK.arma54, MRK.arma53, MRK.arma52, MRK.arma51,
                     MRK.arma50, MRK.arma45, MRK.arma44, MRK.arma43, MRK.arma42, 
                     MRK.arma35, MRK.arma34, MRK.arma33, MRK.arma32, MRK.arma25, 
                     MRK.arma24, MRK.arma23, MRK.arma15, MRK.arma05)

# lowest are 05, 23, 32, 50
# --> 5 parameters




aiccall.list <- function(armalist){
  
  test.aic <- NA
  test.call <- NA
  test.code <- NA
  
  for (i in 1:length(armalist)){
    
    test.aic[i] <- round(armalist[[i]]$aic, digits = 3)
    test.call[i] <- as.character(armalist[[i]]$call[3])
    test.code[i] <- armalist[[i]]$code
  }
  
  output <- as.data.frame(cbind(test.aic, test.call, test.code))
  colnames(output) <- c("AIC", "Order", "Code")
  
  return(output)
}




PFE.final <- aiccall.list(PFE.armalist)
PFE.final
##         AIC      Order Code
## 1 -7618.398 c(1, 0, 1)    0
## 2 -7620.414 c(1, 0, 0)    0
## 3 -7620.369 c(0, 0, 1)    0
PFE.final[PFE.final$Code==1,] #no convergence issues
## [1] AIC   Order Code 
## <0 rows> (or 0-length row.names)
range(as.numeric(levels(PFE.final$AIC)))
## [1] -7620.414 -7618.398
MRK.final <- aiccall.list(MRK.armalist)
MRK.final
##          AIC      Order Code
## 1  -7573.916 c(5, 0, 5)    0
## 2  -7564.667 c(5, 0, 4)    0
## 3  -7566.636 c(5, 0, 3)    0
## 4  -7562.552 c(5, 0, 2)    0
## 5  -7564.404 c(5, 0, 1)    0
## 6  -7566.063 c(5, 0, 0)    0
## 7  -7564.566 c(4, 0, 5)    0
## 8  -7557.406 c(4, 0, 4)    0
## 9  -7559.397 c(4, 0, 3)    0
## 10 -7559.171 c(4, 0, 2)    0
## 11 -7566.566 c(3, 0, 5)    0
## 12 -7557.193 c(3, 0, 4)    0
## 13 -7559.193 c(3, 0, 3)    0
## 14 -7561.146 c(3, 0, 2)    0
## 15 -7560.342 c(2, 0, 5)    0
## 16 -7559.104 c(2, 0, 4)    0
## 17 -7561.158 c(2, 0, 3)    0
## 18 -7562.207 c(1, 0, 5)    0
## 19 -7564.009 c(0, 0, 5)    0
MRK.final[MRK.final$Code==1,] #no convergence issues
## [1] AIC   Order Code 
## <0 rows> (or 0-length row.names)
MRK.final[as.numeric(MRK.final$AIC)<=5,] #no clear AIC winners
##          AIC      Order Code
## 8  -7557.406 c(4, 0, 4)    0
## 10 -7559.171 c(4, 0, 2)    0
## 12 -7557.193 c(3, 0, 4)    0
## 13 -7559.193 c(3, 0, 3)    0
## 16 -7559.104 c(2, 0, 4)    0
range(as.numeric(levels(MRK.final$AIC)))
## [1] -7573.916 -7557.193
par(mfrow=c(2,1), oma=c(0,0,0,0))
tsdiag.new(PFE.arma10)
tsdiag.new(PFE.arma01)

paste(PFE.arma10$aic, PFE.arma01$aic)
## [1] "-7620.41436369809 -7620.36907928162"
# may as well choose AR1 -- lower AIC (not by much)

par(mfrow=c(2,2))
tsdiag.new(MRK.arma50)
tsdiag.new(MRK.arma32)
tsdiag.new(MRK.arma23)
tsdiag.new(MRK.arma05)

paste(MRK.arma50$aic, MRK.arma32$aic, MRK.arma23$aic, MRK.arma05$aic)
## [1] "-7566.06326450209 -7561.14593501032 -7561.15837102485 -7564.00913126507"
# AR5 is lowest -- again not by much