Granger Causality Test


##載入套件

library(lmtest)
library(dplyr)
library(ggplot2)
library(openxlsx)
library(vars)
library(tseries)
library(jtools)
library(forecast)
library(urca)


##建立時間序列

season <- read.xlsx("E:/summer program/new data/byseason1.xlsx", sheet = '內插')

biomass.timeseries <- ts(season$aboveground距平, start = c(1997,1),frequency = 4)
leaf.timeseries <- ts(season$leaf距平, start = c(1997,1),frequency = 4)
cover.timeseries <- ts(season$cover距平, start = c(1997,1),frequency = 4)
relative.timeseries <- ts(season$relative距平, start = c(1997,1),frequency = 4)
oni.timeseries <- ts(season$ONI0, start = c(1997,1),frequency = 4)
pmm.timeseries <- ts(season$PMM0, start = c(1997,1),frequency = 4)
nino4.timeseries <- ts(season$NINO40, start = c(1997,1),frequency = 4)
cp.timeseries <- ts(season$CPENSO0, start = c(1997,1),frequency = 4)
temp.timeseries <- ts(season$TX距平0, start = c(1997,1),frequency = 4)
rain.timeseries <- ts(season$PP距平0, start = c(1997,1),frequency = 4)
salt.timeseries <- ts(season$Salt距平0, start = c(1997,1),frequency = 4)
tempde.timeseries <- ts(season$TXde0, start = c(1997,1),frequency = 4)


##檢測平穩性

ADF法

adf.test(na.omit(cover.timeseries))
adf.test(na.omit(leaf.timeseries))
adf.test(na.omit(relative.timeseries))
adf.test(na.omit(biomass.timeseries))

adf.test(na.omit(pmm.timeseries))
adf.test(na.omit(oni.timeseries))
adf.test(na.omit(nino4.timeseries))
adf.test(na.omit(cp.timeseries))

adf.test(na.omit(temp.timeseries))
adf.test(na.omit(rain.timeseries))
adf.test(na.omit(salt.timeseries))
adf.test(na.omit(tempde.timeseries))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(cover.timeseries)
## Dickey-Fuller = -1.6921, Lag order = 4, p-value = 0.7022
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(leaf.timeseries)
## Dickey-Fuller = -2.7016, Lag order = 4, p-value = 0.2881
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(relative.timeseries)
## Dickey-Fuller = -1.9812, Lag order = 4, p-value = 0.5836
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(biomass.timeseries)
## Dickey-Fuller = -1.2938, Lag order = 4, p-value = 0.8655
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(pmm.timeseries)
## Dickey-Fuller = -2.5903, Lag order = 4, p-value = 0.3325
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(oni.timeseries)
## Dickey-Fuller = -3.6285, Lag order = 4, p-value = 0.03462
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(nino4.timeseries)
## Dickey-Fuller = -3.4569, Lag order = 4, p-value = 0.04983
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(cp.timeseries)
## Dickey-Fuller = -3.834, Lag order = 4, p-value = 0.02091
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(temp.timeseries)
## Dickey-Fuller = -2.2262, Lag order = 4, p-value = 0.483
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(rain.timeseries)
## Dickey-Fuller = -4.7815, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(salt.timeseries)
## Dickey-Fuller = -2.4348, Lag order = 4, p-value = 0.3975
## alternative hypothesis: stationary
## 
## 
##  Augmented Dickey-Fuller Test
## 
## data:  na.omit(tempde.timeseries)
## Dickey-Fuller = -2.2284, Lag order = 4, p-value = 0.4821
## alternative hypothesis: stationary


KPSS法

kpss.test(na.omit(cover.timeseries))
kpss.test(na.omit(leaf.timeseries))
kpss.test(na.omit(relative.timeseries))
kpss.test(na.omit(biomass.timeseries))

kpss.test(na.omit(pmm.timeseries))
kpss.test(na.omit(oni.timeseries))
kpss.test(na.omit(nino4.timeseries))
kpss.test(na.omit(cp.timeseries))

kpss.test(na.omit(temp.timeseries))
kpss.test(na.omit(rain.timeseries))
kpss.test(na.omit(salt.timeseries))
kpss.test(na.omit(tempde.timeseries))
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(cover.timeseries)
## KPSS Level = 0.8314, Truncation lag parameter = 3, p-value = 0.01
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(leaf.timeseries)
## KPSS Level = 0.15951, Truncation lag parameter = 3, p-value = 0.1
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(relative.timeseries)
## KPSS Level = 1.0795, Truncation lag parameter = 3, p-value = 0.01
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(biomass.timeseries)
## KPSS Level = 0.55658, Truncation lag parameter = 3, p-value = 0.02892
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(pmm.timeseries)
## KPSS Level = 0.8593, Truncation lag parameter = 3, p-value = 0.01
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(oni.timeseries)
## KPSS Level = 0.11392, Truncation lag parameter = 3, p-value = 0.1
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(nino4.timeseries)
## KPSS Level = 0.19939, Truncation lag parameter = 3, p-value = 0.1
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(cp.timeseries)
## KPSS Level = 0.22521, Truncation lag parameter = 3, p-value = 0.1
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(temp.timeseries)
## KPSS Level = 0.78001, Truncation lag parameter = 3, p-value = 0.01
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(rain.timeseries)
## KPSS Level = 0.12981, Truncation lag parameter = 3, p-value = 0.1
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(salt.timeseries)
## KPSS Level = 0.17933, Truncation lag parameter = 3, p-value = 0.1
## 
## 
##  KPSS Test for Level Stationarity
## 
## data:  na.omit(tempde.timeseries)
## KPSS Level = 0.16384, Truncation lag parameter = 3, p-value = 0.1


##檢測差分

ADF法

ndiffs(cover.timeseries, test="adf")
ndiffs(leaf.timeseries, test="adf")
ndiffs(relative.timeseries, test="adf")
ndiffs(biomass.timeseries, test="adf")
ndiffs(pmm.timeseries, test="adf")
ndiffs(oni.timeseries, test="adf")
ndiffs(nino4.timeseries, test="adf")
ndiffs(cp.timeseries, test="adf")
ndiffs(temp.timeseries, test="adf")
ndiffs(rain.timeseries, test="adf")
ndiffs(salt.timeseries, test="adf")
ndiffs(tempde.timeseries, test="adf")
## [1] 1
## [1] 0
## [1] 0
## [1] 1
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0


KPSS法

ndiffs(cover.timeseries, test="kpss")
ndiffs(leaf.timeseries, test="kpss")
ndiffs(relative.timeseries, test="kpss")
ndiffs(biomass.timeseries, test="kpss")
ndiffs(pmm.timeseries, test="kpss")
ndiffs(oni.timeseries, test="kpss")
ndiffs(nino4.timeseries, test="kpss")
ndiffs(cp.timeseries, test="kpss")
ndiffs(temp.timeseries, test="kpss")
ndiffs(rain.timeseries, test="kpss")
ndiffs(salt.timeseries, test="kpss")
ndiffs(tempde.timeseries, test="kpss")
## [1] 1
## [1] 0
## [1] 1
## [1] 1
## [1] 1
## [1] 0
## [1] 0
## [1] 0
## [1] 1
## [1] 0
## [1] 0
## [1] 0

cover, biomass必做差分;relative, PMM, temp可做可不做

##檢測季節性差分

nsdiffs(cover.timeseries)
nsdiffs(leaf.timeseries)
nsdiffs(relative.timeseries)
nsdiffs(biomass.timeseries)
nsdiffs(pmm.timeseries)
nsdiffs(oni.timeseries)
nsdiffs(nino4.timeseries)
nsdiffs(cp.timeseries)
nsdiffs(temp.timeseries)
nsdiffs(rain.timeseries)
nsdiffs(salt.timeseries)
nsdiffs(tempde.timeseries)
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0
## [1] 0



##差分比較

coverdiff <- diff(cover.timeseries)

par(mfrow=c(2,2))
plot.ts(cover.timeseries,main="原始cover")
plot.ts(coverdiff,main="一階差分cover")
acf(cover.timeseries, na = na.omit, ,main="原始cover"); acf(coverdiff, na = na.omit, main="一階差分cover")

biomassdiff <- diff(biomass.timeseries)
par(mfrow=c(2,2))
plot.ts(biomass.timeseries,main="原始biomass")
plot.ts(biomassdiff,main="一階差分biomass")
acf(biomass.timeseries, na = na.omit, ,main="原始biomass");acf(biomassdiff, na = na.omit, main="一階差分biomass")

relativediff <- diff(relative.timeseries)

#par(mfrow=c(2,2))
#plot.ts(relative.timeseries,main="原始relative")
#plot.ts(relativediff,main="一階差分relative")
#acf(relative.timeseries, na = na.omit, ,main="原始relative"); acf(relativediff, na = na.omit, main="一階差分relative")
pmmdiff <- diff(pmm.timeseries)
#par(mfrow=c(2,2))
#plot.ts(pmm.timeseries,main="原始pmm")
#plot.ts(pmmdiff,main="一階差分pmm")
#acf(pmm.timeseries, na = na.omit, ,main="原始pmm");acf(pmmdiff, na = na.omit, main="一階差分pmm")
tempdiff <- diff(temp.timeseries)

#par(mfrow=c(2,2))
#plot.ts(temp.timeseries,main="原始temp")
#plot.ts(tempdiff,main="一階差分temp")
#(temp.timeseries, na = na.omit, ,main="原始temp");acf(tempdiff, na = na.omit, main="一階差分temp")



##建立校準時間序列

因為差分的原理為第一項與第二項之差為新序列之第一項,因此計算a與b之格蘭傑因果時,其結果會與現實差了一個時間單位。然而當此差距會包含0時,將導致一盲區無法被計算(沒有自回歸),因此需要建立一個向後推移一單位之時間序列。

biomass1.timeseries <- ts(season$aboveground距平1, start = c(1997,1),frequency = 4)
cover1.timeseries <- ts(season$cover距平1, start = c(1997,1),frequency = 4)
relative1.timeseries <- ts(season$relative距平1, start = c(1997,1),frequency = 4)
pmm1.timeseries <- ts(season$PMM1, start = c(1997,1),frequency = 4)
temp1.timeseries <- ts(season$TX距平1, start = c(1997,1),frequency = 4)



##建立校準差分序列

cover1diff <- diff(cover1.timeseries)
relative1diff <- diff(relative1.timeseries)
biomass1diff <- diff(biomass1.timeseries)
pmm1diff <- diff(pmm1.timeseries)
temp1diff <- diff(temp1.timeseries)



##檢測協整

cointegrating <- dplyr::select(season, PMM0, aboveground距平)
jotest=ca.jo(cointegrating, type="trace", K=2, ecdet="none", spec="longrun")
summary(jotest)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , with linear trend 
## 
## Eigenvalues (lambda):
## [1] 0.27585855 0.07132986
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 |  6.07  6.50  8.18 11.65
## r = 0  | 32.54 15.66 17.95 23.52
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##                     PMM0.l2 aboveground距平.l2
## PMM0.l2            1.000000             1.0000
## aboveground距平.l2 4.119389           252.7904
## 
## Weights W:
## (This is the loading matrix)
## 
##                       PMM0.l2 aboveground距平.l2
## PMM0.d            -0.43640045       0.0030503342
## aboveground距平.d -0.01750535      -0.0007918103
cointegrating <- dplyr::select(season, PMM0, relative距平)
jotest=ca.jo(cointegrating, type="trace", K=2, ecdet="none", spec="longrun")
summary(jotest)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , with linear trend 
## 
## Eigenvalues (lambda):
## [1] 0.2752749 0.1146393
## 
## Values of teststatistic and critical values of test:
## 
##           test 10pct  5pct  1pct
## r <= 1 |  9.98  6.50  8.18 11.65
## r = 0  | 36.39 15.66 17.95 23.52
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##                   PMM0.l2 relative距平.l2
## PMM0.l2          1.000000        1.000000
## relative距平.l2 -0.176644        1.115258
## 
## Weights W:
## (This is the loading matrix)
## 
##                   PMM0.l2 relative距平.l2
## PMM0.d         -0.4081559     -0.02799225
## relative距平.d  0.7120284     -0.21818982



##Biomass與PMM的滯後選擇 & Granger Causality Test

BIOMASS差分與PMM

bio_pmm <- cbind(pmm.timeseries, biomassdiff)
VARselect(y=na.omit(bio_pmm), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      1      1      5 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n) -1.0142979 -1.0510566 -1.0587417 -1.0573471 -1.0670205 -0.9913257
## HQ(n)  -0.9402701 -0.9276770 -0.8860102 -0.8352637 -0.7955852 -0.6705385
## SC(n)  -0.8288989 -0.7420582 -0.6261439 -0.5011500 -0.3872240 -0.1879298
## FPE(n)  0.3626879  0.3497067  0.3472703  0.3481844  0.3455014  0.3737179
##                  7          8
## AIC(n) -0.90715411 -0.8607084
## HQ(n)  -0.53701509 -0.4412175
## SC(n)   0.01984113  0.1898862
## FPE(n)  0.40810781  0.4296932

AIC best at 5, BIC(SC) best at 1.

grangertest(biomassdiff ~ pmm.timeseries, order = 1, data = bio_pmm)
grangertest(pmm.timeseries ~ biomassdiff, order = 1, data = bio_pmm)
grangertest(biomassdiff ~ pmm.timeseries, order = 5, data = bio_pmm)
grangertest(pmm.timeseries ~ biomassdiff, order = 5, data = bio_pmm)
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:1) + Lags(pmm.timeseries, 1:1)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:1)
##   Res.Df Df     F Pr(>F)
## 1     79                
## 2     80 -1 0.164 0.6866
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:1) + Lags(biomassdiff, 1:1)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)  
## 1     79                   
## 2     80 -1 3.8065 0.0546 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:5) + Lags(pmm.timeseries, 1:5)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 0.7377 0.5978
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:5) + Lags(biomassdiff, 1:5)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)  
## 1     67                   
## 2     72 -5 2.1196 0.0737 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Biomass lead PMM by 1 and 5. (實質上Biomass與PMM同時/領先4季)

BIOMASS1差分與PMM

bio1_pmm <- cbind(pmm.timeseries, biomass1diff)
VARselect(y=na.omit(bio1_pmm), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      3      2      1      3 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n) -0.9235428 -1.0423719 -1.0881076 -1.0168086 -0.9951740 -0.9836241
## HQ(n)  -0.8495150 -0.9189922 -0.9153761 -0.7947252 -0.7237388 -0.6628370
## SC(n)  -0.7381438 -0.7333735 -0.6555098 -0.4606114 -0.3153775 -0.1802282
## FPE(n)  0.3971436  0.3527570  0.3372206  0.3625893  0.3712379  0.3766072
##                  7          8
## AIC(n) -0.90363397 -0.8821845
## HQ(n)  -0.53349495 -0.4626936
## SC(n)   0.02336128  0.1684101
## FPE(n)  0.40954694  0.4205634

AIC best at 3, BIC(SC) best at 1.

grangertest(biomass1diff ~ pmm.timeseries, order = 1, data = bio1_pmm)
grangertest(pmm.timeseries ~ biomass1diff, order = 1, data = bio1_pmm)
grangertest(biomass1diff ~ pmm.timeseries, order = 3, data = bio1_pmm)
grangertest(pmm.timeseries ~ biomass1diff, order = 3, data = bio1_pmm)
## Granger causality test
## 
## Model 1: biomass1diff ~ Lags(biomass1diff, 1:1) + Lags(pmm.timeseries, 1:1)
## Model 2: biomass1diff ~ Lags(biomass1diff, 1:1)
##   Res.Df Df  F Pr(>F)
## 1     79             
## 2     80 -1  0 0.9959
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:1) + Lags(biomass1diff, 1:1)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     79                 
## 2     80 -1 2.3891 0.1262
## Granger causality test
## 
## Model 1: biomass1diff ~ Lags(biomass1diff, 1:3) + Lags(pmm.timeseries, 1:3)
## Model 2: biomass1diff ~ Lags(biomass1diff, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     73                 
## 2     76 -3 0.8312  0.481
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:3) + Lags(biomass1diff, 1:3)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:3)
##   Res.Df Df      F  Pr(>F)  
## 1     73                    
## 2     76 -3 3.2092 0.02793 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Biomass lead PMM by 3. (實質上Biomass領先PMM2季)

##BIOMASS差分與PMM差分

bio_pmmdiff <- cbind(pmmdiff, biomassdiff)
VARselect(y=na.omit(bio_pmmdiff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      2      2      2      2 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n) -0.8650512 -1.0477954 -0.9991713 -0.9772263 -0.9519731 -0.8752591
## HQ(n)  -0.7910234 -0.9244157 -0.8264398 -0.7551429 -0.6805378 -0.5544719
## SC(n)  -0.6796522 -0.7387969 -0.5665735 -0.4210292 -0.2721765 -0.0718632
## FPE(n)  0.4210659  0.3508490  0.3685859  0.3772292  0.3876272  0.4197116
##                 7          8
## AIC(n) -0.7878636 -0.8624107
## HQ(n)  -0.4177246 -0.4429198
## SC(n)   0.1391317  0.1881839
## FPE(n)  0.4598139  0.4289623

AIC, BIC(SC) best at 2.

grangertest(biomassdiff ~ pmmdiff, order = 2, data = bio_pmmdiff)
grangertest(pmmdiff ~ biomassdiff, order = 2, data = bio_pmmdiff)
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:2) + Lags(pmmdiff, 1:2)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:2)
##   Res.Df Df     F Pr(>F)
## 1     76                
## 2     78 -2 0.056 0.9455
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:2) + Lags(biomassdiff, 1:2)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     78 -2 0.9167 0.4042

No significant result.

##Biomass與CPENSO的滯後選擇 & Granger

BIOMASS差分與CPENSO

bio_cp <- cbind(cp.timeseries, biomassdiff)
VARselect(y=na.omit(bio_cp), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      3      2      2      3 
## 
## $criteria
##                  1           2          3           4          5           6
## AIC(n) -3.32683904 -3.47991151 -3.5065544 -3.47740155 -3.4540930 -3.42831736
## HQ(n)  -3.25131008 -3.35402991 -3.3303201 -3.25081466 -3.1771534 -3.10102520
## SC(n)  -3.13711686 -3.16370788 -3.0638693 -2.90823502 -2.7584450 -2.60618793
## FPE(n)  0.03590989  0.03082394  0.0300371  0.03096887  0.0317688  0.03270223
##                  7           8
## AIC(n) -3.33540562 -3.26958404
## HQ(n)  -2.95776082 -2.84158660
## SC(n)  -2.38679473 -2.19449171
## FPE(n)  0.03604363  0.03871911

AIC best at 3, BIC(SC) best at 2.

grangertest(biomassdiff ~ cp.timeseries, order = 2, data = bio_cp)
grangertest(cp.timeseries ~ biomassdiff, order = 2, data = bio_cp)
grangertest(biomassdiff ~ cp.timeseries, order = 3, data = bio_cp)
grangertest(cp.timeseries ~ biomassdiff, order = 3, data = bio_cp)
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:2) + Lags(cp.timeseries, 1:2)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     73                 
## 2     75 -2 0.2224 0.8011
## Granger causality test
## 
## Model 1: cp.timeseries ~ Lags(cp.timeseries, 1:2) + Lags(biomassdiff, 1:2)
## Model 2: cp.timeseries ~ Lags(cp.timeseries, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     73                 
## 2     75 -2 0.4678 0.6282
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:3) + Lags(cp.timeseries, 1:3)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     73 -3 1.1799 0.3237
## Granger causality test
## 
## Model 1: cp.timeseries ~ Lags(cp.timeseries, 1:3) + Lags(biomassdiff, 1:3)
## Model 2: cp.timeseries ~ Lags(cp.timeseries, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     73 -3 1.5869 0.2003

No significant result.

BIOMASS1差分與CPENSO

bio1_cp <- cbind(cp.timeseries, biomass1diff)
VARselect(y=na.omit(bio1_cp), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      2      2      2      2 
## 
## $criteria
##                  1           2           3           4          5           6
## AIC(n) -3.35164045 -3.58520798 -3.51064014 -3.50825452 -3.4751757 -3.43204983
## HQ(n)  -3.27661681 -3.46016858 -3.33558498 -3.28318359 -3.2000890 -3.10694738
## SC(n)  -3.16338351 -3.27144642 -3.07137395 -2.94348370 -2.7849003 -2.61626975
## FPE(n)  0.03503009  0.02774282  0.02991312  0.03002476  0.0310999  0.03256969
##                  7           8
## AIC(n) -3.37363716 -3.39545027
## HQ(n)  -2.99851895 -2.97031630
## SC(n)  -2.43235246 -2.32866094
## FPE(n)  0.03467392  0.03411421

AIC, BIC(SC) best at 2.

grangertest(biomass1diff ~ cp.timeseries, order = 2, data = bio1_cp)
grangertest(cp.timeseries ~ biomass1diff, order = 2, data = bio1_cp)
## Granger causality test
## 
## Model 1: biomass1diff ~ Lags(biomass1diff, 1:2) + Lags(cp.timeseries, 1:2)
## Model 2: biomass1diff ~ Lags(biomass1diff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     74                 
## 2     76 -2 1.1817 0.3125
## Granger causality test
## 
## Model 1: cp.timeseries ~ Lags(cp.timeseries, 1:2) + Lags(biomass1diff, 1:2)
## Model 2: cp.timeseries ~ Lags(cp.timeseries, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     74                 
## 2     76 -2 0.1179  0.889

No significant result.

##Biomass與Temp的滯後選擇 & Granger

Biomass差分與Temp

temp_biomass <- cbind(temp.timeseries, biomassdiff)
VARselect(y=na.omit(temp_biomass), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      1      1      5 
## 
## $criteria
##                  1           2           3           4           5           6
## AIC(n) -3.64030637 -3.66062270 -3.66806190 -3.67286969 -3.69050411 -3.65763917
## HQ(n)  -3.56627857 -3.53724303 -3.49533036 -3.45078627 -3.41906882 -3.33685202
## SC(n)  -3.45490732 -3.35162428 -3.23546412 -3.11667254 -3.01070759 -2.85424329
## FPE(n)  0.02624654  0.02572668  0.02555373  0.02546257  0.02506601  0.02597638
##                  7           8
## AIC(n) -3.56761590 -3.49338562
## HQ(n)  -3.19747688 -3.07389473
## SC(n)  -2.64062066 -2.44279101
## FPE(n)  0.02853324  0.03088881

AIC best at 5, BIC best at 1.

grangertest(biomassdiff ~ temp.timeseries, order = 1, data = temp_biomass)
grangertest(temp.timeseries ~ biomassdiff, order = 1, data = temp_biomass)
grangertest(biomassdiff ~ temp.timeseries, order = 5, data = temp_biomass)
grangertest(temp.timeseries ~ biomassdiff, order = 5, data = temp_biomass)
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:1) + Lags(temp.timeseries, 1:1)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     79                 
## 2     80 -1 0.0149 0.9031
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:1) + Lags(biomassdiff, 1:1)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:1)
##   Res.Df Df     F Pr(>F)
## 1     79                
## 2     80 -1 0.112 0.7388
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:5) + Lags(temp.timeseries, 1:5)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 0.2467 0.9401
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:5) + Lags(biomassdiff, 1:5)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 1.6449 0.1602

No significant result.

Biomass差分與Temp差分

tempdiff_biomassdiff <- cbind(tempdiff, biomassdiff)
VARselect(y=na.omit(tempdiff_biomassdiff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      2      2      4 
## 
## $criteria
##                  1           2           3           4           5           6
## AIC(n) -3.49376123 -3.67425516 -3.60400469 -3.69556810 -3.69640297 -3.59724134
## HQ(n)  -3.41973342 -3.55087548 -3.43127315 -3.47348469 -3.42496769 -3.27645419
## SC(n)  -3.30836218 -3.36525674 -3.17140691 -3.13937096 -3.01660646 -2.79384546
## FPE(n)  0.03038896  0.02537834  0.02724419  0.02489112  0.02491859  0.02759364
##                  7          8
## AIC(n) -3.51923404 -3.4295049
## HQ(n)  -3.14909502 -3.0100140
## SC(n)  -2.59223880 -2.3789103
## FPE(n)  0.02994767  0.0329264

AIC best at 5, BIC(SC) best at 2.

grangertest(biomassdiff ~ tempdiff, order = 2, data = tempdiff_biomassdiff)
grangertest(tempdiff ~ biomassdiff, order = 2, data = tempdiff_biomassdiff)
grangertest(biomassdiff ~ tempdiff, order = 5, data = tempdiff_biomassdiff)
grangertest(tempdiff ~ biomassdiff, order = 5, data = tempdiff_biomassdiff)
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:2) + Lags(tempdiff, 1:2)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     78 -2 0.5751 0.5651
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:2) + Lags(biomassdiff, 1:2)
## Model 2: tempdiff ~ Lags(tempdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     78 -2 0.7493 0.4761
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:5) + Lags(tempdiff, 1:5)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 0.2461 0.9403
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:5) + Lags(biomassdiff, 1:5)
## Model 2: tempdiff ~ Lags(tempdiff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 1.9062 0.1049

No significant result.

Biomass差分與Tempde

tempde_biomass <- cbind(tempde.timeseries, biomassdiff)
VARselect(y=na.omit(tempde_biomass), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      2      1      1      2 
## 
## $criteria
##                  1           2           3           4           5          6
## AIC(n) -3.69371070 -3.69894260 -3.68637838 -3.68402164 -3.69573287 -3.6762034
## HQ(n)  -3.61968290 -3.57556293 -3.51364683 -3.46193823 -3.42429759 -3.3554163
## SC(n)  -3.50831165 -3.38994419 -3.25378060 -3.12782450 -3.01593635 -2.8728075
## FPE(n)  0.02488164  0.02475949  0.02508993  0.02518019  0.02493529  0.0254986
##                 7           8
## AIC(n) -3.5893173 -3.51415721
## HQ(n)  -3.2191783 -3.09466632
## SC(n)  -2.6623221 -2.46356260
## FPE(n)  0.0279207  0.03025382

AIC best at 2, BIC best at 1.

grangertest(biomassdiff ~ tempde.timeseries, order = 1, data = tempde_biomass)
grangertest(tempde.timeseries ~ biomassdiff, order = 1, data = tempde_biomass)
grangertest(biomassdiff ~ tempde.timeseries, order = 2, data = tempde_biomass)
grangertest(tempde.timeseries ~ biomassdiff, order = 2, data = tempde_biomass)
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:1) + Lags(tempde.timeseries, 1:1)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:1)
##   Res.Df Df     F Pr(>F)
## 1     79                
## 2     80 -1 0.078 0.7808
## Granger causality test
## 
## Model 1: tempde.timeseries ~ Lags(tempde.timeseries, 1:1) + Lags(biomassdiff, 1:1)
## Model 2: tempde.timeseries ~ Lags(tempde.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     79                 
## 2     80 -1 0.2515 0.6174
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:2) + Lags(tempde.timeseries, 1:2)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     78 -2 0.4466 0.6415
## Granger causality test
## 
## Model 1: tempde.timeseries ~ Lags(tempde.timeseries, 1:2) + Lags(biomassdiff, 1:2)
## Model 2: tempde.timeseries ~ Lags(tempde.timeseries, 1:2)
##   Res.Df Df     F Pr(>F)
## 1     76                
## 2     78 -2 0.547 0.5809

No significant result.

##Biomass與Salt的滯後選擇 & Granger Causality Test

BIOMASS差分與Salt

bio_salt <- cbind(salt.timeseries, biomassdiff)
VARselect(y=na.omit(bio_salt), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      2      2      1      2 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n) -2.0013017 -2.1037585 -2.0286503 -2.0782186 -2.0553771 -2.0522108
## HQ(n)  -1.9272739 -1.9803788 -1.8559188 -1.8561352 -1.7839418 -1.7314236
## SC(n)  -1.8159026 -1.7947601 -1.5960526 -1.5220214 -1.3755806 -1.2488149
## FPE(n)  0.1351708  0.1220454  0.1316563  0.1254442  0.1285914  0.1293622
##                 7          8
## AIC(n) -2.0603694 -2.0663946
## HQ(n)  -1.6902304 -1.6469037
## SC(n)  -1.1333742 -1.0158000
## FPE(n)  0.1288071  0.1286873

AIC, BIC(SC) best at 2.

grangertest(biomassdiff ~ salt.timeseries, order = 2, data = bio_salt)
grangertest(salt.timeseries ~ biomassdiff, order = 2, data = bio_salt)
## Granger causality test
## 
## Model 1: biomassdiff ~ Lags(biomassdiff, 1:2) + Lags(salt.timeseries, 1:2)
## Model 2: biomassdiff ~ Lags(biomassdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     78 -2 0.8818 0.4182
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:2) + Lags(biomassdiff, 1:2)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:2)
##   Res.Df Df     F Pr(>F)
## 1     76                
## 2     78 -2 0.931 0.3986

No significant result.

BIOMASS1差分與Salt

bio1_salt <- cbind(salt.timeseries, biomass1diff)
VARselect(y=na.omit(bio1_salt), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      2      2      1      2 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n) -1.9832825 -2.0466255 -1.9994639 -1.9809571 -1.9258896 -1.8492010
## HQ(n)  -1.9092547 -1.9232458 -1.8267324 -1.7588737 -1.6544543 -1.5284138
## SC(n)  -1.7978835 -1.7376271 -1.5668661 -1.4247599 -1.2460931 -1.0458051
## FPE(n)  0.1376285  0.1292212  0.1355555  0.1382581  0.1463685  0.1584796
##                 7          8
## AIC(n) -1.8517057 -1.8262288
## HQ(n)  -1.4815667 -1.4067379
## SC(n)  -0.9247105 -0.7756342
## FPE(n)  0.1586943  0.1636207

AIC best at 1, BIC(SC) best at 2.

grangertest(biomass1diff ~ salt.timeseries, order = 1, data = bio1_salt)
grangertest(salt.timeseries ~ biomass1diff, order = 1, data = bio1_salt)
grangertest(biomass1diff ~ salt.timeseries, order = 2, data = bio1_salt)
grangertest(salt.timeseries ~ biomass1diff, order = 2, data = bio1_salt)
## Granger causality test
## 
## Model 1: biomass1diff ~ Lags(biomass1diff, 1:1) + Lags(salt.timeseries, 1:1)
## Model 2: biomass1diff ~ Lags(biomass1diff, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     79                 
## 2     80 -1 0.8825 0.3504
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:1) + Lags(biomass1diff, 1:1)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     79                 
## 2     80 -1 0.0548 0.8155
## Granger causality test
## 
## Model 1: biomass1diff ~ Lags(biomass1diff, 1:2) + Lags(salt.timeseries, 1:2)
## Model 2: biomass1diff ~ Lags(biomass1diff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     78 -2 0.8387 0.4363
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:2) + Lags(biomass1diff, 1:2)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     78 -2 0.3051 0.7379

No significant result.

##Relative與PMM的滯後選擇 & Granger

Relative與PMM

relative_pmm <- cbind(relative.timeseries, pmm.timeseries)
VARselect(y=na.omit(relative_pmm), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      4      1      5 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n)   5.868147   5.899378   5.803772   5.712034   5.706870   5.760257
## HQ(n)    5.941684   6.021940   5.975360   5.932646   5.976507   6.078919
## SC(n)    6.052152   6.206053   6.233118   6.264050   6.381556   6.557613
## FPE(n) 353.622024 364.949309 331.895280 303.161882 302.162347 319.593304
##                 7          8
## AIC(n)   5.817841   5.810112
## HQ(n)    6.185528   6.226823
## SC(n)    6.737867   6.852808
## FPE(n) 339.793725 338.830099

AIC best at 5, BIC(SC) best at 4.

grangertest(relative.timeseries ~ pmm.timeseries, order = 4, data = relative_pmm)
grangertest(pmm.timeseries ~ relative.timeseries, order = 4, data = relative_pmm)
grangertest(relative.timeseries ~ pmm.timeseries, order = 5, data = relative_pmm)
grangertest(pmm.timeseries ~ relative.timeseries, order = 5, data = relative_pmm)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:4) + Lags(pmm.timeseries, 1:4)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     71                 
## 2     75 -4 1.7013 0.1593
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:4) + Lags(relative.timeseries, 1:4)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     71                 
## 2     75 -4 0.6781 0.6094
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:5) + Lags(pmm.timeseries, 1:5)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:5)
##   Res.Df Df     F Pr(>F)
## 1     68                
## 2     73 -5 1.453 0.2168
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:5) + Lags(relative.timeseries, 1:5)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 0.6228 0.6828

No significant result.

Relative差分與PMM

relativediff_pmm <- cbind(relativediff, pmm.timeseries)
VARselect(y=na.omit(relativediff_pmm), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      4      3      4 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n)   6.030442   5.910832   5.760681   5.696243   5.788842   5.852497
## HQ(n)    6.104470   6.034211   5.933412   5.918326   6.060277   6.173284
## SC(n)    6.215841   6.219830   6.193278   6.252440   6.468638   6.655893
## FPE(n) 415.934349 369.159127 317.910613 298.439383 328.029474 350.572911
##                 7          8
## AIC(n)   5.862792   5.907197
## HQ(n)    6.232931   6.326688
## SC(n)    6.789787   6.957792
## FPE(n) 355.570045 373.613494

AIC best at 4, BIC(SC) best at 3.

grangertest(relativediff ~ pmm.timeseries, order = 3, data = relativediff_pmm)
grangertest(pmm.timeseries ~ relativediff, order = 3, data = relativediff_pmm)
grangertest(relativediff ~ pmm.timeseries, order = 4, data = relativediff_pmm)
grangertest(pmm.timeseries ~ relativediff, order = 4, data = relativediff_pmm)
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:3) + Lags(pmm.timeseries, 1:3)
## Model 2: relativediff ~ Lags(relativediff, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     73                 
## 2     76 -3 0.3755 0.7709
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:3) + Lags(relativediff, 1:3)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:3)
##   Res.Df Df     F Pr(>F)
## 1     73                
## 2     76 -3 0.725 0.5403
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:4) + Lags(pmm.timeseries, 1:4)
## Model 2: relativediff ~ Lags(relativediff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 1.0708 0.3776
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:4) + Lags(relativediff, 1:4)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 0.7628  0.553

No significant result.

Relative與PMM差分

relative_pmmdiff <- cbind(relative.timeseries, pmmdiff)
VARselect(y=na.omit(relative_pmmdiff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      3      2      4 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n)   6.091553   5.947278   5.838513   5.828347   5.828824   5.895855
## HQ(n)    6.165090   6.069840   6.010101   6.048959   6.098461   6.214518
## SC(n)    6.275558   6.253953   6.267859   6.380363   6.503510   6.693212
## FPE(n) 442.143560 382.855881 343.628321 340.556212 341.353477 366.005437
##                 7          8
## AIC(n)   5.956517   5.948695
## HQ(n)    6.324204   6.365407
## SC(n)    6.876543   6.991392
## FPE(n) 390.338449 389.195819

AIC best at 4, BIC(SC) best at 5.

grangertest(relative.timeseries ~ pmmdiff, order = 4, data = relative_pmmdiff)
grangertest(pmmdiff ~ relative.timeseries, order = 4, data = relative_pmmdiff)
grangertest(relative.timeseries ~ pmmdiff, order = 5, data = relative_pmmdiff)
grangertest(pmmdiff ~ relative.timeseries, order = 5, data = relative_pmmdiff)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:4) + Lags(pmmdiff, 1:4)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     71                 
## 2     75 -4 1.0267 0.3995
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:4) + Lags(relative.timeseries, 1:4)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     71                 
## 2     75 -4 0.6345 0.6395
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:5) + Lags(pmmdiff, 1:5)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 0.7802 0.5675
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:5) + Lags(relative.timeseries, 1:5)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 0.6524 0.6606

No significant result.

Relative差分與PMM差分

relativediff_pmmdiff <- cbind(relative.timeseries, pmmdiff)
VARselect(y=na.omit(relativediff_pmmdiff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      3      2      4 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n)   6.091553   5.947278   5.838513   5.828347   5.828824   5.895855
## HQ(n)    6.165090   6.069840   6.010101   6.048959   6.098461   6.214518
## SC(n)    6.275558   6.253953   6.267859   6.380363   6.503510   6.693212
## FPE(n) 442.143560 382.855881 343.628321 340.556212 341.353477 366.005437
##                 7          8
## AIC(n)   5.956517   5.948695
## HQ(n)    6.324204   6.365407
## SC(n)    6.876543   6.991392
## FPE(n) 390.338449 389.195819

AIC best at 5, BIC(SC) best at 2.

grangertest(relative.timeseries ~ pmmdiff, order = 2, data = relativediff_pmmdiff)
grangertest(pmmdiff ~ relative.timeseries, order = 2, data = relativediff_pmmdiff)
grangertest(relative.timeseries ~ pmmdiff, order = 5, data = relativediff_pmmdiff)
grangertest(pmmdiff ~ relative.timeseries, order = 5, data = relativediff_pmmdiff)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:2) + Lags(pmmdiff, 1:2)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     77                 
## 2     79 -2 0.1033 0.9019
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:2) + Lags(relative.timeseries, 1:2)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:2)
##   Res.Df Df     F Pr(>F)
## 1     77                
## 2     79 -2 1.215 0.3023
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:5) + Lags(pmmdiff, 1:5)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 0.7802 0.5675
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:5) + Lags(relative.timeseries, 1:5)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 0.6524 0.6606

No significant result.

##Relative與CPENSO的滯後選擇 & Granger

Relative與CPENSO

relative_cp <- cbind(relative.timeseries, cp.timeseries)
VARselect(y=na.omit(relative_cp), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      3      1      5 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.463226  3.392821  3.338482  3.309696  3.284896  3.364201  3.458966
## HQ(n)   3.538250  3.517861  3.513537  3.534767  3.559983  3.689303  3.834084
## SC(n)   3.651483  3.706583  3.777748  3.874467  3.975172  4.179981  4.400251
## FPE(n) 31.922740 29.762549 28.209637 27.445923 26.830024 29.133169 32.163613
##                8
## AIC(n)  3.417735
## HQ(n)   3.842869
## SC(n)   4.484524
## FPE(n) 31.035873

AIC best at 3, BIC(SC) best at 1.

grangertest(relative.timeseries ~ cp.timeseries, order = 1, data = relative_cp)
grangertest(cp.timeseries ~ relative.timeseries, order = 1, data = relative_cp)
grangertest(relative.timeseries ~ cp.timeseries, order = 3, data = relative_cp)
grangertest(cp.timeseries ~ relative.timeseries, order = 3, data = relative_cp)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:1) + Lags(cp.timeseries, 1:1)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     77                 
## 2     78 -1 0.8173 0.3688
## Granger causality test
## 
## Model 1: cp.timeseries ~ Lags(cp.timeseries, 1:1) + Lags(relative.timeseries, 1:1)
## Model 2: cp.timeseries ~ Lags(cp.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     77                 
## 2     78 -1 0.4553 0.5019
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:3) + Lags(cp.timeseries, 1:3)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     71                 
## 2     74 -3 0.4945 0.6872
## Granger causality test
## 
## Model 1: cp.timeseries ~ Lags(cp.timeseries, 1:3) + Lags(relative.timeseries, 1:3)
## Model 2: cp.timeseries ~ Lags(cp.timeseries, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     71                 
## 2     74 -3 0.9064 0.4425

No significant result.

Relative差分與CPENSO

relativediff_cp <- cbind(relativediff, cp.timeseries)
VARselect(y=na.omit(relative_cp), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      3      1      5 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.463226  3.392821  3.338482  3.309696  3.284896  3.364201  3.458966
## HQ(n)   3.538250  3.517861  3.513537  3.534767  3.559983  3.689303  3.834084
## SC(n)   3.651483  3.706583  3.777748  3.874467  3.975172  4.179981  4.400251
## FPE(n) 31.922740 29.762549 28.209637 27.445923 26.830024 29.133169 32.163613
##                8
## AIC(n)  3.417735
## HQ(n)   3.842869
## SC(n)   4.484524
## FPE(n) 31.035873

AIC best at 3, BIC(SC) best at 1.

grangertest(relativediff ~ cp.timeseries, order = 1, data = relativediff_cp)
grangertest(cp.timeseries ~ relativediff, order = 1, data = relativediff_cp)
grangertest(relativediff ~ cp.timeseries, order = 3, data = relativediff_cp)
grangertest(cp.timeseries ~ relativediff, order = 3, data = relativediff_cp)
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:1) + Lags(cp.timeseries, 1:1)
## Model 2: relativediff ~ Lags(relativediff, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     77 -1 0.0444 0.8338
## Granger causality test
## 
## Model 1: cp.timeseries ~ Lags(cp.timeseries, 1:1) + Lags(relativediff, 1:1)
## Model 2: cp.timeseries ~ Lags(cp.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     76                 
## 2     77 -1 0.3763 0.5414
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:3) + Lags(cp.timeseries, 1:3)
## Model 2: relativediff ~ Lags(relativediff, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     73 -3 0.2144 0.8861
## Granger causality test
## 
## Model 1: cp.timeseries ~ Lags(cp.timeseries, 1:3) + Lags(relativediff, 1:3)
## Model 2: cp.timeseries ~ Lags(cp.timeseries, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     73 -3 1.2304 0.3052

No significant result.

##relative與Temp的滯後選擇 & Granger

Relative與temp

relative_temp <- cbind(relative.timeseries, temp.timeseries)
VARselect(y=na.omit(relative_temp), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      6      5      1      5 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.108597  3.054697  3.029327  3.015821  2.848848  2.848248  2.934677
## HQ(n)   3.182134  3.177259  3.200915  3.236433  3.118485  3.166910  3.302364
## SC(n)   3.292602  3.361372  3.458673  3.567837  3.523534  3.645604  3.854703
## FPE(n) 22.391446 21.222825 20.704988 20.451461 17.338726 17.375145 19.013980
##                8
## AIC(n)  2.903604
## HQ(n)   3.320316
## SC(n)   3.946300
## FPE(n) 18.522593

AIC best at 5, BIC(SC) best at 1.

grangertest(relative.timeseries ~ temp.timeseries, order = 1, data = relative_temp)
grangertest(temp.timeseries ~ relative.timeseries, order = 1, data = relative_temp)
grangertest(relative.timeseries ~ temp.timeseries, order = 5, data = relative_temp)
grangertest(temp.timeseries ~ relative.timeseries, order = 5, data = relative_temp)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:1) + Lags(temp.timeseries, 1:1)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:1)
##   Res.Df Df      F  Pr(>F)  
## 1     80                    
## 2     81 -1 5.5462 0.02097 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:1) + Lags(relative.timeseries, 1:1)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     80                 
## 2     81 -1 0.9709 0.3274
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:5) + Lags(temp.timeseries, 1:5)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 1.0388 0.4021
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:5) + Lags(relative.timeseries, 1:5)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 1.6185 0.1669

temp lead relative by 1.

relative差分與Temp

temp_relative <- cbind(temp.timeseries, relativediff)
VARselect(y=na.omit(temp_relative), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      5      1      5 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.303564  3.203812  3.065128  2.983328  2.930934  2.965134  2.978909
## HQ(n)   3.377592  3.327192  3.237859  3.205411  3.202369  3.285921  3.349048
## SC(n)   3.488963  3.512811  3.497725  3.539525  3.610731  3.768529  3.905904
## FPE(n) 27.211763 24.635994 21.460571 19.799404 18.825188 19.534948 19.882486
##                8
## AIC(n)  3.027754
## HQ(n)   3.447245
## SC(n)   4.078348
## FPE(n) 20.984377

AIC best at 5, BIC best at 1.

grangertest(relativediff ~ temp.timeseries, order = 1, data = temp_relative)
grangertest(temp.timeseries ~ relativediff, order = 1, data = temp_relative)
grangertest(relativediff ~ temp.timeseries, order = 5, data = temp_relative)
grangertest(temp.timeseries ~ relativediff, order = 5, data = temp_relative)
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:1) + Lags(temp.timeseries, 1:1)
## Model 2: relativediff ~ Lags(relativediff, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     79                 
## 2     80 -1 0.4995 0.4818
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:1) + Lags(relativediff, 1:1)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:1)
##   Res.Df Df   F  Pr(>F)  
## 1     79                 
## 2     80 -1 6.9 0.01035 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:5) + Lags(temp.timeseries, 1:5)
## Model 2: relativediff ~ Lags(relativediff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 0.5241 0.7572
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:5) + Lags(relativediff, 1:5)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:5)
##   Res.Df Df     F Pr(>F)
## 1     67                
## 2     72 -5 1.568 0.1811

Temp lead relative by 1. (實質上Temp與Relative同時)



relative與Temp差分

tempdiff_relative <- cbind(tempdiff, relative.timeseries)
VARselect(y=na.omit(tempdiff_relative), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      5      2      5 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.378850  3.244006  3.222985  3.024867  2.895784  2.999609  3.092003
## HQ(n)   3.452388  3.366568  3.394572  3.245479  3.165421  3.318271  3.459690
## SC(n)   3.562856  3.550681  3.652331  3.576883  3.570470  3.796965  4.012029
## FPE(n) 29.339433 25.645966 25.129242 20.637302 18.171935 20.214524 22.253530
##                8
## AIC(n)  3.077397
## HQ(n)   3.494109
## SC(n)   4.120093
## FPE(n) 22.038344

AIC best at 2, BIC(SC) best at 5.

grangertest(relative.timeseries ~ tempdiff, order = 2, data = tempdiff_relative)
grangertest(tempdiff ~ relative.timeseries, order = 2, data = tempdiff_relative)
grangertest(relative.timeseries ~ tempdiff, order = 5, data = tempdiff_relative)
grangertest(tempdiff ~ relative.timeseries, order = 5, data = tempdiff_relative)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:2) + Lags(tempdiff, 1:2)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     77                 
## 2     79 -2 0.2275 0.7971
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:2) + Lags(relative.timeseries, 1:2)
## Model 2: tempdiff ~ Lags(tempdiff, 1:2)
##   Res.Df Df      F  Pr(>F)  
## 1     77                    
## 2     79 -2 2.9904 0.05614 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:5) + Lags(tempdiff, 1:5)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 0.4896 0.7829
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:5) + Lags(relative.timeseries, 1:5)
## Model 2: tempdiff ~ Lags(tempdiff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 1.8696 0.1111

Temp lead relative by 1. (實質上Temp領先Relative兩季)

relative差分與Temp差分

tempdiff_relativediff <- cbind(tempdiff, relativediff)
VARselect(y=na.omit(tempdiff_relativediff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      4      4      4 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.447075  3.207330  3.148747  2.886288  2.942389  3.043069  3.049414
## HQ(n)   3.521103  3.330710  3.321479  3.108371  3.213824  3.363856  3.419553
## SC(n)   3.632474  3.516329  3.581345  3.442485  3.622185  3.846465  3.976409
## FPE(n) 31.411074 24.722812 23.332258 17.968352 19.042065 21.118310 21.334894
##                8
## AIC(n)  3.097476
## HQ(n)   3.516967
## SC(n)   4.148071
## FPE(n) 22.499667

AIC, BIC(SC) best at 4.

grangertest(relativediff ~ tempdiff, order = 4, data = tempdiff_relativediff)
grangertest(tempdiff ~ relativediff, order = 4, data = tempdiff_relativediff)
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:4) + Lags(tempdiff, 1:4)
## Model 2: relativediff ~ Lags(relativediff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 0.6561 0.6245
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:4) + Lags(relativediff, 1:4)
## Model 2: tempdiff ~ Lags(tempdiff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 1.9152 0.1175

No significant result.

relative與Tempde

tempde_relative <- cbind(tempde.timeseries, relative.timeseries)
VARselect(y=na.omit(tempde_relative), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      5      1      5 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.126646  3.111726  3.071634  3.049005  2.869735  2.873162  2.960835
## HQ(n)   3.200183  3.234288  3.243221  3.269617  3.139372  3.191824  3.328522
## SC(n)   3.310651  3.418401  3.500979  3.601021  3.544421  3.670518  3.880861
## FPE(n) 22.799261 22.468319 21.599731 21.141502 17.704690 17.813465 19.517913
##                8
## AIC(n)  2.935090
## HQ(n)   3.351802
## SC(n)   3.977787
## FPE(n) 19.115080

AIC best at 5, BIC best at 1.

grangertest(relative.timeseries ~ tempde.timeseries, order = 1, data = tempde_relative)
grangertest(tempde.timeseries ~ relative.timeseries, order = 1, data = tempde_relative)
grangertest(relative.timeseries ~ tempde.timeseries, order = 5, data = tempde_relative)
grangertest(tempde.timeseries ~ relative.timeseries, order = 5, data = tempde_relative)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:1) + Lags(tempde.timeseries, 1:1)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     80                 
## 2     81 -1 2.6703 0.1062
## Granger causality test
## 
## Model 1: tempde.timeseries ~ Lags(tempde.timeseries, 1:1) + Lags(relative.timeseries, 1:1)
## Model 2: tempde.timeseries ~ Lags(tempde.timeseries, 1:1)
##   Res.Df Df     F Pr(>F)
## 1     80                
## 2     81 -1 0.243 0.6234
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:5) + Lags(tempde.timeseries, 1:5)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:5)
##   Res.Df Df     F Pr(>F)
## 1     68                
## 2     73 -5 0.668  0.649
## Granger causality test
## 
## Model 1: tempde.timeseries ~ Lags(tempde.timeseries, 1:5) + Lags(relative.timeseries, 1:5)
## Model 2: tempde.timeseries ~ Lags(tempde.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 1.5496 0.1862

No significant result.

relative差分與Tempde

tempde_relativediff <- cbind(tempde.timeseries, relativediff)
VARselect(y=na.omit(tempde_relativediff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      4      1      5 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n)  3.258781  3.169801  3.045561  2.960102  2.922294  2.944407  2.953100
## HQ(n)   3.332809  3.293181  3.218293  3.182185  3.193730  3.265194  3.323239
## SC(n)   3.444180  3.478800  3.478159  3.516299  3.602091  3.747803  3.880095
## FPE(n) 26.020023 23.812181 21.044743 19.344842 18.663246 19.134218 19.375907
##                8
## AIC(n)  2.997826
## HQ(n)   3.417317
## SC(n)   4.048420
## FPE(n) 20.365660

AIC best at 5, BIC best at 1.

grangertest(relativediff ~ tempde.timeseries, order = 1, data = tempde_relativediff)
grangertest(tempde.timeseries ~ relativediff, order = 1, data = tempde_relativediff)
grangertest(relativediff ~ tempde.timeseries, order = 5, data = tempde_relativediff)
grangertest(tempde.timeseries ~ relativediff, order = 5, data = tempde_relativediff)
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:1) + Lags(tempde.timeseries, 1:1)
## Model 2: relativediff ~ Lags(relativediff, 1:1)
##   Res.Df Df     F Pr(>F)
## 1     79                
## 2     80 -1 0.363 0.5485
## Granger causality test
## 
## Model 1: tempde.timeseries ~ Lags(tempde.timeseries, 1:1) + Lags(relativediff, 1:1)
## Model 2: tempde.timeseries ~ Lags(tempde.timeseries, 1:1)
##   Res.Df Df      F  Pr(>F)  
## 1     79                    
## 2     80 -1 6.7188 0.01136 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:5) + Lags(tempde.timeseries, 1:5)
## Model 2: relativediff ~ Lags(relativediff, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 0.4853  0.786
## Granger causality test
## 
## Model 1: tempde.timeseries ~ Lags(tempde.timeseries, 1:5) + Lags(relativediff, 1:5)
## Model 2: tempde.timeseries ~ Lags(tempde.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     67                 
## 2     72 -5 1.5664 0.1816

Temp lead relative by 1 and 5. (實質上Temp與Relative同時)

##relative與Salt的滯後選擇 & Granger Causality Test

relative與salt

salt_relative <- cbind(salt.timeseries, relative.timeseries)
VARselect(y=na.omit(salt_relative), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      5      5      1      5 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n)   4.927403   4.967918   4.921236   4.759197   4.701407   4.759142
## HQ(n)    5.000941   5.090480   5.092824   4.979809   4.971045   5.077804
## SC(n)    5.111409   5.274593   5.350582   5.311212   5.376093   5.556498
## FPE(n) 138.031998 143.782043 137.315830 116.912960 110.553747 117.440846
##                 7          8
## AIC(n)   4.832425   4.783211
## HQ(n)    5.200112   5.199923
## SC(n)    5.752452   5.825908
## FPE(n) 126.839555 121.340239

AIC best at 5, BIC best at 1.

grangertest(relative.timeseries ~ salt.timeseries, order = 1, data = salt_relative)
grangertest(salt.timeseries ~ relative.timeseries, order = 1, data = salt_relative)
grangertest(relative.timeseries ~ salt.timeseries, order = 5, data = salt_relative)
grangertest(salt.timeseries ~ relative.timeseries, order = 5, data = salt_relative)
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:1) + Lags(salt.timeseries, 1:1)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     80                 
## 2     81 -1 1.3371  0.251
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:1) + Lags(relative.timeseries, 1:1)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     80                 
## 2     81 -1 0.1365 0.7127
## Granger causality test
## 
## Model 1: relative.timeseries ~ Lags(relative.timeseries, 1:5) + Lags(salt.timeseries, 1:5)
## Model 2: relative.timeseries ~ Lags(relative.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 1.4372 0.2222
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:5) + Lags(relative.timeseries, 1:5)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:5)
##   Res.Df Df      F Pr(>F)
## 1     68                 
## 2     73 -5 1.3236 0.2646

No significant result.

relative差分與Salt

bio_salt <- cbind(salt.timeseries, relativediff)
VARselect(y=na.omit(bio_salt), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      4      4      4 
## 
## $criteria
##                 1          2          3         4         5          6
## AIC(n)   5.017041   4.843318   4.714345  4.541875  4.567478   4.671278
## HQ(n)    5.091069   4.966697   4.887077  4.763959  4.838913   4.992066
## SC(n)    5.202441   5.152316   5.146943  5.098073  5.247274   5.474674
## FPE(n) 150.976905 126.939922 111.657395 94.085086 96.712217 107.592390
##                 7          8
## AIC(n)   4.618820   4.602504
## HQ(n)    4.988959   5.021995
## SC(n)    5.545815   5.653099
## FPE(n) 102.488486 101.344802

AIC, BIC(SC) best at 4.

grangertest(relativediff ~ salt.timeseries, order = 4, data = bio_salt)
grangertest(salt.timeseries ~ relativediff, order = 4, data = bio_salt)
## Granger causality test
## 
## Model 1: relativediff ~ Lags(relativediff, 1:4) + Lags(salt.timeseries, 1:4)
## Model 2: relativediff ~ Lags(relativediff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 0.8599 0.4924
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:4) + Lags(relativediff, 1:4)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 1.6868 0.1628

No significant result.

relative1差分與Salt

bio1_salt <- cbind(salt.timeseries, relative1diff)
VARselect(y=na.omit(bio1_salt), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      4      4      4 
## 
## $criteria
##                 1          2          3          4          5          6
## AIC(n)   5.051432   4.893962   4.799410   4.635047   4.732859   4.791699
## HQ(n)    5.125460   5.017342   4.972142   4.857131   5.004294   5.112486
## SC(n)    5.236831   5.202960   5.232008   5.191245   5.412656   5.595095
## FPE(n) 156.259432 133.534247 121.571196 103.272546 114.105216 121.361131
##                 7          8
## AIC(n)   4.793724   4.751889
## HQ(n)    5.163863   5.171380
## SC(n)    5.720720   5.802484
## FPE(n) 122.077320 117.673462

AIC best at 1, BIC(SC) best at 2.

grangertest(relative1diff ~ salt.timeseries, order = 4, data = bio1_salt)
grangertest(salt.timeseries ~ relative1diff, order = 4, data = bio1_salt)
## Granger causality test
## 
## Model 1: relative1diff ~ Lags(relative1diff, 1:4) + Lags(salt.timeseries, 1:4)
## Model 2: relative1diff ~ Lags(relative1diff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 1.6704 0.1666
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:4) + Lags(relative1diff, 1:4)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     70                 
## 2     74 -4 1.8212 0.1344

No significant result.

##Temp與PMM的滯後選擇 & Granger

Temp與PMM

temp_pmm <- cbind(temp.timeseries, pmm.timeseries)
VARselect(y=na.omit(temp_pmm), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      3      3      3      3 
## 
## $criteria
##                1         2           3          4          5         6
## AIC(n) 0.2589601 0.1756239 -0.01794214 0.03566198 0.06342978 0.1163690
## HQ(n)  0.3270095 0.2890395  0.14083963 0.23980997 0.31294398 0.4112494
## SC(n)  0.4278695 0.4571395  0.37617963 0.54238997 0.68276398 0.8483094
## FPE(n) 1.2956506 1.1922818  0.98287977 1.03779402 1.06828936 1.1283142
##                7         8
## AIC(n) 0.1906305 0.1807359
## HQ(n)  0.5308772 0.5663488
## SC(n)  1.0351772 1.1378888
## FPE(n) 1.2181721 1.2099386

AIC, BIC(SC) best at 3.

grangertest(temp.timeseries ~ pmm.timeseries, order = 3, data = temp_pmm)
grangertest(pmm.timeseries ~ temp.timeseries, order = 3, data = temp_pmm)
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:3) + Lags(pmm.timeseries, 1:3)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:3)
##   Res.Df Df     F  Pr(>F)  
## 1     86                   
## 2     89 -3 3.098 0.03099 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:3) + Lags(temp.timeseries, 1:3)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:3)
##   Res.Df Df      F  Pr(>F)  
## 1     86                    
## 2     89 -3 3.9452 0.01093 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

PMM 領先 Temp 3季; Temp 領先 PMM 3季.

Temp差分與PMM

tempdiff_pmm <- cbind(tempdiff, pmm.timeseries)
VARselect(y=na.omit(tempdiff_pmm), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      3      3      4 
## 
## $criteria
##                1         2         3          4         5         6         7
## AIC(n) 0.5346566 0.3465812 0.1300685 0.08766693 0.1421680 0.2154293 0.2888470
## HQ(n)  0.6031355 0.4607128 0.2898527 0.29310386 0.3932576 0.5121715 0.6312419
## SC(n)  0.7047192 0.6300189 0.5268813 0.59785482 0.7657310 0.9523673 1.1391601
## FPE(n) 1.7069553 1.4145830 1.1397007 1.09324743 1.1559115 1.2459999 1.3442083
##                8
## AIC(n) 0.3104210
## HQ(n)  0.6984685
## SC(n)  1.2741092
## FPE(n) 1.3779586

AIC best at 4, BIC(SC) best at 3.

grangertest(tempdiff ~ pmm.timeseries, order = 3, data = tempdiff_pmm)
grangertest(pmm.timeseries ~ tempdiff, order = 3, data = tempdiff_pmm)
grangertest(tempdiff ~ pmm.timeseries, order = 4, data = tempdiff_pmm)
grangertest(pmm.timeseries ~ tempdiff, order = 4, data = tempdiff_pmm)
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:3) + Lags(pmm.timeseries, 1:3)
## Model 2: tempdiff ~ Lags(tempdiff, 1:3)
##   Res.Df Df      F  Pr(>F)  
## 1     85                    
## 2     88 -3 2.7238 0.04927 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:3) + Lags(tempdiff, 1:3)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:3)
##   Res.Df Df     F  Pr(>F)  
## 1     85                   
## 2     88 -3 2.817 0.04392 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:4) + Lags(pmm.timeseries, 1:4)
## Model 2: tempdiff ~ Lags(tempdiff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     82                 
## 2     86 -4 1.0453  0.389
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:4) + Lags(tempdiff, 1:4)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:4)
##   Res.Df Df      F  Pr(>F)  
## 1     82                    
## 2     86 -4 2.3089 0.06478 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

PMM lead Temp by 3; Temp lead PMM by 3 and 4. (實質上PMM領先Temp 4季;Temp領先PMM 2和3季)

Temp與PMM差分

temp_pmmdiff <- cbind(temp.timeseries, pmmdiff)
VARselect(y=na.omit(temp_pmmdiff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      3      3      2      3 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n) 0.4747269 0.2168313 0.1543781 0.1744728 0.1818065 0.2263362 0.2233073
## HQ(n)  0.5432059 0.3309629 0.3141624 0.3799097 0.4328961 0.5230785 0.5657021
## SC(n)  0.6447896 0.5002690 0.5511909 0.6846607 0.8053695 0.9632743 1.0736204
## FPE(n) 1.6076631 1.2424496 1.1677459 1.1923885 1.2026503 1.2596643 1.2589342
##                8
## AIC(n) 0.2540264
## HQ(n)  0.6420739
## SC(n)  1.2177146
## FPE(n) 1.3023997

AIC best at 3, BIC(SC) best at 2.

grangertest(temp.timeseries ~ pmmdiff, order = 2, data = temp_pmmdiff)
grangertest(pmmdiff ~ temp.timeseries, order = 2, data = temp_pmmdiff)
grangertest(temp.timeseries ~ pmmdiff, order = 3, data = temp_pmmdiff)
grangertest(pmmdiff ~ temp.timeseries, order = 3, data = temp_pmmdiff)
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:2) + Lags(pmmdiff, 1:2)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:2)
##   Res.Df Df      F  Pr(>F)  
## 1     88                    
## 2     90 -2 3.8896 0.02406 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:2) + Lags(temp.timeseries, 1:2)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     88                 
## 2     90 -2 0.1097 0.8962
## Granger causality test
## 
## Model 1: temp.timeseries ~ Lags(temp.timeseries, 1:3) + Lags(pmmdiff, 1:3)
## Model 2: temp.timeseries ~ Lags(temp.timeseries, 1:3)
##   Res.Df Df      F  Pr(>F)  
## 1     85                    
## 2     88 -3 2.2637 0.08689 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:3) + Lags(temp.timeseries, 1:3)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     85                 
## 2     88 -3 1.6811 0.1772

PMM lead Temp by 2 and 3. (實質上PMM領先Temp 3和4季)

Temp差分與PMM差分

tempdiff_pmmdiff <- cbind(tempdiff, pmmdiff)
VARselect(y=na.omit(tempdiff_pmmdiff), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      3      2      4 
## 
## $criteria
##                1         2         3         4         5         6         7
## AIC(n) 0.6492568 0.2127901 0.1605420 0.1354522 0.1936255 0.2625013 0.2667114
## HQ(n)  0.7177358 0.3269217 0.3203263 0.3408892 0.4447150 0.5592436 0.6091063
## SC(n)  0.8193194 0.4962278 0.5573548 0.6456401 0.8171884 0.9994394 1.1170246
## FPE(n) 1.9142225 1.2374387 1.1749660 1.1467569 1.2169486 1.3060540 1.3147804
##                8
## AIC(n) 0.3140577
## HQ(n)  0.7021052
## SC(n)  1.2777459
## FPE(n) 1.3829789

AIC best at 4, BIC(SC) best at 2.

grangertest(tempdiff ~ pmmdiff, order = 2, data = tempdiff_pmmdiff)
grangertest(pmmdiff ~ tempdiff, order = 2, data = tempdiff_pmmdiff)
grangertest(tempdiff ~ pmmdiff, order = 4, data = tempdiff_pmmdiff)
grangertest(pmmdiff ~ tempdiff, order = 4, data = tempdiff_pmmdiff)
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:2) + Lags(pmmdiff, 1:2)
## Model 2: tempdiff ~ Lags(tempdiff, 1:2)
##   Res.Df Df      F  Pr(>F)  
## 1     88                    
## 2     90 -2 3.7053 0.02851 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:2) + Lags(tempdiff, 1:2)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:2)
##   Res.Df Df      F Pr(>F)
## 1     88                 
## 2     90 -2 2.0579 0.1338
## Granger causality test
## 
## Model 1: tempdiff ~ Lags(tempdiff, 1:4) + Lags(pmmdiff, 1:4)
## Model 2: tempdiff ~ Lags(tempdiff, 1:4)
##   Res.Df Df      F Pr(>F)
## 1     82                 
## 2     86 -4 1.0528 0.3853
## Granger causality test
## 
## Model 1: pmmdiff ~ Lags(pmmdiff, 1:4) + Lags(tempdiff, 1:4)
## Model 2: pmmdiff ~ Lags(pmmdiff, 1:4)
##   Res.Df Df      F  Pr(>F)  
## 1     82                    
## 2     86 -4 2.3456 0.06135 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

PMM 領先 Temp 2季; Temp 領先 PMM by 4季.

##Salt與PMM的滯後選擇 & Granger

Salt與PMM

salt_pmm <- cbind(salt.timeseries, pmm.timeseries)
VARselect(y=na.omit(salt_pmm), lag.max = 8, type = c("const"))
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##      4      1      1      4 
## 
## $criteria
##               1        2        3        4        5        6        7        8
## AIC(n) 1.793458 1.775214 1.764027 1.733818 1.804333 1.883607 1.932778 1.961071
## HQ(n)  1.866995 1.897776 1.935615 1.954430 2.073970 2.202269 2.300465 2.377782
## SC(n)  1.977463 2.081889 2.193373 2.285834 2.479019 2.680963 2.852804 3.003767
## FPE(n) 6.010691 5.903791 5.842007 5.674889 6.100847 6.622013 6.981580 7.217133

AIC best at 3, BIC(SC) best at 1.

grangertest(salt.timeseries ~ pmm.timeseries, order = 1, data = salt_pmm)
grangertest(pmm.timeseries ~ salt.timeseries, order = 1, data = salt_pmm)
grangertest(salt.timeseries ~ pmm.timeseries, order = 3, data = salt_pmm)
grangertest(pmm.timeseries ~ salt.timeseries, order = 3, data = salt_pmm)
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:1) + Lags(pmm.timeseries, 1:1)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:1)
##   Res.Df Df      F   Pr(>F)   
## 1     80                      
## 2     81 -1 8.6202 0.004339 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:1) + Lags(salt.timeseries, 1:1)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:1)
##   Res.Df Df      F Pr(>F)
## 1     80                 
## 2     81 -1 0.3919 0.5331
## Granger causality test
## 
## Model 1: salt.timeseries ~ Lags(salt.timeseries, 1:3) + Lags(pmm.timeseries, 1:3)
## Model 2: salt.timeseries ~ Lags(salt.timeseries, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     74                 
## 2     77 -3 2.0146 0.1192
## Granger causality test
## 
## Model 1: pmm.timeseries ~ Lags(pmm.timeseries, 1:3) + Lags(salt.timeseries, 1:3)
## Model 2: pmm.timeseries ~ Lags(pmm.timeseries, 1:3)
##   Res.Df Df      F Pr(>F)
## 1     74                 
## 2     77 -3 0.4773  0.699

PMM 領先 salt 1季.