Analisi dataset Cynomys

Giorgio Garziano

Sintesi dei risultati

Il dataset “vitelli” e’ stato analizzato allo scopo di verificare relazioni tra le serie temporali basate sulle misure storiche di ammoniaca, acido solfidrico e diossido di carbonio.

Dal punto di vista dell’analisi prendendo ogni serie temporale singolarmente:

Dal punto di vista invece dell’analisi che considera le relazioni tra le serie temporali:

Si puo’ definire un modello di predizione dei picchi positivi dell’ammoniaca in funzione di valori passati di ammoniaca e diossido di carbonio.

I valori passati di ammoniaca giocano un ruolo importante per la previsione dei picchi di ammoniaca stessa.

Risultati dell’analisi

Analisi esplorativa

Analisi univariata

Analisi multivariata

Predizione dei picchi di ammoniaca

Strumenti utilizzati

Si e’ fatto uso del linguaggio R in ambiente RStudio su Windows. Le funzionalità utilizzate sono fornite da 16 librerie R (“packages”).

Questa presentazione viene generata per mezzo della stesura di un file R markdown composto sia da codice che testo. I grafici sono generati dal codice incluso.

La compilazione del file R markdown produce un file HTML che puo’ essere visualizzato in modalità di presentazione a slide.

Analisi esplorativa

vitelli <- read.csv("vitelli4.csv", header =T, stringsAsFactors = F, sep=",")
head(vitelli)
##     Timestamp                 ISO.Date temperature humidity ammonia
## 1 1.51835e+12 2018-02-11T13:03:48.013Z        10.5     63.6      11
## 2 1.51835e+12 2018-02-11T13:03:48.014Z        10.5     63.6      11
## 3 1.51836e+12 2018-02-11T13:18:47.939Z        10.6     62.7      10
## 4 1.51836e+12 2018-02-11T13:18:47.944Z        10.6     62.8      10
## 5 1.51836e+12 2018-02-11T13:33:48.419Z        10.6     63.8      10
## 6 1.51836e+12 2018-02-11T13:33:48.420Z        10.6     63.5      11
##   methane hydrogensulfide carbondioxide lux security
## 1       0               0           554 714     1023
## 2       0               0           558 738     1023
## 3       0               0           548 763     1023
## 4       0               0           548 763     1023
## 5       0               0           541 489     1023
## 6       0               0           548 501     1023
vitelli <- vitelli[,-1]
sel_idx <- compute_duplicate_dates()
head(vitelli[sel_idx,], 20)
##                    ISO.Date temperature humidity ammonia methane
## 1  2018-02-11T13:03:48.013Z        10.5     63.6      11       0
## 3  2018-02-11T13:18:47.939Z        10.6     62.7      10       0
## 5  2018-02-11T13:33:48.419Z        10.6     63.8      10       0
## 7  2018-02-11T13:48:48.357Z        10.5     64.4      11       0
## 9  2018-02-11T14:03:47.871Z        10.6     62.9      11       0
## 10 2018-02-11T14:18:47.294Z        10.6     63.8      11       0
## 12 2018-02-11T14:33:48.456Z        10.5     63.2      10       0
## 14 2018-02-11T14:48:47.930Z        10.7     64.2      11       0
## 16 2018-02-11T15:03:47.928Z        10.6     63.6      11       0
## 18 2018-02-11T15:18:47.654Z        10.6     63.0      11       0
## 19 2018-02-11T15:33:48.518Z        10.6     64.3      11       0
## 21 2018-02-11T15:48:47.932Z        10.6     64.0      12       0
## 23 2018-02-11T16:03:48.580Z        10.6     64.1      11       0
## 25 2018-02-11T16:18:47.751Z        10.6     63.4      11       0
## 27 2018-02-11T16:33:48.190Z        10.5     65.1      11       0
## 28 2018-02-11T16:48:48.734Z        10.6     66.8      12       0
## 30 2018-02-11T17:03:48.272Z        11.0     66.9      12       0
## 32 2018-02-11T17:18:48.120Z        11.0     68.2      13       0
## 34 2018-02-11T17:33:48.095Z        10.9     69.1      13       0
## 36 2018-02-11T17:48:48.639Z        10.7     69.5      15       0
##    hydrogensulfide carbondioxide lux security
## 1                0           554 714     1023
## 3                0           548 763     1023
## 5                0           541 489     1023
## 7                0           548 750     1023
## 9                0           545 738     1023
## 10               0           551 692     1023
## 12               0           558 582     1023
## 14               0           561 519     1023
## 16               0           551 467     1023
## 18               0           554 415     1023
## 19               0           561 366     1023
## 21               0           574 289     1023
## 23               0           577 195     1023
## 25               0           561  78     1023
## 27               0           567  29     1023
## 28               0           580  76     1023
## 30               0           622  74     1023
## 32               0           648   2     1023
## 34               0           648   2     1023
## 36               0           670   2     1022
tail(vitelli[sel_idx,], 20)
##                       ISO.Date temperature humidity ammonia methane
## 22967 2018-07-28T03:16:27.081Z        23.2     70.5      NA       0
## 22968 2018-07-28T03:31:27.601Z        23.2     70.3      NA       0
## 22969 2018-07-28T03:46:27.181Z        23.0     70.5      NA       0
## 22971 2018-07-28T04:01:27.241Z        23.1     71.0      NA       0
## 22972 2018-07-28T04:16:27.339Z        22.9     70.6      NA       0
## 22974 2018-07-28T04:31:27.961Z        22.9     71.3      NA       0
## 22976 2018-07-28T04:46:27.281Z        23.0     71.7      NA       0
## 22977 2018-07-28T05:01:27.300Z        23.8     70.7      NA       0
## 22979 2018-07-28T05:16:27.342Z        25.8     66.3      NA       0
## 22980 2018-07-28T05:31:27.661Z        25.5     66.7      NA       0
## 22982 2018-07-28T05:46:27.424Z        24.8     70.0      NA       0
## 22983 2018-07-28T06:01:27.400Z        25.0     68.0      NA       0
## 22984 2018-07-28T06:16:27.523Z        25.4     67.2      NA       0
## 22985 2018-07-28T06:31:27.762Z        25.6     65.4      NA       0
## 22986 2018-07-28T06:46:27.521Z        25.9     64.9      NA       0
## 22987 2018-07-28T07:01:27.560Z        26.3     64.8      NA       0
## 22988 2018-07-28T07:16:27.621Z        26.7     64.6      NA       0
## 22990 2018-07-28T07:31:27.804Z        27.1     63.3      NA       0
## 22991 2018-07-28T08:01:27.846Z          NA       NA      NA      NA
## 22992 2018-07-28T08:31:28.061Z          NA       NA      NA      NA
##       hydrogensulfide carbondioxide  lux security
## 22967               0           561    4     1023
## 22968               0           561    9     1023
## 22969               0           570   36     1023
## 22971               0           564  111     1023
## 22972               0           567  316     1023
## 22974               0           570  532     1023
## 22976               0           567  881     1023
## 22977               0           564 2083     1023
## 22979               0           570 1602     1023
## 22980               0           551 1602     1023
## 22982               0           541 1716     1023
## 22983               0           532 1846     1023
## 22984               0           535 1998     1023
## 22985               0           532 1998     1023
## 22986               0           532 2083     1023
## 22987               0           545 2176     1023
## 22988               0           538 2277     1023
## 22990               0           551 2277     1023
## 22991              NA            NA   NA       NA
## 22992              NA            NA   NA       NA
vitelli <- vitelli[sel_idx,]
dim(vitelli)
## [1] 11496     9

Analisi univariata

A seguire test applicati alle singole serie temporali considerandole una ad una.

Statistiche di base

basicStats(vitelli[,"ammonia"])
##             X..vitelli..ammonia
## nobs               11496.000000
## NAs                 5376.000000
## Minimum                0.000000
## Maximum               55.000000
## 1. Quartile            5.000000
## 3. Quartile            8.000000
## Mean                   7.426748
## Median                 6.000000
## Sum                45451.700000
## SE Mean                0.052268
## LCL Mean               7.324285
## UCL Mean               7.529212
## Variance              16.719557
## Stdev                  4.088956
## Skewness               2.211014
## Kurtosis               8.234634
basicStats(vitelli[,"hydrogensulfide"])
##             X..vitelli..hydrogensulfide
## nobs                       11496.000000
## NAs                          117.000000
## Minimum                        0.000000
## Maximum                      441.000000
## 1. Quartile                    0.000000
## 3. Quartile                    0.000000
## Mean                           0.936198
## Median                         0.000000
## Sum                        10653.000000
## SE Mean                        0.131505
## LCL Mean                       0.678426
## UCL Mean                       1.193971
## Variance                     196.783238
## Stdev                         14.027945
## Skewness                      25.079925
## Kurtosis                     716.289731
basicStats(vitelli[,"carbondioxide"])
##             X..vitelli..carbondioxide
## nobs                     1.149600e+04
## NAs                      1.170000e+02
## Minimum                  4.250000e+02
## Maximum                  9.730000e+02
## 1. Quartile              5.380000e+02
## 3. Quartile              5.700000e+02
## Mean                     5.592795e+02
## Median                   5.480000e+02
## Sum                      6.364041e+06
## SE Mean                  3.068290e-01
## LCL Mean                 5.586780e+02
## UCL Mean                 5.598809e+02
## Variance                 1.071262e+03
## Stdev                    3.273014e+01
## Skewness                 2.644670e+00
## Kurtosis                 1.244439e+01
basicStats(vitelli[,"methane"])
##             X..vitelli..methane
## nobs                      11496
## NAs                         117
## Minimum                       0
## Maximum                       0
## 1. Quartile                   0
## 3. Quartile                   0
## Mean                          0
## Median                        0
## Sum                           0
## SE Mean                       0
## LCL Mean                      0
## UCL Mean                      0
## Variance                      0
## Stdev                         0
## Skewness                    NaN
## Kurtosis                    NaN
basicStats(vitelli[,"temperature"])
##             X..vitelli..temperature
## nobs                   11496.000000
## NAs                      117.000000
## Minimum                    3.500000
## Maximum                   32.800000
## 1. Quartile               11.500000
## 3. Quartile               24.700000
## Mean                      18.663749
## Median                    20.100000
## Sum                   212374.800000
## SE Mean                    0.068112
## LCL Mean                  18.530237
## UCL Mean                  18.797261
## Variance                  52.790615
## Stdev                      7.265715
## Skewness                  -0.191441
## Kurtosis                  -1.226906
basicStats(vitelli[,"humidity"])
##             X..vitelli..humidity
## nobs                11496.000000
## NAs                   117.000000
## Minimum                32.800000
## Maximum                92.000000
## 1. Quartile            61.300000
## 3. Quartile            77.100000
## Mean                   68.329423
## Median                 69.700000
## Sum                777520.500000
## SE Mean                 0.104116
## LCL Mean               68.125336
## UCL Mean               68.533509
## Variance              123.350989
## Stdev                  11.106349
## Skewness               -0.568060
## Kurtosis               -0.247551
basicStats(vitelli[,"lux"])
##             X..vitelli..lux
## nobs           1.149600e+04
## NAs            1.170000e+02
## Minimum        0.000000e+00
## Maximum        5.639000e+03
## 1. Quartile    4.000000e+00
## 3. Quartile    1.063000e+03
## Mean           5.671657e+02
## Median         2.180000e+02
## Sum            6.453779e+06
## SE Mean        6.351051e+00
## LCL Mean       5.547166e+02
## UCL Mean       5.796149e+02
## Variance       4.589816e+05
## Stdev          6.774818e+02
## Skewness       1.048104e+00
## Kurtosis       4.269390e-01
par(mfrow=c(1,2))
plot(vitelli$temperature, type='l', ylab = "temperatura"); grid()
boxplot(vitelli$temperature, main = "temperatura", col = "palegreen4")

par(mfrow=c(1,2))
plot(vitelli$humidity, type='l', ylab = "umidità"); grid()
boxplot(vitelli$humidity, main = "umidità", col = "palegreen4")

par(mfrow=c(1,2))
plot(vitelli$lux, type='l', ylab = "luminosità"); grid()
boxplot(vitelli$lux, main = "luminosità", col = "palegreen4")

par(mfrow=c(1,2))
plot(vitelli$ammonia, type='l', ylab = "ammoniaca"); grid()
boxplot(vitelli$ammonia, main = "ammonia", col = "palegreen4")

par(mfrow=c(1,2))
plot(vitelli$hydrogensulfide, type='l', ylab = "acido solfidrico"); grid()
boxplot(vitelli$ammonia, main = "acido solfidrico", col = "palegreen4")

par(mfrow=c(1,2))
plot(vitelli$carbondioxide, type='l', ylab = "diossido di carbonio"); grid()
boxplot(vitelli$carbondioxide, main = "diossido di carbonio", col = "palegreen4")

par(mfrow=c(1,2))
plot(vitelli$methane, type='l', ylab = "metano"); grid()
boxplot(vitelli$methane, main = "metano", col = "palegreen4")

var_of_interest <-  c("ISO.Date", "ammonia", "hydrogensulfide", "carbondioxide")
vitelli <- vitelli[,var_of_interest]
vitelli <- vitelli[complete.cases(vitelli),]
dim(vitelli)
## [1] 6120    4
vitelli <- vitelli[-(1:41),]
head(vitelli)
##                    ISO.Date ammonia hydrogensulfide carbondioxide
## 83 2018-02-12T00:03:47.495Z      14               0           677
## 85 2018-02-12T00:18:46.789Z      13               0           677
## 87 2018-02-12T00:33:48.071Z      14               0           674
## 89 2018-02-12T00:48:48.216Z      14               0           683
## 91 2018-02-12T01:03:48.944Z      15               0           699
## 93 2018-02-12T01:18:47.624Z      14               0           686
par(mfrow=c(1,3))
boxplot(vitelli[,"ammonia"], main = "ammonia", col = "palegreen4")
boxplot(vitelli[,"hydrogensulfide"], main = "hydrogensulfide", col = "palegreen4")
boxplot(vitelli[,"carbondioxide"], main = "carbondioxide", col = "palegreen4")

t.test(vitelli[,"ammonia"])
## 
##  One Sample t-test
## 
## data:  vitelli[, "ammonia"]
## t = 141.41, df = 6078, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  7.287375 7.492260
## sample estimates:
## mean of x 
##  7.389817
t.test(vitelli[,"hydrogensulfide"])
## 
##  One Sample t-test
## 
## data:  vitelli[, "hydrogensulfide"]
## t = 6.0021, df = 6078, p-value = 2.06e-09
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  0.9152072 1.8030030
## sample estimates:
## mean of x 
##  1.359105
t.test(vitelli[,"carbondioxide"])
## 
##  One Sample t-test
## 
## data:  vitelli[, "carbondioxide"]
## t = 1177, df = 6078, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  559.2848 561.1508
## sample estimates:
## mean of x 
##  560.2178
par(mfrow=c(1,3))
plot(density(vitelli[,"ammonia"]), main = "ammonia")
plot(density(vitelli[,"hydrogensulfide"]), main = "hydrogensulfide")
plot(density(vitelli[,"carbondioxide"]), main = "carbondioxide")

gas <- vitelli[complete.cases(vitelli), -1]
rownames(gas) <- NULL
head(gas)
##   ammonia hydrogensulfide carbondioxide
## 1      14               0           677
## 2      13               0           677
## 3      14               0           674
## 4      14               0           683
## 5      15               0           699
## 6      14               0           686
plot(gas$ammonia, type='l', main ="ammonia", xlab= "sample", ylab = "ammonia"); grid()

plot(gas$hydrogensulfide, type='l', main = "hydrogensulfide", xlab= "sample", ylab = "hydrogensulfide"); grid()

plot(gas$carbondioxide, type='l', main = "carbondioxide", xlab= "sample", ylab = "carbondioxide"); grid()

gas_n <- data.frame(sample=seq(1:nrow(gas)), ammonia_n = normalize(gas$ammonia, method="range"), hydrogensulfide_n = normalize(gas$hydrogensulfide, method="range"), carbondioxide_n = normalize(gas$carbondioxide, method="range"))
gas_n_wtol <- melt(gas_n, id.vars="sample", measure.vars=c("ammonia_n", "hydrogensulfide_n", "carbondioxide_n"))
ggplot(gas_n_wtol, aes(x=sample, y=value, color = variable)) + geom_line(size = 0.6) + theme_light()

gas_n_wtol <- melt(gas_n[1:1000,], id.vars="sample", 
                   measure.vars=c("ammonia_n", "hydrogensulfide_n", "carbondioxide_n"))
ggplot(gas_n_wtol, aes(x=sample, y=value, color = variable)) + geom_line(size = 0.6) + theme_light()

gas_n_wtol <- melt(gas_n[1001:2000,], id.vars="sample", 
                   measure.vars=c("ammonia_n", "hydrogensulfide_n", "carbondioxide_n"))
ggplot(gas_n_wtol, aes(x=sample, y=value, color = variable)) + geom_line(size = 0.6) + theme_light()

Serie temporali in esame

ammonia_ts <- ts(gas$ammonia, frequency = 96)
hydrogensulfide_ts <- ts(gas$hydrogensulfide, frequency = 96)
carbondioxide_ts <- ts(gas$carbondioxide, frequency = 96)
ammonia_ts_dec <- decompose(ammonia_ts) 
plot(ammonia_ts_dec); grid()

plot(decompose(hydrogensulfide_ts));  grid()

plot(decompose(carbondioxide_ts));  grid()

tsdisplay(ammonia_ts, lag.max = 96); grid()

tsdisplay(hydrogensulfide_ts, lag.max = 96); grid()

tsdisplay(carbondioxide_ts, lag.max = 96); grid()

Test per effetti ARCH

Scopo dei seguenti test e’ verificare la eteroschedasticità delle serie temporali in esame.

Ammoniaca

ammonia_mean <- mean(ammonia_ts)
ammonia_ts_demean <- ammonia_ts - ammonia_mean
ArchTest(ammonia_ts_demean)
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  ammonia_ts_demean
## Chi-squared = 2639.7, df = 12, p-value < 2.2e-16

acido solfidrico

hydrogensulfide_mean <- mean(hydrogensulfide_ts)
hydrogensulfide_ts_demean <- hydrogensulfide_ts - hydrogensulfide_mean
ArchTest(hydrogensulfide_ts_demean)
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  hydrogensulfide_ts_demean
## Chi-squared = 633.47, df = 12, p-value < 2.2e-16

Diossido di carbonio

carbondioxide_mean <- mean(carbondioxide_ts)
carbondioxide_ts_demean <- carbondioxide_ts - carbondioxide_mean
ArchTest(carbondioxide_ts_demean)
## 
##  ARCH LM-test; Null hypothesis: no ARCH effects
## 
## data:  carbondioxide_ts_demean
## Chi-squared = 4225.3, df = 12, p-value < 2.2e-16

Test per radici unitarie e stazionarietà

Scopo dei seguenti test e’ verificare la l’ordine di integrazione (“unit-root”) e la natura stazionario delle serie temporali in esame.

Ammoniaca

(urdftest_lag = floor(12* (nrow(gas)/100)^0.25))
## [1] 33
summary(ur.df(ammonia_ts, type = "none", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -18.089  -0.538  -0.025   0.599  36.265 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## z.lag.1      -0.005462   0.002590  -2.109    0.035 *  
## z.diff.lag1  -0.725104   0.013007 -55.748  < 2e-16 ***
## z.diff.lag2  -0.602198   0.015967 -37.715  < 2e-16 ***
## z.diff.lag3  -0.471886   0.017679 -26.691  < 2e-16 ***
## z.diff.lag4  -0.381059   0.018574 -20.516  < 2e-16 ***
## z.diff.lag5  -0.304865   0.019025 -16.024  < 2e-16 ***
## z.diff.lag6  -0.235777   0.019179 -12.294  < 2e-16 ***
## z.diff.lag7  -0.202059   0.019004 -10.632  < 2e-16 ***
## z.diff.lag8  -0.157424   0.018526  -8.498  < 2e-16 ***
## z.diff.lag9  -0.111469   0.017601  -6.333 2.58e-10 ***
## z.diff.lag10 -0.064748   0.015843  -4.087 4.43e-05 ***
## z.diff.lag11 -0.088672   0.012785  -6.936 4.47e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.665 on 6033 degrees of freedom
## Multiple R-squared:  0.3566, Adjusted R-squared:  0.3554 
## F-statistic: 278.7 on 12 and 6033 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -2.1088 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62
summary(ur.df(ammonia_ts, type = "drift", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -17.920  -0.574  -0.066   0.556  36.438 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.170156   0.046947   3.624 0.000292 ***
## z.lag.1      -0.023785   0.005679  -4.188 2.85e-05 ***
## z.diff.lag1  -0.709147   0.013719 -51.689  < 2e-16 ***
## z.diff.lag2  -0.587913   0.016431 -35.782  < 2e-16 ***
## z.diff.lag3  -0.459120   0.018009 -25.493  < 2e-16 ***
## z.diff.lag4  -0.369627   0.018822 -19.638  < 2e-16 ***
## z.diff.lag5  -0.294669   0.019213 -15.337  < 2e-16 ***
## z.diff.lag6  -0.226734   0.019321 -11.735  < 2e-16 ***
## z.diff.lag7  -0.194160   0.019110 -10.160  < 2e-16 ***
## z.diff.lag8  -0.150753   0.018599  -8.106 6.30e-16 ***
## z.diff.lag9  -0.106112   0.017646  -6.014 1.92e-09 ***
## z.diff.lag10 -0.060870   0.015863  -3.837 0.000126 ***
## z.diff.lag11 -0.086435   0.012787  -6.760 1.51e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.663 on 6032 degrees of freedom
## Multiple R-squared:  0.358,  Adjusted R-squared:  0.3568 
## F-statistic: 280.3 on 12 and 6032 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -4.1882 8.7963 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.43 -2.86 -2.57
## phi1  6.43  4.59  3.78
summary(ur.df(ammonia_ts, type = "trend", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -17.871  -0.577  -0.076   0.551  36.491 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   3.865e-01  9.350e-02   4.134 3.61e-05 ***
## z.lag.1      -3.582e-02  7.242e-03  -4.946 7.78e-07 ***
## tt           -4.183e-05  1.563e-05  -2.676 0.007479 ** 
## z.diff.lag1  -6.984e-01  1.429e-02 -48.890  < 2e-16 ***
## z.diff.lag2  -5.782e-01  1.682e-02 -34.372  < 2e-16 ***
## z.diff.lag3  -4.503e-01  1.830e-02 -24.604  < 2e-16 ***
## z.diff.lag4  -3.616e-01  1.905e-02 -18.982  < 2e-16 ***
## z.diff.lag5  -2.874e-01  1.939e-02 -14.821  < 2e-16 ***
## z.diff.lag6  -2.202e-01  1.946e-02 -11.315  < 2e-16 ***
## z.diff.lag7  -1.884e-01  1.922e-02  -9.804  < 2e-16 ***
## z.diff.lag8  -1.459e-01  1.868e-02  -7.810 6.72e-15 ***
## z.diff.lag9  -1.022e-01  1.770e-02  -5.773 8.17e-09 ***
## z.diff.lag10 -5.802e-02  1.589e-02  -3.651 0.000263 ***
## z.diff.lag11 -8.479e-02  1.280e-02  -6.627 3.73e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.662 on 6031 degrees of freedom
## Multiple R-squared:  0.3588, Adjusted R-squared:  0.3574 
## F-statistic: 259.6 on 13 and 6031 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -4.946 8.2565 12.3589 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.96 -3.41 -3.12
## phi2  6.09  4.68  4.03
## phi3  8.27  6.25  5.34

Phillips-Perron test per la presenza di radici unitarie. Null hypothesis: non stazionarietà.

pp.test(ammonia_ts, alternative="stationary", type="Z(alpha)", lshort = FALSE)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  ammonia_ts
## Dickey-Fuller Z(alpha) = -3095.4, Truncation lag parameter = 33,
## p-value = 0.01
## alternative hypothesis: stationary
pp.test(ammonia_ts, alternative="stationary", type="Z(t_alpha)", lshort=FALSE)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  ammonia_ts
## Dickey-Fuller Z(t_alpha) = -40.092, Truncation lag parameter = 33,
## p-value = 0.01
## alternative hypothesis: stationary

Kwiatkowski-Phillips-Schmidt-Shin (KPSS) test per verificare la stazionarietà della serie temporale. Null Hypothesis: stazionarietà (in livello o trend)

kpss.test(ammonia_ts, null = c("Level"), lshort = FALSE)
## 
##  KPSS Test for Level Stationarity
## 
## data:  ammonia_ts
## KPSS Level = 4.8969, Truncation lag parameter = 55, p-value = 0.01
kpss.test(ammonia_ts, null = c("Trend"), lshort = FALSE)
## 
##  KPSS Test for Trend Stationarity
## 
## data:  ammonia_ts
## KPSS Trend = 0.71544, Truncation lag parameter = 55, p-value =
## 0.01

acido solfidrico

summary(ur.df(hydrogensulfide_ts, type = "none", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -130.1    0.0    0.0    0.0  440.0 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## z.lag.1      -0.42833    0.03446 -12.429  < 2e-16 ***
## z.diff.lag1  -0.47621    0.03465 -13.744  < 2e-16 ***
## z.diff.lag2  -0.49583    0.03424 -14.481  < 2e-16 ***
## z.diff.lag3  -0.38223    0.03389 -11.279  < 2e-16 ***
## z.diff.lag4  -0.42909    0.03314 -12.948  < 2e-16 ***
## z.diff.lag5  -0.42031    0.03210 -13.095  < 2e-16 ***
## z.diff.lag6  -0.44174    0.03116 -14.178  < 2e-16 ***
## z.diff.lag7  -0.25664    0.03018  -8.505  < 2e-16 ***
## z.diff.lag8  -0.31849    0.02905 -10.965  < 2e-16 ***
## z.diff.lag9  -0.30359    0.02711 -11.198  < 2e-16 ***
## z.diff.lag10 -0.34236    0.02512 -13.630  < 2e-16 ***
## z.diff.lag11 -0.24143    0.02299 -10.503  < 2e-16 ***
## z.diff.lag12 -0.19678    0.02072  -9.499  < 2e-16 ***
## z.diff.lag13 -0.20118    0.01714 -11.734  < 2e-16 ***
## z.diff.lag14 -0.07103    0.01284  -5.530 3.34e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16.81 on 6030 degrees of freedom
## Multiple R-squared:  0.5016, Adjusted R-squared:  0.5004 
## F-statistic: 404.6 on 15 and 6030 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -12.4289 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62
summary(ur.df(hydrogensulfide_ts, type = "drift", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -129.49   -0.61   -0.61   -0.61  439.39 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.61167    0.22139   2.763  0.00575 ** 
## z.lag.1      -0.44956    0.03529 -12.739  < 2e-16 ***
## z.diff.lag1  -0.45633    0.03537 -12.902  < 2e-16 ***
## z.diff.lag2  -0.47735    0.03487 -13.690  < 2e-16 ***
## z.diff.lag3  -0.36517    0.03443 -10.607  < 2e-16 ***
## z.diff.lag4  -0.41337    0.03361 -12.300  < 2e-16 ***
## z.diff.lag5  -0.40612    0.03249 -12.500  < 2e-16 ***
## z.diff.lag6  -0.42900    0.03148 -13.628  < 2e-16 ***
## z.diff.lag7  -0.24542    0.03043  -8.064  8.8e-16 ***
## z.diff.lag8  -0.30846    0.02926 -10.543  < 2e-16 ***
## z.diff.lag9  -0.29507    0.02727 -10.820  < 2e-16 ***
## z.diff.lag10 -0.33531    0.02523 -13.289  < 2e-16 ***
## z.diff.lag11 -0.23590    0.02306 -10.229  < 2e-16 ***
## z.diff.lag12 -0.19259    0.02076  -9.277  < 2e-16 ***
## z.diff.lag13 -0.19841    0.01716 -11.559  < 2e-16 ***
## z.diff.lag14 -0.06967    0.01285  -5.423  6.1e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16.8 on 6029 degrees of freedom
## Multiple R-squared:  0.5022, Adjusted R-squared:  0.501 
## F-statistic: 405.5 on 15 and 6029 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -12.7389 81.14 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.43 -2.86 -2.57
## phi1  6.43  4.59  3.78
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -129.54   -1.11   -0.70   -0.16  438.65 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   1.4208202  0.4492889   3.162  0.00157 ** 
## z.lag.1      -0.4613517  0.0357378 -12.909  < 2e-16 ***
## tt           -0.0002595  0.0001254  -2.069  0.03854 *  
## z.diff.lag1  -0.4452928  0.0357587 -12.453  < 2e-16 ***
## z.diff.lag2  -0.4670995  0.0352092 -13.266  < 2e-16 ***
## z.diff.lag3  -0.3557163  0.0347195 -10.245  < 2e-16 ***
## z.diff.lag4  -0.4046572  0.0338599 -11.951  < 2e-16 ***
## z.diff.lag5  -0.3982484  0.0327019 -12.178  < 2e-16 ***
## z.diff.lag6  -0.4219540  0.0316539 -13.330  < 2e-16 ***
## z.diff.lag7  -0.2392093  0.0305713  -7.825 5.97e-15 ***
## z.diff.lag8  -0.3029212  0.0293714 -10.313  < 2e-16 ***
## z.diff.lag9  -0.2903683  0.0273585 -10.613  < 2e-16 ***
## z.diff.lag10 -0.3314185  0.0252964 -13.101  < 2e-16 ***
## z.diff.lag11 -0.2328534  0.0231028 -10.079  < 2e-16 ***
## z.diff.lag12 -0.1902811  0.0207843  -9.155  < 2e-16 ***
## z.diff.lag13 -0.1968892  0.0171758 -11.463  < 2e-16 ***
## z.diff.lag14 -0.0689181  0.0128485  -5.364 8.45e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16.8 on 6028 degrees of freedom
## Multiple R-squared:  0.5026, Adjusted R-squared:  0.5013 
## F-statistic: 380.7 on 16 and 6028 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -12.9093 55.5504 83.3255 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.96 -3.41 -3.12
## phi2  6.09  4.68  4.03
## phi3  8.27  6.25  5.34
pp.test(hydrogensulfide_ts, alternative="stationary", lshort = FALSE)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  hydrogensulfide_ts
## Dickey-Fuller Z(alpha) = -8927.5, Truncation lag parameter = 33,
## p-value = 0.01
## alternative hypothesis: stationary
pp.test(hydrogensulfide_ts, alternative="stationary", type="Z(t_alpha)", lshort = FALSE)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  hydrogensulfide_ts
## Dickey-Fuller Z(t_alpha) = -78.661, Truncation lag parameter = 33,
## p-value = 0.01
## alternative hypothesis: stationary
kpss.test(hydrogensulfide_ts, null = c("Level"), lshort = FALSE)
## 
##  KPSS Test for Level Stationarity
## 
## data:  hydrogensulfide_ts
## KPSS Level = 0.63351, Truncation lag parameter = 55, p-value =
## 0.01959
kpss.test(hydrogensulfide_ts, null = c("Trend"), lshort = FALSE)
## 
##  KPSS Test for Trend Stationarity
## 
## data:  hydrogensulfide_ts
## KPSS Trend = 0.088736, Truncation lag parameter = 55, p-value =
## 0.1

Diossido di carbonio

summary(ur.df(carbondioxide_ts, type = "none", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -154.03   -4.55   -0.23    4.35  355.23 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## z.lag.1     -0.000206   0.000309  -0.667    0.505    
## z.diff.lag1 -0.346686   0.012846 -26.989  < 2e-16 ***
## z.diff.lag2 -0.120066   0.013529  -8.875  < 2e-16 ***
## z.diff.lag3 -0.112944   0.013538  -8.342  < 2e-16 ***
## z.diff.lag4 -0.106912   0.013526  -7.904 3.19e-15 ***
## z.diff.lag5 -0.059750   0.012838  -4.654 3.33e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.47 on 6039 degrees of freedom
## Multiple R-squared:  0.1139, Adjusted R-squared:  0.113 
## F-statistic: 129.3 on 6 and 6039 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -0.6665 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62
summary(ur.df(carbondioxide_ts, type = "drift", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -152.23   -4.82   -1.07    4.31  357.06 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 25.012683   2.811861   8.895  < 2e-16 ***
## z.lag.1     -0.044733   0.005015  -8.920  < 2e-16 ***
## z.diff.lag1 -0.315868   0.013225 -23.884  < 2e-16 ***
## z.diff.lag2 -0.095051   0.013733  -6.921 4.93e-12 ***
## z.diff.lag3 -0.090891   0.013678  -6.645 3.30e-11 ***
## z.diff.lag4 -0.087873   0.013609  -6.457 1.15e-10 ***
## z.diff.lag5 -0.046515   0.012843  -3.622 0.000295 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.39 on 6038 degrees of freedom
## Multiple R-squared:  0.1253, Adjusted R-squared:  0.1245 
## F-statistic: 144.2 on 6 and 6038 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -8.9198 39.7892 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.43 -2.86 -2.57
## phi1  6.43  4.59  3.78
summary(ur.df(carbondioxide_ts, type = "trend", lags = urdftest_lag, selectlags="BIC"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -152.81   -4.78   -0.95    4.32  356.56 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 30.5936936  3.2039929   9.549  < 2e-16 ***
## z.lag.1     -0.0525813  0.0054586  -9.633  < 2e-16 ***
## tt          -0.0003889  0.0001074  -3.622 0.000295 ***
## z.diff.lag1 -0.3102971  0.0133012 -23.328  < 2e-16 ***
## z.diff.lag2 -0.0904776  0.0137771  -6.567 5.55e-11 ***
## z.diff.lag3 -0.0868462  0.0137101  -6.334 2.55e-10 ***
## z.diff.lag4 -0.0843494  0.0136303  -6.188 6.48e-10 ***
## z.diff.lag5 -0.0440287  0.0128482  -3.427 0.000615 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 13.37 on 6037 degrees of freedom
## Multiple R-squared:  0.1272, Adjusted R-squared:  0.1262 
## F-statistic: 125.7 on 7 and 6037 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -9.6327 30.9513 46.4191 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.96 -3.41 -3.12
## phi2  6.09  4.68  4.03
## phi3  8.27  6.25  5.34
pp.test(carbondioxide_ts, alternative="stationary", lshort = FALSE)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  carbondioxide_ts
## Dickey-Fuller Z(alpha) = -654.18, Truncation lag parameter = 33,
## p-value = 0.01
## alternative hypothesis: stationary
pp.test(carbondioxide_ts, alternative="stationary", type="Z(t_alpha)", lshort = FALSE)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  carbondioxide_ts
## Dickey-Fuller Z(t_alpha) = -18.465, Truncation lag parameter = 33,
## p-value = 0.01
## alternative hypothesis: stationary
kpss.test(carbondioxide_ts, null = c("Level"), lshort = FALSE)
## 
##  KPSS Test for Level Stationarity
## 
## data:  carbondioxide_ts
## KPSS Level = 2.6192, Truncation lag parameter = 55, p-value = 0.01
kpss.test(carbondioxide_ts, null = c("Trend"), lshort = FALSE)
## 
##  KPSS Test for Trend Stationarity
## 
## data:  carbondioxide_ts
## KPSS Trend = 0.30682, Truncation lag parameter = 55, p-value =
## 0.01

Structural breaks

ammonia_bp <- breakpoints(ammonia_ts ~ 1)
summary(ammonia_bp)
## 
##   Optimal (m+1)-segment partition: 
## 
## Call:
## breakpoints.formula(formula = ammonia_ts ~ 1)
## 
## Breakpoints at observation number:
##                                 
## m = 1   1327                    
## m = 2   1327      3564          
## m = 3   1327 2238 3412          
## m = 4   1327 2238 3410 4511     
## m = 5   1327 2238 3149 4257 5168
## 
## Corresponding to breakdates:
##                                           
## m = 1   14(79)                            
## m = 2   14(79)        38(12)              
## m = 3   14(79) 24(30) 36(52)              
## m = 4   14(79) 24(30) 36(50) 47(95)       
## m = 5   14(79) 24(30) 33(77) 45(33) 54(80)
## 
## Fit:
##                                              
## m   0      1      2      3      4      5     
## RSS 100898  39886  39319  39130  39040  39084
## BIC  34346  28722  28652  28640  28644  28668
plot(ammonia_ts, ylab = "carbondioxide", main = "ammonia level breakpoints"); grid()
lines(fitted(ammonia_bp, breaks = 3), col = "red", lwd=3)
lines(confint(ammonia_bp, breaks = 3))

carbondioxide_ts_bp <- breakpoints(carbondioxide_ts ~ 1)
summary(carbondioxide_ts_bp)
## 
##   Optimal (m+1)-segment partition: 
## 
## Call:
## breakpoints.formula(formula = carbondioxide_ts ~ 1)
## 
## Breakpoints at observation number:
##                                
## m = 1   995                    
## m = 2   995           4039     
## m = 3   995 2102 3013          
## m = 4   995 2102 3013 4205     
## m = 5   995 2102 3013 4205 5168
## 
## Corresponding to breakdates:
##                                           
## m = 1   11(35)                            
## m = 2   11(35)               43(7)        
## m = 3   11(35) 22(86) 32(37)              
## m = 4   11(35) 22(86) 32(37) 44(77)       
## m = 5   11(35) 22(86) 32(37) 44(77) 54(80)
## 
## Fit:
##                                                    
## m   0       1       2       3       4       5      
## RSS 8369896 6106561 6010138 5812927 5782437 5781392
## BIC   61205   59306   59227   59041   59027   59043
plot(carbondioxide_ts, ylab = "carbondioxide", main = "carbondioxide level breakpoints"); grid()
lines(fitted(carbondioxide_ts_bp, breaks = 4), col = "red", lwd=3)
lines(confint(carbondioxide_ts_bp, breaks = 4))

Identificazione dei picchi

Identifichiamo la locazione temporale dei picchi per le tre serie temporali in esame.

Allo scopo, definiamo una funzione di utility che ci restituisce la serie temporale priva del trend in essa identificabile.

detrend <- function(a_ts) {
  a_ts_dec <- decompose(a_ts)$trend
  f <- frequency(a_ts)
  beg <- (1:(f/2))
  end <- ((length(a_ts) - (f/2)) : length(a_ts))
  middle <- ((f/2) + 1) : (length(a_ts) - (f/2) - 1)
  ts(c(a_ts[beg], a_ts[middle] - a_ts_dec[middle], a_ts[end]), frequency=f)
}
par(mfrow=c(1,2))
plot(density(ammonia_ts)); grid()
plot(density(detrend(ammonia_ts))); grid()

left_thresh <- 0.25; right_thresh <- 0.75
ammonia_outlier_absolute <- getOutliersI(as.vector(ammonia_ts), FLim = c(left_thresh, right_thresh), 
                             distribution = "lognormal")
outlierPlot(gas$ammonia, ammonia_outlier_absolute, mode="qq")

plot(gas$ammonia, type='l', ylab = "ammonia", main = "Ammonia absolute peaks"); grid()
points(x=ammonia_outlier_absolute$iRight, y= gas$ammonia[ammonia_outlier_absolute$iRight], col ='red')
points(x=ammonia_outlier_absolute$iLeft, y=gas$ammonia[ammonia_outlier_absolute$iLeft], col ='blue')

length(ammonia_outlier_absolute$iRight)
## [1] 369
summary(ammonia_ts[ammonia_outlier_absolute$iRight])
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   16.00   18.00   19.00   19.62   20.00   55.00
boxplot(ammonia_ts[ammonia_outlier_absolute$iRight], col="palegreen4")

left_thresh <- 0.25; right_thresh <- 0.75
ammonia_outlier_relative <- getOutliersI(as.vector(detrend(ammonia_ts)), rho=c(40,40), FLim = c(left_thresh, right_thresh), distribution = "normal")
outlierPlot(gas$ammonia, ammonia_outlier_relative, mode="qq")

f_2 <- frequency(ammonia_ts)/2; l <- length(ammonia_ts); l_2 <- l - f_2; beg <- which(ammonia_outlier_relative$iRight <= f_2); end <- which(ammonia_outlier_relative$iRight >= l_2)
ammonia_outlier_relative$iRight <- ammonia_outlier_relative$iRight[-c(beg, end)]
plot(gas$ammonia, type='l', ylab = "ammonia", main = "Ammonia relative peaks"); points(x=ammonia_outlier_relative$iRight, y= gas$ammonia[ammonia_outlier_relative$iRight], col ='red'); grid(); points(x=ammonia_outlier_relative$iLeft, y=gas$ammonia[ammonia_outlier_relative$iLeft], col ='blue')

length(ammonia_outlier_relative$iRight)
## [1] 163
summary(ammonia_ts[ammonia_outlier_relative$iRight])
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    7.00   10.00   18.00   16.39   20.00   55.00
boxplot(ammonia_ts[ammonia_outlier_relative$iRight], col ="palegreen4")

summary(na.omit(diff(ammonia_outlier_relative$iRight)))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    1.00    2.00   36.62   15.00  842.00
plot(density(na.omit(diff(ammonia_outlier_relative$iRight))), main = "Relative peaks interarrival time density"); grid()

Picchi Assoluti di acido solfidrico

left_thresh <- 0.25; right_thresh <- 0.75
hydrogensulfide_outlier <- getOutliersI(as.vector(hydrogensulfide_ts), FLim = c(left_thresh, right_thresh), 
                                        distribution = "normal")
outlierPlot(gas$hydrogensulfide, hydrogensulfide_outlier, mode="qq")

plot(gas$hydrogensulfide, type='l', ylab = "hydrogensulfide", main = "hydrogensulfide"); grid()
points(x=hydrogensulfide_outlier$iRight, y= gas$hydrogensulfide[hydrogensulfide_outlier$iRight], col ='red')
points(x=hydrogensulfide_outlier$iLeft, y=gas$hydrogensulfide[hydrogensulfide_outlier$iLeft], col ='blue')

Picchi Relativi di acido solfidrico

left_thresh <- 0.25 ; right_thresh <- 0.75
hydrogensulfide_outlier <- getOutliersI(as.vector(detrend(hydrogensulfide_ts)), FLim = c(left_thresh, right_thresh), distribution = "normal")
outlierPlot(gas$hydrogensulfide, hydrogensulfide_outlier, mode="qq")

f_2 <- frequency(hydrogensulfide_ts)/2; l <- length(hydrogensulfide_ts); l_2 <- l - f_2; beg <- which(hydrogensulfide_outlier$iRight <= f_2); end <- which(hydrogensulfide_outlier$iRight >= l_2)
hydrogensulfide_outlier$iRight <- hydrogensulfide_outlier$iRight[-c(beg, end)]
plot(gas$hydrogensulfide, type='l', ylab = "hydrogensulfide", main = "hydrogensulfide"); grid(); points(x=hydrogensulfide_outlier$iRight, y= gas$hydrogensulfide[hydrogensulfide_outlier$iRight], col ='red'); points(x=hydrogensulfide_outlier$iLeft, y=gas$hydrogensulfide[hydrogensulfide_outlier$iLeft], col ='blue')

Picchi assoluti di diossido di carbonio

left_thresh <- 0.25; right_thresh <- 0.75
carbondioxide_outlier <- getOutliersI(as.vector(carbondioxide_ts), FLim = c(left_thresh, right_thresh),  distribution = "lognormal")
outlierPlot(gas$carbondioxide, carbondioxide_outlier, mode="qq")

plot(gas$carbondioxide, type='l', ylab = "carbondioxide", main = "carbondioxide"); grid()
points(x=carbondioxide_outlier$iRight, y= gas$carbondioxide[carbondioxide_outlier$iRight], col ='red')
points(x=carbondioxide_outlier$iLeft, y=gas$carbondioxide[carbondioxide_outlier$iLeft], col ='blue')

Picchi relativi di diossido di carbonio

left_thresh <- 0.25; right_thresh <- 0.75
carbondioxide_outlier <- getOutliersI(as.vector(detrend(carbondioxide_ts)), FLim = c(left_thresh, right_thresh),  distribution = "normal")
outlierPlot(gas$carbondioxide, carbondioxide_outlier, mode="qq")

f_2 <- frequency(carbondioxide_ts)/2; l <- length(carbondioxide_ts); l_2 <- l - f_2; beg <- which(carbondioxide_outlier$iRight <= f_2); end <- which(carbondioxide_outlier$iRight >= l_2)
carbondioxide_outlier$iRight <- carbondioxide_outlier$iRight[-c(beg, end)]
plot(gas$carbondioxide, type='l', ylab = "carbondioxide", main = "carbondioxide"); grid(); points(x=carbondioxide_outlier$iRight, y= gas$carbondioxide[carbondioxide_outlier$iRight], col ='red'); points(x=carbondioxide_outlier$iLeft, y=gas$carbondioxide[carbondioxide_outlier$iLeft], col ='blue')

Modelli per serie temporali

Vediamo prima in che cosa consiste un modello ARMA ed un modello ARMA-GARCH.

Modello ARMA

\[ \begin{equation} \begin{cases} y_{t}\ -\ \phi_{1}y_{t-1}\ -\ \phi_{2}y_{t-2}\ +\ ...\ + \phi_{p}y_{t}\ =\ \phi_{0}\ +\ u_{t}\ +\ \theta_{1}u_{t-1}\ +\ \theta_{2}u_{t-2}\ +\ + \theta_{q}u_{t-q} \\ \\ u_{t}\ =\ \sigma\epsilon_{t}\\ \\ \epsilon_{t}\ =\ N(0,1) \end{cases} \end{equation} \]

Modello ARMA-GARCH

\[ \begin{equation} \begin{cases} y_{t}\ -\ \phi_{1}y_{t-1}\ -\ \phi_{2}y_{t-2}\ +\ ...\ + \phi_{p}y_{t}\ =\ \phi_{0}\ +\ u_{t}\ +\ \theta_{1}u_{t-1}\ +\ \theta_{2}u_{t-2}\ +\ ...\ + \theta_{q}u_{t-q} \\ \\ u_{t}\ =\ \sigma_{t}\epsilon_{t},\ \ \ \ \ \epsilon_{t}=N(0,1) \\ \\ \sigma_{t}^2\ =\ \omega\ + \alpha_{1}u_{t-1}^2\ +\ \alpha_{2}u_{t-2}^2\ +\ \alpha_{t-q}u_{t-q}^2\ +\ \beta_{1}\sigma_{t-1}^2\ +\ \beta_{2}\sigma_{t-2}^2\ +\ \beta_{p}\sigma_{t-p}^2 \end{cases} \end{equation} \]

Ammoniaca

xspec = ugarchspec(mean.model = list(armaOrder = c(2, 2), include.mean = TRUE),
                   variance.model = list(garchOrder = c(1,2), model = 'iGARCH', submodel = NULL),
                   distribution.model = 'sstd')
ammonia_garch <- ugarchfit(xspec, ammonia_ts, solver="hybrid", fit.control=list(stationarity=1), out.sample=48)
ammonia_garch
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : iGARCH(1,2)
## Mean Model   : ARFIMA(2,0,2)
## Distribution : sstd 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error    t value Pr(>|t|)
## mu     14.026039    0.475180    29.5173        0
## ar1     1.439741    0.000361  3992.2872        0
## ar2    -0.440535    0.000404 -1091.4825        0
## ma1    -0.992664    0.014315   -69.3441        0
## ma2     0.205087    0.012726    16.1153        0
## omega   0.503734    0.067935     7.4150        0
## alpha1  0.653945    0.042505    15.3853        0
## beta1   0.283477    0.054697     5.1827        0
## beta2   0.062578          NA         NA       NA
## skew    1.113630    0.016817    66.2189        0
## shape   2.702282    0.058952    45.8388        0
## 
## Robust Standard Errors:
##         Estimate  Std. Error    t value Pr(>|t|)
## mu     14.026039    0.419344    33.4476    0e+00
## ar1     1.439741    0.000207  6945.2706    0e+00
## ar2    -0.440535    0.000296 -1488.2384    0e+00
## ma1    -0.992664    0.018511   -53.6257    0e+00
## ma2     0.205087    0.014721    13.9313    0e+00
## omega   0.503734    0.103135     4.8842    1e-06
## alpha1  0.653945    0.062753    10.4209    0e+00
## beta1   0.283477    0.046691     6.0714    0e+00
## beta2   0.062578          NA         NA       NA
## skew    1.113630    0.016986    65.5623    0e+00
## shape   2.702282    0.065184    41.4563    0e+00
## 
## LogLikelihood : -8226.012 
## 
## Information Criteria
## ------------------------------------
##                    
## Akaike       2.7312
## Bayes        2.7423
## Shibata      2.7312
## Hannan-Quinn 2.7351
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                          statistic   p-value
## Lag[1]                       3.943 4.707e-02
## Lag[2*(p+q)+(p+q)-1][11]     8.797 2.072e-05
## Lag[4*(p+q)+(p+q)-1][19]    14.046 5.618e-02
## d.o.f=4
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                      0.1391  0.7092
## Lag[2*(p+q)+(p+q)-1][8]     0.2866  0.9993
## Lag[4*(p+q)+(p+q)-1][14]    0.9397  0.9997
## d.o.f=3
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[4]    0.1182 0.500 2.000  0.7310
## ARCH Lag[6]    0.1257 1.461 1.711  0.9837
## ARCH Lag[8]    0.1703 2.368 1.583  0.9984
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  9.37
## Individual Statistics:              
## mu     0.03353
## ar1    0.06100
## ar2    0.05575
## ma1    2.43148
## ma2    0.58512
## omega  2.95241
## alpha1 1.43341
## beta1  0.14970
## skew   0.65345
## shape  3.65666
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          2.29 2.54 3.05
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value   prob sig
## Sign Bias           0.8259 0.4089    
## Negative Sign Bias  0.5601 0.5754    
## Positive Sign Bias  1.0352 0.3006    
## Joint Effect        1.8894 0.5957    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     271.4    1.411e-46
## 2    30     367.9    2.237e-60
## 3    40     377.7    4.917e-57
## 4    50     586.6    3.406e-93
## 
## 
## Elapsed time : 2.469538

\[ \begin{equation} \begin{cases} a_{t}\ =\ 14.02 + y_{t} \\ \\ y_{t}\ -\ 1.43y_{t-1} +\ 0.44y_{t-2}\ = \ u_{t}\ -\ 0.99u_{t-1} + 0.20u_{t-2} \\ \\ u_{t}\ =\ \sigma_{t}\epsilon_{t},\ \ \ \ \ \epsilon_{t}=N(0,1) \\ \\ \sigma_{t}^2\ =\ 0.50\ + 0.65u_{t-1}^2\ +\ 0.28\sigma_{t-1}^2 +\ 0.06\sigma_{t-2}^2 \end{cases} \end{equation} \]

fit_ts <- ts(fitted(ammonia_garch), frequency = frequency(ammonia_ts))
plot(ammonia_ts, ylab = 'ammonia', lwd = 1, lty ='dashed'); grid(); lines(fit_ts, col = 'red', lty = 'dashed')
legend("topright", c("ammonia", "fitted"), fill=c("black", "red")); mape <- accuracy(ammonia_ts, fit_ts)[,"RMSE"]
mes <- paste("RMSE = ", round(mape, 2), sep=''); text(60, 30, mes)

boxplot(ammonia_ts, fit_ts, main = "Ammonia: actual vs. fitted", col = "palegreen4")

spec = getspec(ammonia_garch);
setfixed(spec) <- as.list(coef(ammonia_garch));
l <- length(ammonia_ts)
forecast = ugarchforecast(ammonia_garch, n.ahead = 24, n.roll=10)
plot(forecast, which=2)

ammonia_sigma <- ammonia_garch@fit$sigma 
plot(ammonia_sigma, type='l', "ylab" = "conditional SD", main = "Ammonia Conditional SD"); grid()

acido solfidrico

xspec = ugarchspec(mean.model = list(armaOrder = c(1,1), include.mean = TRUE),
                   variance.model = list(garchOrder = c(1,1), model = 'sGARCH',
                                         submodel = NULL),
                   distribution.model = 'norm')
hydrogensulfide_garch <- ugarchfit(xspec, hydrogensulfide_ts, solver="hybrid")
hydrogensulfide_garch
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : sGARCH(1,1)
## Mean Model   : ARFIMA(1,0,1)
## Distribution : norm 
## 
## Optimal Parameters
## ------------------------------------
##         Estimate  Std. Error  t value Pr(>|t|)
## mu      0.362161    0.000034  10616.7        0
## ar1     0.047170    0.000009   5495.9        0
## ma1     0.022999    0.000004   5496.0        0
## omega   0.490997    0.000090   5451.7        0
## alpha1  0.050180    0.000014   3709.6        0
## beta1   0.912996    0.000159   5730.4        0
## 
## Robust Standard Errors:
##         Estimate  Std. Error  t value Pr(>|t|)
## mu      0.362161         NaN      NaN      NaN
## ar1     0.047170         NaN      NaN      NaN
## ma1     0.022999         NaN      NaN      NaN
## omega   0.490997         NaN      NaN      NaN
## alpha1  0.050180         NaN      NaN      NaN
## beta1   0.912996         NaN      NaN      NaN
## 
## LogLikelihood : -18884.87 
## 
## Information Criteria
## ------------------------------------
##                    
## Akaike       6.2151
## Bayes        6.2218
## Shibata      6.2151
## Hannan-Quinn 6.2174
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                     0.6102  0.4347
## Lag[2*(p+q)+(p+q)-1][5]    1.8637  0.9783
## Lag[4*(p+q)+(p+q)-1][9]    2.3565  0.9637
## d.o.f=2
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                   0.004646  0.9457
## Lag[2*(p+q)+(p+q)-1][5]  0.017298  0.9999
## Lag[4*(p+q)+(p+q)-1][9]  0.026428  1.0000
## d.o.f=2
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[3]   0.01163 0.500 2.000  0.9141
## ARCH Lag[5]   0.01631 1.440 1.667  0.9990
## ARCH Lag[7]   0.02059 2.315 1.543  1.0000
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  NaN
## Individual Statistics:          
## mu     NaN
## ar1    NaN
## ma1    NaN
## omega  NaN
## alpha1 NaN
## beta1  NaN
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          1.49 1.68 2.12
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                     t-value   prob sig
## Sign Bias          0.270986 0.7864    
## Negative Sign Bias 0.164492 0.8693    
## Positive Sign Bias 0.004407 0.9965    
## Joint Effect       0.120793 0.9892    
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     54148            0
## 2    30    101378            0
## 3    40     97523            0
## 4    50    149598            0
## 
## 
## Elapsed time : 1.419778

\[ \begin{equation} \begin{cases} h(t)\ = 0.36 + y_{t} \\ \\ y_{t}\ -\ 0.05y_{t-1}\ =\ 0.02u_{t-1}\ +\ u_{t} \\ \\ u_{t}\ =\ \sigma_{t}\epsilon_{t},\ \ \ \ \ \epsilon_{t}=N(0,1) \\ \\ \sigma_{t}^2\ =\ 0.49\ + 0.05u_{t-1}^2\ +\ 0.91\sigma_{t-1}^2 \end{cases} \end{equation} \]

fit_ts <- ts(fitted(hydrogensulfide_garch), frequency = frequency(hydrogensulfide_ts))
plot(hydrogensulfide_ts, lwd=2); grid(); lines(fit_ts, col = 'red', lty='dashed')
legend("topright", c("hydrogensulfide", "fitted"), fill=c("black", "red"))
rmse <- accuracy(hydrogensulfide_ts, fitted(hydrogensulfide_garch))[,"RMSE"]; 
mes <- paste("RMSE = ", round(rmse, 2), sep=''); text(60, 300, mes)

hydrogensulfide_sigma <- hydrogensulfide_garch@fit$sigma
plot(hydrogensulfide_sigma, type='l', "ylab" = "conditional SD", main = "Hydrogensulfide Conditional SD"); grid()

Diossido di carbonio

xspec = ugarchspec(mean.model = list(armaOrder = c(1, 1), include.mean = TRUE),
                   variance.model = list(garchOrder = c(1, 2), model = 'iGARCH',
                                         submodel = "GARCH"),
                   distribution.model = 'snorm')
carbondioxide_garch <- ugarchfit(xspec, carbondioxide_ts, solver="hybrid", fit.control=list(stationarity=0))
carbondioxide_garch
## 
## *---------------------------------*
## *          GARCH Model Fit        *
## *---------------------------------*
## 
## Conditional Variance Dynamics    
## -----------------------------------
## GARCH Model  : iGARCH(1,2)
## Mean Model   : ARFIMA(1,0,1)
## Distribution : snorm 
## 
## Optimal Parameters
## ------------------------------------
##          Estimate  Std. Error  t value Pr(>|t|)
## mu     552.177528    1.596761 345.8110        0
## ar1      0.947687    0.004725 200.5788        0
## ma1     -0.272649    0.016615 -16.4101        0
## omega    0.935525    0.153962   6.0764        0
## alpha1   0.074441    0.005851  12.7229        0
## beta1    0.383380    0.061330   6.2511        0
## beta2    0.542179          NA       NA       NA
## skew     1.060362    0.012101  87.6259        0
## 
## Robust Standard Errors:
##          Estimate  Std. Error  t value Pr(>|t|)
## mu     552.177528    3.467051 159.2643 0.000000
## ar1      0.947687    0.011439  82.8451 0.000000
## ma1     -0.272649    0.027740  -9.8288 0.000000
## omega    0.935525    0.660770   1.4158 0.156831
## alpha1   0.074441    0.035143   2.1182 0.034157
## beta1    0.383380    0.114611   3.3450 0.000823
## beta2    0.542179          NA       NA       NA
## skew     1.060362    0.053647  19.7657 0.000000
## 
## LogLikelihood : -22782.67 
## 
## Information Criteria
## ------------------------------------
##                    
## Akaike       7.4978
## Bayes        7.5056
## Shibata      7.4978
## Hannan-Quinn 7.5005
## 
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
##                         statistic p-value
## Lag[1]                      2.278 0.13124
## Lag[2*(p+q)+(p+q)-1][5]     3.290 0.30332
## Lag[4*(p+q)+(p+q)-1][9]     8.473 0.03839
## d.o.f=2
## H0 : No serial correlation
## 
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
##                          statistic p-value
## Lag[1]                       5.609 0.01787
## Lag[2*(p+q)+(p+q)-1][8]      6.101 0.22518
## Lag[4*(p+q)+(p+q)-1][14]     6.757 0.53751
## d.o.f=3
## 
## Weighted ARCH LM Tests
## ------------------------------------
##             Statistic Shape Scale P-Value
## ARCH Lag[4]  0.001008 0.500 2.000  0.9747
## ARCH Lag[6]  0.343752 1.461 1.711  0.9342
## ARCH Lag[8]  0.597668 2.368 1.583  0.9734
## 
## Nyblom stability test
## ------------------------------------
## Joint Statistic:  3.0675
## Individual Statistics:             
## mu     0.6092
## ar1    0.2858
## ma1    0.9835
## omega  0.3450
## alpha1 0.3245
## beta1  0.2906
## skew   0.2853
## 
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic:          1.69 1.9 2.35
## Individual Statistic:     0.35 0.47 0.75
## 
## Sign Bias Test
## ------------------------------------
##                    t-value      prob sig
## Sign Bias            2.827 4.715e-03 ***
## Negative Sign Bias   1.817 6.923e-02   *
## Positive Sign Bias   2.223 2.622e-02  **
## Joint Effect        22.230 5.844e-05 ***
## 
## 
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
##   group statistic p-value(g-1)
## 1    20     972.2   4.482e-194
## 2    30     986.4   6.439e-189
## 3    40    1036.1   6.313e-192
## 4    50    1067.5   1.626e-191
## 
## 
## Elapsed time : 0.3960159

\[ \begin{equation} \begin{cases} c_{t}\ =\ 552\ +\ y_{t} \\ \\ y_{t}\ -\ 0.95y_{t-1}\ = -\ 0.27u_{t-1}\ +\ u_{t} \\ \\ u_{t}\ =\ \sigma_{t}\epsilon_{t},\ \ \ \ \ \epsilon_{t}=N(0,1) \\ \\ \sigma_{t}^2\ =\ 0.94\ + 0.07u_{t-1}^2\ +\ 0.38\sigma_{t-1}^2\ +\ 0.54\sigma_{t-2}^2 \end{cases} \end{equation} \]

carbondioxide_garch_fit <- ts(fitted(carbondioxide_garch), frequency = frequency(carbondioxide_ts))
plot(carbondioxide_ts, ylab = 'carbondioxide', lwd = 1, lty ='dashed'); grid(); lines(carbondioxide_garch_fit, col = 'red', lty = 'dashed'); legend("topright", c("carbondioxide", "fitted"), fill=c("black", "red"))
mape <- accuracy(carbondioxide_ts, carbondioxide_garch_fit)[,"RMSE"]
mes <- paste("RMSE = ", round(mape, 2), sep=''); text(60, 700, mes)

carbondioxide_sigma <- carbondioxide_garch@fit$sigma
plot(carbondioxide_sigma, type='l', "ylab" = "conditional SD", main = "Carbondioxide Conditional SD"); grid()

Analisi multivariata

Nel seguito, l’analisi ha come oggetto le inter-relazioni tra le serie temporali in esame.

Calcolo delle cross-correlazioni

Mostriamo le cross-correlazioni tra le diverse serie temporali in funzione del tempo.

\[ \begin{equation} \begin{cases} \Large \rho_{x, y}(t)\ = \frac{cov(x, y)(t)}{\sigma_{x}(t)\ \sigma_{y}(t)} \\ \\ \Large \sigma_{x}^2 (t+1)\ =\ (1-\theta)x^2(t)\ +\ \theta\ \sigma_{x}^2(t)\\ \\ \Large cov(x,y)(t+1)\ =\ (1-\theta)x(t)y(t)\ +\ \theta\ cov(x,y)(t) \end{cases} \end{equation} \]

Reference: “An Introduction to Analysis of Financial Data with R”, Ruey S. Tsay

covmat <- MTS::EWMAvol(cbind(ammonia_ts, hydrogensulfide_ts))
cov_y1y2 <- covmat$Sigma.t[,2]
cor_y1y2 <- cov_y1y2/sqrt(covmat$Sigma.t[,1]*covmat$Sigma.t[,4])
plot(cor_y1y2, type='l', main="Ammonia & Hydrogensulfide Cross-Correlation", xlab = "time tick"); abline(h=0, col='blue', lty='dotted')

boxplot(cor_y1y2, main = "Ammonia & Hydrogensulfide Cross-Correlation", col = "palegreen4")

summary(cor_y1y2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -0.9807 -0.0270  0.2528  0.2432  0.6252  0.9597
covmat <- MTS::EWMAvol(cbind(ammonia_ts, carbondioxide_ts))
cov_y1y2 <- covmat$Sigma.t[,2]
cor_y1y2 <- cov_y1y2/sqrt(covmat$Sigma.t[,1]*covmat$Sigma.t[,4])
plot(cor_y1y2, type='l', main="Ammonia & Carbondioxide Cross-Correlation", xlab = "time tick"); abline(h=0, col='blue', lty='dotted')

boxplot(cor_y1y2, main = "Ammonia & Carbondioxide Cross-Correlation", col = "palegreen4")

summary(cor_y1y2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## -0.7266  0.3023  0.6453  0.5320  0.8348  0.9875
covmat <- MTS::EWMAvol(cbind(hydrogensulfide_ts, carbondioxide_ts))
cov_y1y2 <- covmat$Sigma.t[,2]
cor_y1y2 <- cov_y1y2/sqrt(covmat$Sigma.t[,1]*covmat$Sigma.t[,4])
plot(cor_y1y2, type='l', main="Hydrogensulfide & Carbondioxide Cross-Correlation", xlab = "time tick"); abline(h=0, col='blue', lty='dotted')

boxplot(cor_y1y2, main = "Hydrogensulfide & Carbondioxide Cross-Correlation", col = "palegreen4")

summary(cor_y1y2)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## -0.94639 -0.10748  0.08842  0.11885  0.34568  0.97041

L’analisi della significatività della cross-correlazione prevede l’uso del “pre-whitening” allo scopo di evitare problemi di cross-correlazione spuria.

prewhiten(x=ammonia_ts, y=hydrogensulfide_ts, ylab="CCF", main ="ammonia & hydrogensulfide")

prewhiten(x=ammonia_ts, y=carbondioxide_ts, ylab="CCF", main ="ammonia & carbondioxide")

prewhiten(x=hydrogensulfide_ts, y=carbondioxide_ts, ylab="CCF", main ="hydrogensulfide & carbondioxide")

Analisi VAR

\[ \begin{equation} \begin{cases} \large \boldsymbol{y}_{t}\ =\ \boldsymbol{A_{1}}y_{t-1}\ +\ \boldsymbol{A_{2}}y_{t-2}\ +\ ...\ +\ \boldsymbol{A_{p}}y_{t-p}\ +\ \boldsymbol{u_{t}}\\ \\ \\ \large u_{t}\ =\ \sigma\epsilon_{t}\\ \\ \\ \large \epsilon_{t}\ =\ N(0,1)\\ \\ \\ \large \boldsymbol{y}_{t}\ :=\ \begin{bmatrix}ammonia_{t}\\ hydrogensulfide_{t}\\ carbondioxide_{t}\end{bmatrix} \end{cases} \end{equation} \]

VARselect(gas, lag.max = 20, type="both")
## $selection
## AIC(n)  HQ(n)  SC(n) FPE(n) 
##     20     20     14     20 
## 
## $criteria
##                   1            2            3            4            5
## AIC(n)     12.31333     12.07611     11.97327     11.92969     11.90188
## HQ(n)      12.31910     12.08534     11.98595     11.94583     11.92148
## SC(n)      12.32994     12.10269     12.00981     11.97620     11.95835
## FPE(n) 222644.08661 175626.34256 158461.49579 151704.20171 147543.12357
##                   6            7            8            9           10
## AIC(n)     11.88728     11.84547     11.83840     11.83297     11.82061
## HQ(n)      11.91034     11.87199     11.86838     11.86641     11.85751
## SC(n)      11.95372     11.92188     11.92477     11.92931     11.92691
## FPE(n) 145405.60661 139451.56436 138469.06249 137719.44011 136027.32207
##                  11           12           13           14           15
## AIC(n)     11.79529     11.78653     11.78553     11.75809     11.75017
## HQ(n)      11.83565     11.83035     11.83281     11.80883     11.80436
## SC(n)      11.91156     11.91277     11.92173     11.90426     11.90630
## FPE(n) 132626.82316 131470.19590 131338.51746 127783.57183 126775.30228
##                  16           17           18           19           20
## AIC(n)     11.74509     11.73347     11.72242     11.72188     11.70887
## HQ(n)      11.80274     11.79458     11.78699     11.78991     11.78035
## SC(n)      11.91119     11.90953     11.90845     11.91788     11.91483
## FPE(n) 126133.09383 124675.52504 123306.00317 123239.26844 121645.61020
var_fit <- VAR(gas, p=14, type="both", season = 96)
summary(var_fit)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: ammonia, hydrogensulfide, carbondioxide 
## Deterministic variables: both 
## Sample size: 6065 
## Log Likelihood: -61174.488 
## Roots of the characteristic polynomial:
## 0.9915 0.9698 0.9212 0.9069 0.9069 0.9029 0.9029 0.8977 0.8977 0.8568 0.8568 0.8477 0.8477 0.8461 0.8461 0.8376 0.8376 0.8235 0.8235 0.8093 0.8093 0.8085 0.7982 0.7982 0.7962 0.7962 0.7916 0.7869 0.7869 0.7832 0.7832 0.7788 0.7788 0.7742 0.7742 0.7731 0.7731 0.7151 0.7151 0.7101 0.4594 0.04134
## Call:
## VAR(y = gas, p = 14, type = "both", season = 96L)
## 
## 
## Estimation results for equation ammonia: 
## ======================================== 
## ammonia = ammonia.l1 + hydrogensulfide.l1 + carbondioxide.l1 + ammonia.l2 + hydrogensulfide.l2 + carbondioxide.l2 + ammonia.l3 + hydrogensulfide.l3 + carbondioxide.l3 + ammonia.l4 + hydrogensulfide.l4 + carbondioxide.l4 + ammonia.l5 + hydrogensulfide.l5 + carbondioxide.l5 + ammonia.l6 + hydrogensulfide.l6 + carbondioxide.l6 + ammonia.l7 + hydrogensulfide.l7 + carbondioxide.l7 + ammonia.l8 + hydrogensulfide.l8 + carbondioxide.l8 + ammonia.l9 + hydrogensulfide.l9 + carbondioxide.l9 + ammonia.l10 + hydrogensulfide.l10 + carbondioxide.l10 + ammonia.l11 + hydrogensulfide.l11 + carbondioxide.l11 + ammonia.l12 + hydrogensulfide.l12 + carbondioxide.l12 + ammonia.l13 + hydrogensulfide.l13 + carbondioxide.l13 + ammonia.l14 + hydrogensulfide.l14 + carbondioxide.l14 + const + trend + sd1 + sd2 + sd3 + sd4 + sd5 + sd6 + sd7 + sd8 + sd9 + sd10 + sd11 + sd12 + sd13 + sd14 + sd15 + sd16 + sd17 + sd18 + sd19 + sd20 + sd21 + sd22 + sd23 + sd24 + sd25 + sd26 + sd27 + sd28 + sd29 + sd30 + sd31 + sd32 + sd33 + sd34 + sd35 + sd36 + sd37 + sd38 + sd39 + sd40 + sd41 + sd42 + sd43 + sd44 + sd45 + sd46 + sd47 + sd48 + sd49 + sd50 + sd51 + sd52 + sd53 + sd54 + sd55 + sd56 + sd57 + sd58 + sd59 + sd60 + sd61 + sd62 + sd63 + sd64 + sd65 + sd66 + sd67 + sd68 + sd69 + sd70 + sd71 + sd72 + sd73 + sd74 + sd75 + sd76 + sd77 + sd78 + sd79 + sd80 + sd81 + sd82 + sd83 + sd84 + sd85 + sd86 + sd87 + sd88 + sd89 + sd90 + sd91 + sd92 + sd93 + sd94 + sd95 
## 
##                       Estimate Std. Error t value Pr(>|t|)    
## ammonia.l1           2.310e-01  1.313e-02  17.585  < 2e-16 ***
## hydrogensulfide.l1   3.895e-03  1.268e-03   3.072 0.002133 ** 
## carbondioxide.l1     9.289e-03  1.609e-03   5.774 8.14e-09 ***
## ammonia.l2           1.255e-01  1.352e-02   9.288  < 2e-16 ***
## hydrogensulfide.l2  -5.331e-03  1.273e-03  -4.187 2.87e-05 ***
## carbondioxide.l2     2.490e-03  1.908e-03   1.306 0.191762    
## ammonia.l3           1.468e-01  1.362e-02  10.778  < 2e-16 ***
## hydrogensulfide.l3   1.101e-03  1.273e-03   0.865 0.387132    
## carbondioxide.l3    -3.762e-03  1.939e-03  -1.940 0.052378 .  
## ammonia.l4           9.891e-02  1.367e-02   7.238 5.12e-13 ***
## hydrogensulfide.l4  -3.399e-04  1.274e-03  -0.267 0.789629    
## carbondioxide.l4    -1.059e-03  1.940e-03  -0.546 0.585237    
## ammonia.l5           7.828e-02  1.369e-02   5.720 1.12e-08 ***
## hydrogensulfide.l5  -6.602e-04  1.276e-03  -0.518 0.604801    
## carbondioxide.l5    -3.580e-03  1.938e-03  -1.847 0.064784 .  
## ammonia.l6           5.795e-02  1.371e-02   4.228 2.40e-05 ***
## hydrogensulfide.l6   1.709e-03  1.276e-03   1.340 0.180445    
## carbondioxide.l6    -5.533e-04  1.940e-03  -0.285 0.775457    
## ammonia.l7           2.426e-02  1.371e-02   1.769 0.076885 .  
## hydrogensulfide.l7   2.345e-04  1.274e-03   0.184 0.854019    
## carbondioxide.l7    -9.865e-04  1.941e-03  -0.508 0.611229    
## ammonia.l8           3.080e-02  1.372e-02   2.245 0.024799 *  
## hydrogensulfide.l8   1.136e-03  1.274e-03   0.892 0.372622    
## carbondioxide.l8     3.360e-03  1.940e-03   1.732 0.083374 .  
## ammonia.l9           4.881e-02  1.370e-02   3.562 0.000372 ***
## hydrogensulfide.l9   7.095e-04  1.275e-03   0.556 0.577994    
## carbondioxide.l9     1.609e-03  1.939e-03   0.830 0.406663    
## ammonia.l10          6.541e-02  1.369e-02   4.780 1.80e-06 ***
## hydrogensulfide.l10 -6.139e-03  1.275e-03  -4.814 1.51e-06 ***
## carbondioxide.l10   -8.184e-04  1.938e-03  -0.422 0.672916    
## ammonia.l11         -1.302e-02  1.367e-02  -0.952 0.340973    
## hydrogensulfide.l11 -1.044e-02  1.278e-03  -8.168 3.79e-16 ***
## carbondioxide.l11    3.511e-04  1.934e-03   0.182 0.855964    
## ammonia.l12          8.622e-02  1.356e-02   6.360 2.17e-10 ***
## hydrogensulfide.l12  2.152e-03  1.281e-03   1.680 0.093093 .  
## carbondioxide.l12   -1.214e-03  1.930e-03  -0.629 0.529430    
## ammonia.l13          9.509e-03  1.350e-02   0.704 0.481257    
## hydrogensulfide.l13  2.267e-03  1.280e-03   1.771 0.076545 .  
## carbondioxide.l13   -2.774e-03  1.897e-03  -1.462 0.143740    
## ammonia.l14         -3.028e-02  1.310e-02  -2.312 0.020838 *  
## hydrogensulfide.l14  1.090e-02  1.275e-03   8.551  < 2e-16 ***
## carbondioxide.l14   -7.976e-04  1.608e-03  -0.496 0.619879    
## const               -4.713e-01  4.202e-01  -1.122 0.262094    
## trend               -3.624e-05  1.549e-05  -2.340 0.019316 *  
## sd1                 -1.520e-01  2.917e-01  -0.521 0.602303    
## sd2                  1.801e-01  2.922e-01   0.616 0.537620    
## sd3                 -1.639e-01  2.917e-01  -0.562 0.574242    
## sd4                  1.111e-01  2.918e-01   0.381 0.703319    
## sd5                  9.940e-02  2.918e-01   0.341 0.733405    
## sd6                  4.671e-01  2.918e-01   1.601 0.109485    
## sd7                  1.453e-01  2.915e-01   0.498 0.618234    
## sd8                  2.083e-01  2.920e-01   0.713 0.475601    
## sd9                 -4.776e-01  2.925e-01  -1.633 0.102566    
## sd10                 3.789e-01  2.920e-01   1.298 0.194464    
## sd11                 2.685e-01  2.915e-01   0.921 0.356969    
## sd12                -1.073e-02  2.917e-01  -0.037 0.970663    
## sd13                -3.162e-02  2.918e-01  -0.108 0.913722    
## sd14                 1.197e-01  2.915e-01   0.411 0.681420    
## sd15                -2.079e-01  2.901e-01  -0.717 0.473620    
## sd16                 2.253e-01  2.904e-01   0.776 0.437902    
## sd17                 1.059e-01  2.905e-01   0.364 0.715516    
## sd18                 5.038e-02  2.899e-01   0.174 0.862048    
## sd19                 2.040e-01  2.910e-01   0.701 0.483313    
## sd20                -1.007e-01  2.905e-01  -0.347 0.728875    
## sd21                 1.680e-01  2.904e-01   0.578 0.562968    
## sd22                 7.071e-01  2.901e-01   2.438 0.014807 *  
## sd23                -1.139e-01  2.904e-01  -0.392 0.694851    
## sd24                 3.011e-01  2.902e-01   1.037 0.299575    
## sd25                -6.850e-02  2.905e-01  -0.236 0.813593    
## sd26                 3.019e-01  2.899e-01   1.041 0.297705    
## sd27                 1.989e-01  2.904e-01   0.685 0.493343    
## sd28                 1.986e-02  2.900e-01   0.068 0.945422    
## sd29                 1.941e-01  2.898e-01   0.670 0.503154    
## sd30                 7.078e-01  2.904e-01   2.438 0.014810 *  
## sd31                 1.662e-01  2.901e-01   0.573 0.566676    
## sd32                 7.215e-02  2.914e-01   0.248 0.804481    
## sd33                 5.210e-02  2.917e-01   0.179 0.858267    
## sd34                -1.170e-01  2.915e-01  -0.401 0.688078    
## sd35                 9.677e-02  2.913e-01   0.332 0.739734    
## sd36                -1.847e-02  2.912e-01  -0.063 0.949441    
## sd37                 2.796e-01  2.911e-01   0.960 0.336866    
## sd38                 1.335e-01  2.913e-01   0.458 0.646860    
## sd39                -2.801e-02  2.913e-01  -0.096 0.923393    
## sd40                 2.612e-01  2.908e-01   0.898 0.369272    
## sd41                 2.413e-01  2.915e-01   0.828 0.407824    
## sd42                 1.113e-01  2.911e-01   0.382 0.702213    
## sd43                 1.770e-02  2.911e-01   0.061 0.951534    
## sd44                 2.130e-01  2.914e-01   0.731 0.464990    
## sd45                 1.235e-01  2.912e-01   0.424 0.671385    
## sd46                 1.109e-01  2.910e-01   0.381 0.703222    
## sd47                 3.138e-01  2.910e-01   1.078 0.280971    
## sd48                 1.478e-01  2.913e-01   0.507 0.611859    
## sd49                 2.476e-01  2.910e-01   0.851 0.394780    
## sd50                 9.353e-02  2.915e-01   0.321 0.748337    
## sd51                 1.685e-01  2.911e-01   0.579 0.562808    
## sd52                 2.614e-01  2.913e-01   0.897 0.369679    
## sd53                 1.334e-01  2.910e-01   0.458 0.646707    
## sd54                 1.699e-01  2.912e-01   0.584 0.559548    
## sd55                -3.782e-02  2.913e-01  -0.130 0.896708    
## sd56                -4.665e-02  2.914e-01  -0.160 0.872804    
## sd57                 2.336e-01  2.910e-01   0.803 0.422039    
## sd58                 5.373e-01  2.913e-01   1.845 0.065141 .  
## sd59                 1.875e-01  2.910e-01   0.644 0.519370    
## sd60                 6.189e-01  2.911e-01   2.126 0.033563 *  
## sd61                -2.298e-01  2.915e-01  -0.789 0.430384    
## sd62                 2.688e-01  2.913e-01   0.923 0.356172    
## sd63                 2.531e-01  2.914e-01   0.868 0.385222    
## sd64                 1.967e-01  2.913e-01   0.675 0.499587    
## sd65                 1.891e-01  2.915e-01   0.649 0.516520    
## sd66                -2.345e-01  2.916e-01  -0.804 0.421313    
## sd67                 1.561e-01  2.913e-01   0.536 0.592107    
## sd68                 3.513e-02  2.913e-01   0.121 0.904039    
## sd69                 3.546e-02  2.911e-01   0.122 0.903054    
## sd70                 8.768e-02  2.913e-01   0.301 0.763478    
## sd71                 1.725e-01  2.915e-01   0.592 0.554017    
## sd72                 2.527e-01  2.913e-01   0.867 0.385715    
## sd73                 2.377e-01  2.914e-01   0.816 0.414649    
## sd74                 1.261e-01  2.914e-01   0.433 0.665055    
## sd75                -9.159e-02  2.914e-01  -0.314 0.753306    
## sd76                -2.732e-03  2.913e-01  -0.009 0.992517    
## sd77                -3.340e-01  2.911e-01  -1.147 0.251245    
## sd78                -9.867e-02  2.912e-01  -0.339 0.734741    
## sd79                 2.932e-01  2.909e-01   1.008 0.313580    
## sd80                 1.193e-01  2.911e-01   0.410 0.681798    
## sd81                -1.812e-01  2.911e-01  -0.622 0.533705    
## sd82                 2.473e-01  2.913e-01   0.849 0.396051    
## sd83                 2.906e-01  2.911e-01   0.998 0.318288    
## sd84                 5.762e-01  2.911e-01   1.979 0.047817 *  
## sd85                 3.123e-01  2.912e-01   1.073 0.283501    
## sd86                 6.922e-01  2.916e-01   2.374 0.017648 *  
## sd87                 3.632e-01  2.916e-01   1.245 0.213102    
## sd88                 1.249e-01  2.913e-01   0.429 0.668107    
## sd89                 4.790e-01  2.912e-01   1.645 0.099997 .  
## sd90                 2.744e-01  2.915e-01   0.941 0.346644    
## sd91                 6.048e-01  2.912e-01   2.077 0.037859 *  
## sd92                -1.608e-01  2.912e-01  -0.552 0.580957    
## sd93                -3.942e-01  2.914e-01  -1.353 0.176189    
## sd94                 2.086e-01  2.918e-01   0.715 0.474641    
## sd95                 8.021e-02  2.917e-01   0.275 0.783333    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 1.626 on 5926 degrees of freedom
## Multiple R-Squared: 0.8439,  Adjusted R-squared: 0.8402 
## F-statistic: 232.1 on 138 and 5926 DF,  p-value: < 2.2e-16 
## 
## 
## Estimation results for equation hydrogensulfide: 
## ================================================ 
## hydrogensulfide = ammonia.l1 + hydrogensulfide.l1 + carbondioxide.l1 + ammonia.l2 + hydrogensulfide.l2 + carbondioxide.l2 + ammonia.l3 + hydrogensulfide.l3 + carbondioxide.l3 + ammonia.l4 + hydrogensulfide.l4 + carbondioxide.l4 + ammonia.l5 + hydrogensulfide.l5 + carbondioxide.l5 + ammonia.l6 + hydrogensulfide.l6 + carbondioxide.l6 + ammonia.l7 + hydrogensulfide.l7 + carbondioxide.l7 + ammonia.l8 + hydrogensulfide.l8 + carbondioxide.l8 + ammonia.l9 + hydrogensulfide.l9 + carbondioxide.l9 + ammonia.l10 + hydrogensulfide.l10 + carbondioxide.l10 + ammonia.l11 + hydrogensulfide.l11 + carbondioxide.l11 + ammonia.l12 + hydrogensulfide.l12 + carbondioxide.l12 + ammonia.l13 + hydrogensulfide.l13 + carbondioxide.l13 + ammonia.l14 + hydrogensulfide.l14 + carbondioxide.l14 + const + trend + sd1 + sd2 + sd3 + sd4 + sd5 + sd6 + sd7 + sd8 + sd9 + sd10 + sd11 + sd12 + sd13 + sd14 + sd15 + sd16 + sd17 + sd18 + sd19 + sd20 + sd21 + sd22 + sd23 + sd24 + sd25 + sd26 + sd27 + sd28 + sd29 + sd30 + sd31 + sd32 + sd33 + sd34 + sd35 + sd36 + sd37 + sd38 + sd39 + sd40 + sd41 + sd42 + sd43 + sd44 + sd45 + sd46 + sd47 + sd48 + sd49 + sd50 + sd51 + sd52 + sd53 + sd54 + sd55 + sd56 + sd57 + sd58 + sd59 + sd60 + sd61 + sd62 + sd63 + sd64 + sd65 + sd66 + sd67 + sd68 + sd69 + sd70 + sd71 + sd72 + sd73 + sd74 + sd75 + sd76 + sd77 + sd78 + sd79 + sd80 + sd81 + sd82 + sd83 + sd84 + sd85 + sd86 + sd87 + sd88 + sd89 + sd90 + sd91 + sd92 + sd93 + sd94 + sd95 
## 
##                       Estimate Std. Error t value Pr(>|t|)    
## ammonia.l1           1.659e-01  1.341e-01   1.237 0.216141    
## hydrogensulfide.l1   9.544e-02  1.295e-02   7.372 1.91e-13 ***
## carbondioxide.l1     6.676e-03  1.643e-02   0.406 0.684515    
## ammonia.l2          -7.970e-01  1.380e-01  -5.773 8.16e-09 ***
## hydrogensulfide.l2  -2.067e-02  1.300e-02  -1.589 0.112067    
## carbondioxide.l2    -3.163e-02  1.948e-02  -1.624 0.104535    
## ammonia.l3           2.184e-01  1.391e-01   1.571 0.116346    
## hydrogensulfide.l3   1.115e-01  1.300e-02   8.578  < 2e-16 ***
## carbondioxide.l3     5.080e-02  1.980e-02   2.566 0.010323 *  
## ammonia.l4           5.828e-02  1.396e-01   0.418 0.676237    
## hydrogensulfide.l4  -5.197e-02  1.301e-02  -3.995 6.55e-05 ***
## carbondioxide.l4     3.789e-02  1.981e-02   1.913 0.055842 .  
## ammonia.l5           4.380e-02  1.398e-01   0.313 0.754010    
## hydrogensulfide.l5   3.826e-03  1.303e-02   0.294 0.769014    
## carbondioxide.l5    -5.633e-02  1.979e-02  -2.846 0.004442 ** 
## ammonia.l6           7.430e-03  1.400e-01   0.053 0.957673    
## hydrogensulfide.l6  -2.469e-02  1.303e-02  -1.895 0.058098 .  
## carbondioxide.l6     7.799e-03  1.981e-02   0.394 0.693824    
## ammonia.l7           3.515e-01  1.401e-01   2.509 0.012121 *  
## hydrogensulfide.l7   1.802e-01  1.301e-02  13.845  < 2e-16 ***
## carbondioxide.l7    -2.070e-02  1.982e-02  -1.044 0.296365    
## ammonia.l8           1.739e-01  1.401e-01   1.241 0.214495    
## hydrogensulfide.l8  -5.459e-02  1.302e-02  -4.194 2.78e-05 ***
## carbondioxide.l8     2.091e-02  1.982e-02   1.055 0.291401    
## ammonia.l9           5.229e-01  1.400e-01   3.736 0.000188 ***
## hydrogensulfide.l9  -1.516e-03  1.303e-02  -0.116 0.907348    
## carbondioxide.l9     2.291e-02  1.980e-02   1.157 0.247297    
## ammonia.l10          4.835e-01  1.398e-01   3.460 0.000545 ***
## hydrogensulfide.l10 -5.106e-02  1.302e-02  -3.921 8.92e-05 ***
## carbondioxide.l10   -3.681e-02  1.980e-02  -1.859 0.063058 .  
## ammonia.l11         -4.675e-01  1.396e-01  -3.348 0.000819 ***
## hydrogensulfide.l11  9.509e-02  1.305e-02   7.288 3.56e-13 ***
## carbondioxide.l11   -1.049e-02  1.976e-02  -0.531 0.595599    
## ammonia.l12          1.008e-01  1.385e-01   0.728 0.466772    
## hydrogensulfide.l12  4.863e-02  1.308e-02   3.717 0.000204 ***
## carbondioxide.l12    1.899e-02  1.971e-02   0.963 0.335446    
## ammonia.l13         -2.753e-01  1.379e-01  -1.997 0.045906 *  
## hydrogensulfide.l13 -1.667e-02  1.307e-02  -1.275 0.202403    
## carbondioxide.l13    5.683e-03  1.938e-02   0.293 0.769291    
## ammonia.l14         -3.661e-01  1.338e-01  -2.736 0.006229 ** 
## hydrogensulfide.l14  1.374e-01  1.302e-02  10.549  < 2e-16 ***
## carbondioxide.l14    7.734e-03  1.642e-02   0.471 0.637674    
## const               -1.455e+01  4.292e+00  -3.390 0.000702 ***
## trend                1.807e-04  1.582e-04   1.143 0.253280    
## sd1                 -1.087e+00  2.979e+00  -0.365 0.715332    
## sd2                 -2.399e+00  2.984e+00  -0.804 0.421430    
## sd3                 -4.576e-01  2.979e+00  -0.154 0.877926    
## sd4                 -3.443e-01  2.980e+00  -0.116 0.908015    
## sd5                  2.893e+00  2.980e+00   0.971 0.331654    
## sd6                 -1.685e+00  2.980e+00  -0.566 0.571730    
## sd7                 -1.627e-01  2.978e+00  -0.055 0.956414    
## sd8                  8.148e-02  2.982e+00   0.027 0.978202    
## sd9                  2.679e+00  2.987e+00   0.897 0.369890    
## sd10                -1.404e+00  2.982e+00  -0.471 0.637822    
## sd11                -3.955e-01  2.977e+00  -0.133 0.894306    
## sd12                -2.729e+00  2.979e+00  -0.916 0.359663    
## sd13                 7.810e+00  2.980e+00   2.620 0.008805 ** 
## sd14                -6.744e-01  2.977e+00  -0.227 0.820765    
## sd15                 9.623e-01  2.963e+00   0.325 0.745351    
## sd16                 8.074e-01  2.965e+00   0.272 0.785433    
## sd17                 1.585e+00  2.967e+00   0.534 0.593060    
## sd18                 2.051e+00  2.961e+00   0.693 0.488540    
## sd19                 4.975e-02  2.972e+00   0.017 0.986646    
## sd20                -1.355e+00  2.967e+00  -0.457 0.647769    
## sd21                 3.484e-01  2.965e+00   0.117 0.906468    
## sd22                 1.751e-01  2.962e+00   0.059 0.952862    
## sd23                 9.140e-01  2.966e+00   0.308 0.757955    
## sd24                 1.026e+00  2.964e+00   0.346 0.729228    
## sd25                -3.838e-01  2.967e+00  -0.129 0.897068    
## sd26                 6.353e-01  2.961e+00   0.215 0.830124    
## sd27                 1.489e+00  2.965e+00   0.502 0.615699    
## sd28                -5.252e-01  2.962e+00  -0.177 0.859272    
## sd29                 5.906e-01  2.960e+00   0.200 0.841868    
## sd30                -1.523e-01  2.965e+00  -0.051 0.959050    
## sd31                -3.943e-01  2.963e+00  -0.133 0.894128    
## sd32                 5.506e-01  2.976e+00   0.185 0.853247    
## sd33                 1.093e+00  2.980e+00   0.367 0.713868    
## sd34                -9.401e-01  2.977e+00  -0.316 0.752169    
## sd35                 9.802e-01  2.975e+00   0.329 0.741806    
## sd36                -3.678e-01  2.974e+00  -0.124 0.901588    
## sd37                -4.965e-01  2.973e+00  -0.167 0.867391    
## sd38                 4.515e+00  2.975e+00   1.518 0.129159    
## sd39                -7.837e-01  2.975e+00  -0.263 0.792193    
## sd40                 1.101e+00  2.970e+00   0.371 0.711011    
## sd41                -1.177e+00  2.977e+00  -0.395 0.692691    
## sd42                 1.733e+00  2.973e+00   0.583 0.559996    
## sd43                -1.477e-02  2.973e+00  -0.005 0.996036    
## sd44                 5.841e+00  2.977e+00   1.962 0.049786 *  
## sd45                -1.078e+00  2.974e+00  -0.362 0.717003    
## sd46                 4.384e-01  2.972e+00   0.147 0.882765    
## sd47                -1.231e+00  2.972e+00  -0.414 0.678696    
## sd48                 4.675e-01  2.975e+00   0.157 0.875156    
## sd49                -7.899e-01  2.972e+00  -0.266 0.790402    
## sd50                 7.144e-01  2.977e+00   0.240 0.810360    
## sd51                -9.325e-01  2.973e+00  -0.314 0.753813    
## sd52                -2.741e-01  2.975e+00  -0.092 0.926599    
## sd53                -1.663e-01  2.972e+00  -0.056 0.955388    
## sd54                 2.421e-01  2.974e+00   0.081 0.935106    
## sd55                 3.155e-01  2.975e+00   0.106 0.915531    
## sd56                -3.814e-01  2.976e+00  -0.128 0.898026    
## sd57                -1.661e-01  2.972e+00  -0.056 0.955425    
## sd58                 2.501e+00  2.975e+00   0.841 0.400492    
## sd59                -4.874e-01  2.972e+00  -0.164 0.869757    
## sd60                 1.360e+00  2.973e+00   0.457 0.647448    
## sd61                -5.622e-01  2.977e+00  -0.189 0.850202    
## sd62                 6.130e-01  2.975e+00   0.206 0.836778    
## sd63                -3.109e-01  2.976e+00  -0.104 0.916802    
## sd64                 6.895e-01  2.976e+00   0.232 0.816750    
## sd65                 4.459e-02  2.977e+00   0.015 0.988049    
## sd66                 6.555e-01  2.979e+00   0.220 0.825815    
## sd67                -6.332e-01  2.975e+00  -0.213 0.831434    
## sd68                 1.010e+00  2.976e+00   0.339 0.734322    
## sd69                -7.061e-01  2.973e+00  -0.238 0.812261    
## sd70                -1.184e-01  2.976e+00  -0.040 0.968252    
## sd71                -3.927e-01  2.977e+00  -0.132 0.895044    
## sd72                -4.032e-01  2.975e+00  -0.136 0.892201    
## sd73                -6.422e-02  2.976e+00  -0.022 0.982784    
## sd74                 8.019e-01  2.976e+00   0.269 0.787567    
## sd75                 9.609e-02  2.976e+00   0.032 0.974244    
## sd76                 3.824e-01  2.975e+00   0.129 0.897743    
## sd77                -1.769e-01  2.973e+00  -0.059 0.952559    
## sd78                 1.665e+00  2.974e+00   0.560 0.575521    
## sd79                -7.014e-01  2.971e+00  -0.236 0.813406    
## sd80                -6.638e-01  2.973e+00  -0.223 0.823294    
## sd81                -2.071e-01  2.973e+00  -0.070 0.944455    
## sd82                -2.312e-01  2.975e+00  -0.078 0.938072    
## sd83                 5.051e+00  2.973e+00   1.699 0.089430 .  
## sd84                 1.131e-01  2.973e+00   0.038 0.969652    
## sd85                 1.203e-01  2.974e+00   0.040 0.967737    
## sd86                 2.131e+00  2.979e+00   0.715 0.474363    
## sd87                 9.235e+00  2.979e+00   3.100 0.001942 ** 
## sd88                 4.496e+00  2.975e+00   1.511 0.130823    
## sd89                 1.261e+00  2.974e+00   0.424 0.671625    
## sd90                -2.065e+00  2.977e+00  -0.694 0.487913    
## sd91                 9.099e+00  2.974e+00   3.060 0.002227 ** 
## sd92                 1.048e-01  2.974e+00   0.035 0.971884    
## sd93                 1.110e+00  2.976e+00   0.373 0.709180    
## sd94                 1.136e+01  2.980e+00   3.812 0.000139 ***
## sd95                 4.994e+00  2.979e+00   1.677 0.093686 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 16.6 on 5926 degrees of freedom
## Multiple R-Squared: 0.1379,  Adjusted R-squared: 0.1178 
## F-statistic: 6.867 on 138 and 5926 DF,  p-value: < 2.2e-16 
## 
## 
## Estimation results for equation carbondioxide: 
## ============================================== 
## carbondioxide = ammonia.l1 + hydrogensulfide.l1 + carbondioxide.l1 + ammonia.l2 + hydrogensulfide.l2 + carbondioxide.l2 + ammonia.l3 + hydrogensulfide.l3 + carbondioxide.l3 + ammonia.l4 + hydrogensulfide.l4 + carbondioxide.l4 + ammonia.l5 + hydrogensulfide.l5 + carbondioxide.l5 + ammonia.l6 + hydrogensulfide.l6 + carbondioxide.l6 + ammonia.l7 + hydrogensulfide.l7 + carbondioxide.l7 + ammonia.l8 + hydrogensulfide.l8 + carbondioxide.l8 + ammonia.l9 + hydrogensulfide.l9 + carbondioxide.l9 + ammonia.l10 + hydrogensulfide.l10 + carbondioxide.l10 + ammonia.l11 + hydrogensulfide.l11 + carbondioxide.l11 + ammonia.l12 + hydrogensulfide.l12 + carbondioxide.l12 + ammonia.l13 + hydrogensulfide.l13 + carbondioxide.l13 + ammonia.l14 + hydrogensulfide.l14 + carbondioxide.l14 + const + trend + sd1 + sd2 + sd3 + sd4 + sd5 + sd6 + sd7 + sd8 + sd9 + sd10 + sd11 + sd12 + sd13 + sd14 + sd15 + sd16 + sd17 + sd18 + sd19 + sd20 + sd21 + sd22 + sd23 + sd24 + sd25 + sd26 + sd27 + sd28 + sd29 + sd30 + sd31 + sd32 + sd33 + sd34 + sd35 + sd36 + sd37 + sd38 + sd39 + sd40 + sd41 + sd42 + sd43 + sd44 + sd45 + sd46 + sd47 + sd48 + sd49 + sd50 + sd51 + sd52 + sd53 + sd54 + sd55 + sd56 + sd57 + sd58 + sd59 + sd60 + sd61 + sd62 + sd63 + sd64 + sd65 + sd66 + sd67 + sd68 + sd69 + sd70 + sd71 + sd72 + sd73 + sd74 + sd75 + sd76 + sd77 + sd78 + sd79 + sd80 + sd81 + sd82 + sd83 + sd84 + sd85 + sd86 + sd87 + sd88 + sd89 + sd90 + sd91 + sd92 + sd93 + sd94 + sd95 
## 
##                       Estimate Std. Error t value Pr(>|t|)    
## ammonia.l1          -0.4234275  0.1072126  -3.949 7.92e-05 ***
## hydrogensulfide.l1   0.0180098  0.0103472   1.741 0.081815 .  
## carbondioxide.l1     0.6438456  0.0131321  49.029  < 2e-16 ***
## ammonia.l2           0.1177476  0.1103258   1.067 0.285892    
## hydrogensulfide.l2  -0.0194226  0.0103937  -1.869 0.061714 .  
## carbondioxide.l2     0.2194782  0.0155711  14.095  < 2e-16 ***
## ammonia.l3          -0.2266287  0.1111597  -2.039 0.041517 *  
## hydrogensulfide.l3  -0.0267058  0.0103934  -2.570 0.010209 *  
## carbondioxide.l3     0.0184779  0.0158243   1.168 0.242977    
## ammonia.l4           0.4336624  0.1115426   3.888 0.000102 ***
## hydrogensulfide.l4  -0.0396459  0.0103975  -3.813 0.000139 ***
## carbondioxide.l4    -0.0062392  0.0158319  -0.394 0.693528    
## ammonia.l5           0.0644197  0.1117199   0.577 0.564219    
## hydrogensulfide.l5   0.0253858  0.0104128   2.438 0.014801 *  
## carbondioxide.l5     0.0330747  0.0158198   2.091 0.036595 *  
## ammonia.l6           0.2105700  0.1118879   1.882 0.059889 .  
## hydrogensulfide.l6   0.0197087  0.0104135   1.893 0.058458 .  
## carbondioxide.l6     0.0505471  0.0158333   3.192 0.001418 ** 
## ammonia.l7           0.0679006  0.1119367   0.607 0.544141    
## hydrogensulfide.l7   0.0055220  0.0104004   0.531 0.595479    
## carbondioxide.l7    -0.0114000  0.0158400  -0.720 0.471742    
## ammonia.l8          -0.1941234  0.1119715  -1.734 0.083026 .  
## hydrogensulfide.l8   0.0004894  0.0104021   0.047 0.962473    
## carbondioxide.l8     0.0033246  0.0158374   0.210 0.833737    
## ammonia.l9           0.1165815  0.1118545   1.042 0.297333    
## hydrogensulfide.l9  -0.0239031  0.0104100  -2.296 0.021701 *  
## carbondioxide.l9    -0.0316721  0.0158265  -2.001 0.045415 *  
## ammonia.l10         -0.1272829  0.1117085  -1.139 0.254574    
## hydrogensulfide.l10  0.0159606  0.0104075   1.534 0.125189    
## carbondioxide.l10    0.0167994  0.0158226   1.062 0.288400    
## ammonia.l11          0.1317935  0.1115938   1.181 0.237646    
## hydrogensulfide.l11 -0.0353883  0.0104285  -3.393 0.000695 ***
## carbondioxide.l11   -0.0007360  0.0157904  -0.047 0.962826    
## ammonia.l12         -0.1550349  0.1106556  -1.401 0.161249    
## hydrogensulfide.l12  0.0088599  0.0104568   0.847 0.396870    
## carbondioxide.l12   -0.0197873  0.0157526  -1.256 0.209118    
## ammonia.l13         -0.0031826  0.1102072  -0.029 0.976963    
## hydrogensulfide.l13  0.0021914  0.0104478   0.210 0.833869    
## carbondioxide.l13    0.0018226  0.0154862   0.118 0.906316    
## ammonia.l14          0.0769552  0.1069353   0.720 0.471773    
## hydrogensulfide.l14 -0.0021766  0.0104063  -0.209 0.834328    
## carbondioxide.l14    0.0326431  0.0131249   2.487 0.012906 *  
## const               28.1148962  3.4302246   8.196 3.01e-16 ***
## trend               -0.0002768  0.0001264  -2.189 0.028622 *  
## sd1                 -0.5379689  2.3810925  -0.226 0.821261    
## sd2                 -1.2443674  2.3848016  -0.522 0.601836    
## sd3                  0.0818930  2.3812042   0.034 0.972566    
## sd4                  0.7951990  2.3816243   0.334 0.738475    
## sd5                  1.9159915  2.3819250   0.804 0.421205    
## sd6                  0.6128484  2.3819140   0.257 0.796962    
## sd7                 -1.8540013  2.3797897  -0.779 0.435975    
## sd8                 -4.7419293  2.3831491  -1.990 0.046662 *  
## sd9                 -2.8980343  2.3876045  -1.214 0.224879    
## sd10                 0.4738645  2.3831426   0.199 0.842395    
## sd11                 0.9442525  2.3792556   0.397 0.691478    
## sd12                -2.6766374  2.3806906  -1.124 0.260927    
## sd13                 0.3369924  2.3820706   0.141 0.887503    
## sd14                 1.4074953  2.3791130   0.592 0.554138    
## sd15                 0.1616304  2.3679496   0.068 0.945583    
## sd16                 0.9767906  2.3700997   0.412 0.680259    
## sd17                -0.4927691  2.3710376  -0.208 0.835370    
## sd18                 0.0424737  2.3663867   0.018 0.985680    
## sd19                 1.6820537  2.3753136   0.708 0.478886    
## sd20                -1.1415073  2.3710109  -0.481 0.630219    
## sd21                -2.7794740  2.3700407  -1.173 0.240942    
## sd22                -2.5330443  2.3676857  -1.070 0.284735    
## sd23                -2.6103502  2.3704682  -1.101 0.270856    
## sd24                 1.9879780  2.3691748   0.839 0.401446    
## sd25                -0.2985414  2.3712864  -0.126 0.899817    
## sd26                -0.0889686  2.3664099  -0.038 0.970011    
## sd27                -0.3756527  2.3700639  -0.158 0.874069    
## sd28                -0.1840984  2.3673773  -0.078 0.938018    
## sd29                 0.7733254  2.3658317   0.327 0.743776    
## sd30                 0.0222857  2.3700808   0.009 0.992498    
## sd31                 3.9391696  2.3678732   1.664 0.096247 .  
## sd32                -0.7783652  2.3789001  -0.327 0.743532    
## sd33                 0.2624532  2.3813804   0.110 0.912246    
## sd34                 0.4495148  2.3791423   0.189 0.850146    
## sd35                -3.1476264  2.3776212  -1.324 0.185602    
## sd36                -3.4336472  2.3769350  -1.445 0.148632    
## sd37                 0.5795289  2.3764469   0.244 0.807345    
## sd38                 0.1035992  2.3777675   0.044 0.965249    
## sd39                -2.4017488  2.3774319  -1.010 0.312427    
## sd40                -1.1823128  2.3740611  -0.498 0.618494    
## sd41                -1.6570666  2.3794662  -0.696 0.486204    
## sd42                -0.1086294  2.3757714  -0.046 0.963532    
## sd43                 0.1719526  2.3764040   0.072 0.942319    
## sd44                 1.3749047  2.3789626   0.578 0.563325    
## sd45                -0.3638319  2.3768303  -0.153 0.878345    
## sd46                -1.3830584  2.3756875  -0.582 0.560473    
## sd47                -1.3979353  2.3756648  -0.588 0.556260    
## sd48                 0.6347112  2.3779510   0.267 0.789544    
## sd49                 1.0921006  2.3752584   0.460 0.645690    
## sd50                -0.8833846  2.3793473  -0.371 0.710448    
## sd51                 1.6333178  2.3762490   0.687 0.491888    
## sd52                 0.4360420  2.3780835   0.183 0.854523    
## sd53                -3.2064487  2.3751911  -1.350 0.177076    
## sd54                -1.1965825  2.3767368  -0.503 0.614662    
## sd55                 2.0460748  2.3776009   0.861 0.389514    
## sd56                -2.2113002  2.3783987  -0.930 0.352542    
## sd57                 0.5331097  2.3751134   0.224 0.822410    
## sd58                 0.0975357  2.3775107   0.041 0.967278    
## sd59                -1.6654063  2.3756040  -0.701 0.483302    
## sd60                 0.1649883  2.3764832   0.069 0.944653    
## sd61                -0.4548878  2.3790027  -0.191 0.848368    
## sd62                 5.1004809  2.3779144   2.145 0.031998 *  
## sd63                 1.1175237  2.3788970   0.470 0.638540    
## sd64                -1.6648732  2.3781628  -0.700 0.483913    
## sd65                -0.4418780  2.3791077  -0.186 0.852661    
## sd66                -1.5925550  2.3805220  -0.669 0.503525    
## sd67                 0.3804215  2.3774330   0.160 0.872876    
## sd68                 0.6508273  2.3781443   0.274 0.784348    
## sd69                -0.5606870  2.3760753  -0.236 0.813463    
## sd70                 2.6298598  2.3781627   1.106 0.268842    
## sd71                 0.0557424  2.3792318   0.023 0.981309    
## sd72                 1.2388323  2.3777838   0.521 0.602384    
## sd73                -0.3826507  2.3785286  -0.161 0.872196    
## sd74                -0.7253846  2.3781669  -0.305 0.760363    
## sd75                -2.9791587  2.3786087  -1.252 0.210445    
## sd76                -0.4860843  2.3779870  -0.204 0.838040    
## sd77                -0.2647202  2.3761603  -0.111 0.911298    
## sd78                -0.0201609  2.3768197  -0.008 0.993232    
## sd79                -0.0564806  2.3747788  -0.024 0.981026    
## sd80                -1.0167303  2.3757905  -0.428 0.668700    
## sd81                -1.0627282  2.3759203  -0.447 0.654681    
## sd82                 0.6478705  2.3781100   0.272 0.785300    
## sd83                -0.3547049  2.3764847  -0.149 0.881357    
## sd84                -0.1000723  2.3762749  -0.042 0.966410    
## sd85                 2.8107567  2.3767048   1.183 0.237004    
## sd86                 0.7779452  2.3805505   0.327 0.743837    
## sd87                 1.1315008  2.3805778   0.475 0.634587    
## sd88                -3.4025042  2.3778876  -1.431 0.152513    
## sd89                -0.2836936  2.3767311  -0.119 0.904992    
## sd90                 0.8073528  2.3795283   0.339 0.734402    
## sd91                -0.3690178  2.3769890  -0.155 0.876633    
## sd92                -1.8389141  2.3771822  -0.774 0.439217    
## sd93                -3.9284278  2.3785367  -1.652 0.098666 .  
## sd94                 0.5565526  2.3818475   0.234 0.815254    
## sd95                -0.7672144  2.3807786  -0.322 0.747272    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 13.27 on 5926 degrees of freedom
## Multiple R-Squared: 0.8722,  Adjusted R-squared: 0.8692 
## F-statistic: 293.1 on 138 and 5926 DF,  p-value: < 2.2e-16 
## 
## 
## 
## Covariance matrix of residuals:
##                 ammonia hydrogensulfide carbondioxide
## ammonia           2.642          2.5613        3.2642
## hydrogensulfide   2.561        275.6101       -0.7422
## carbondioxide     3.264         -0.7422      176.0517
## 
## Correlation matrix of residuals:
##                 ammonia hydrogensulfide carbondioxide
## ammonia         1.00000         0.09491       0.15134
## hydrogensulfide 0.09491         1.00000      -0.00337
## carbondioxide   0.15134        -0.00337       1.00000
var_res_fit <- restrict(var_fit, method = "ser", thresh = 2)
summary(var_res_fit)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: ammonia, hydrogensulfide, carbondioxide 
## Deterministic variables: both 
## Sample size: 6065 
## Log Likelihood: -61280.729 
## Roots of the characteristic polynomial:
## 0.9912 0.9714 0.9254 0.9013 0.9013 0.8998 0.8998 0.8977 0.8977 0.8591 0.8591 0.8495 0.8495 0.8298 0.8298 0.8211 0.8211 0.8111 0.8111 0.8064 0.8064 0.799 0.799 0.798 0.798 0.7939 0.7939 0.7687 0.7687 0.7569 0.7559 0.7559 0.7546 0.7546 0.7536 0.7536 0.7412 0.7412 0.7355 0.7355 0.1556 0.06387
## Call:
## VAR(y = gas, p = 14, type = "both", season = 96L)
## 
## 
## Estimation results for equation ammonia: 
## ======================================== 
## ammonia = ammonia.l1 + hydrogensulfide.l1 + carbondioxide.l1 + ammonia.l2 + hydrogensulfide.l2 + ammonia.l3 + carbondioxide.l3 + ammonia.l4 + ammonia.l5 + carbondioxide.l5 + ammonia.l6 + ammonia.l8 + carbondioxide.l8 + ammonia.l9 + ammonia.l10 + hydrogensulfide.l10 + hydrogensulfide.l11 + ammonia.l12 + hydrogensulfide.l13 + carbondioxide.l13 + ammonia.l14 + hydrogensulfide.l14 + trend + sd9 + sd22 + sd30 + sd60 + sd77 + sd84 + sd86 + sd91 + sd93 
## 
##                       Estimate Std. Error t value Pr(>|t|)    
## ammonia.l1           2.296e-01  1.276e-02  17.988  < 2e-16 ***
## hydrogensulfide.l1   4.336e-03  1.206e-03   3.595 0.000327 ***
## carbondioxide.l1     1.006e-02  1.307e-03   7.693 1.66e-14 ***
## ammonia.l2           1.299e-01  1.313e-02   9.894  < 2e-16 ***
## hydrogensulfide.l2  -5.339e-03  1.212e-03  -4.404 1.08e-05 ***
## ammonia.l3           1.519e-01  1.322e-02  11.491  < 2e-16 ***
## carbondioxide.l3    -3.430e-03  1.618e-03  -2.120 0.034059 *  
## ammonia.l4           1.002e-01  1.316e-02   7.613 3.09e-14 ***
## ammonia.l5           8.132e-02  1.325e-02   6.135 9.03e-10 ***
## carbondioxide.l5    -4.671e-03  1.520e-03  -3.072 0.002136 ** 
## ammonia.l6           6.249e-02  1.298e-02   4.815 1.51e-06 ***
## ammonia.l8           3.281e-02  1.312e-02   2.500 0.012458 *  
## carbondioxide.l8     3.019e-03  1.337e-03   2.257 0.024021 *  
## ammonia.l9           5.225e-02  1.311e-02   3.985 6.82e-05 ***
## ammonia.l10          6.429e-02  1.286e-02   4.998 5.96e-07 ***
## hydrogensulfide.l10 -5.862e-03  1.213e-03  -4.834 1.37e-06 ***
## hydrogensulfide.l11 -1.034e-02  1.208e-03  -8.559  < 2e-16 ***
## ammonia.l12          8.828e-02  1.253e-02   7.047 2.04e-12 ***
## hydrogensulfide.l13  2.902e-03  1.219e-03   2.380 0.017341 *  
## carbondioxide.l13   -4.257e-03  9.946e-04  -4.280 1.90e-05 ***
## ammonia.l14         -2.970e-02  1.212e-02  -2.451 0.014285 *  
## hydrogensulfide.l14  1.115e-02  1.219e-03   9.152  < 2e-16 ***
## trend               -4.246e-05  1.459e-05  -2.911 0.003620 ** 
## sd9                 -6.092e-01  2.068e-01  -2.946 0.003227 ** 
## sd22                 5.671e-01  2.040e-01   2.780 0.005456 ** 
## sd30                 5.777e-01  2.040e-01   2.831 0.004650 ** 
## sd60                 4.984e-01  2.056e-01   2.424 0.015373 *  
## sd77                -4.645e-01  2.055e-01  -2.260 0.023827 *  
## sd84                 4.350e-01  2.056e-01   2.115 0.034433 *  
## sd86                 5.733e-01  2.057e-01   2.786 0.005345 ** 
## sd91                 4.821e-01  2.058e-01   2.343 0.019185 *  
## sd93                -5.091e-01  2.060e-01  -2.471 0.013500 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 1.621 on 6033 degrees of freedom
## Multiple R-Squared: 0.9632,  Adjusted R-squared: 0.963 
## F-statistic:  4928 on 32 and 6033 DF,  p-value: < 2.2e-16 
## 
## 
## Estimation results for equation hydrogensulfide: 
## ================================================ 
## hydrogensulfide = hydrogensulfide.l1 + ammonia.l2 + ammonia.l3 + hydrogensulfide.l3 + carbondioxide.l3 + hydrogensulfide.l4 + carbondioxide.l4 + carbondioxide.l5 + hydrogensulfide.l6 + ammonia.l7 + hydrogensulfide.l7 + hydrogensulfide.l8 + ammonia.l9 + ammonia.l10 + hydrogensulfide.l10 + ammonia.l11 + hydrogensulfide.l11 + hydrogensulfide.l12 + ammonia.l14 + hydrogensulfide.l14 + const + sd13 + sd38 + sd44 + sd83 + sd87 + sd88 + sd91 + sd94 + sd95 
## 
##                      Estimate Std. Error t value Pr(>|t|)    
## hydrogensulfide.l1    0.09332    0.01257   7.422 1.31e-13 ***
## ammonia.l2           -0.75567    0.12452  -6.069 1.37e-09 ***
## ammonia.l3            0.30147    0.12716   2.371 0.017778 *  
## hydrogensulfide.l3    0.10507    0.01261   8.331  < 2e-16 ***
## carbondioxide.l3      0.03634    0.01599   2.272 0.023127 *  
## hydrogensulfide.l4   -0.05034    0.01263  -3.987 6.77e-05 ***
## carbondioxide.l4      0.03741    0.01853   2.018 0.043601 *  
## carbondioxide.l5     -0.05314    0.01591  -3.341 0.000841 ***
## hydrogensulfide.l6   -0.02647    0.01224  -2.162 0.030643 *  
## ammonia.l7            0.38988    0.12678   3.075 0.002113 ** 
## hydrogensulfide.l7    0.17813    0.01272  14.001  < 2e-16 ***
## hydrogensulfide.l8   -0.05121    0.01254  -4.084 4.49e-05 ***
## ammonia.l9            0.54946    0.12907   4.257 2.10e-05 ***
## ammonia.l10           0.47697    0.13201   3.613 0.000305 ***
## hydrogensulfide.l10  -0.05000    0.01252  -3.995 6.55e-05 ***
## ammonia.l11          -0.44126    0.12898  -3.421 0.000628 ***
## hydrogensulfide.l11   0.09669    0.01269   7.621 2.90e-14 ***
## hydrogensulfide.l12   0.04503    0.01227   3.671 0.000244 ***
## ammonia.l14          -0.35616    0.12100  -2.943 0.003259 ** 
## hydrogensulfide.l14   0.13746    0.01265  10.870  < 2e-16 ***
## const               -12.03737    3.67584  -3.275 0.001064 ** 
## sd13                  7.70652    2.09747   3.674 0.000241 ***
## sd38                  4.64414    2.09379   2.218 0.026588 *  
## sd44                  5.56117    2.09474   2.655 0.007956 ** 
## sd83                  4.96650    2.09427   2.371 0.017748 *  
## sd87                  9.17705    2.09584   4.379 1.21e-05 ***
## sd88                  4.51068    2.09910   2.149 0.031684 *  
## sd91                  9.21995    2.10034   4.390 1.15e-05 ***
## sd94                 11.54317    2.10041   5.496 4.05e-08 ***
## sd95                  5.19383    2.10579   2.466 0.013673 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 16.51 on 6035 degrees of freedom
## Multiple R-Squared: 0.1364,  Adjusted R-squared: 0.1321 
## F-statistic: 31.76 on 30 and 6035 DF,  p-value: < 2.2e-16 
## 
## 
## Estimation results for equation carbondioxide: 
## ============================================== 
## carbondioxide = ammonia.l1 + carbondioxide.l1 + carbondioxide.l2 + hydrogensulfide.l3 + ammonia.l4 + hydrogensulfide.l4 + hydrogensulfide.l5 + carbondioxide.l5 + hydrogensulfide.l6 + carbondioxide.l6 + hydrogensulfide.l9 + carbondioxide.l9 + hydrogensulfide.l11 + carbondioxide.l14 + const + trend + sd8 + sd31 + sd62 + sd93 
## 
##                       Estimate Std. Error t value Pr(>|t|)    
## ammonia.l1          -0.3747870  0.0842795  -4.447 8.87e-06 ***
## carbondioxide.l1     0.6433491  0.0126400  50.898  < 2e-16 ***
## carbondioxide.l2     0.2262035  0.0135347  16.713  < 2e-16 ***
## hydrogensulfide.l3  -0.0294291  0.0097989  -3.003 0.002682 ** 
## ammonia.l4           0.4644258  0.0845331   5.494 4.09e-08 ***
## hydrogensulfide.l4  -0.0412353  0.0099774  -4.133 3.63e-05 ***
## hydrogensulfide.l5   0.0252515  0.0098054   2.575 0.010040 *  
## carbondioxide.l5     0.0352969  0.0136319   2.589 0.009640 ** 
## hydrogensulfide.l6   0.0256280  0.0098888   2.592 0.009576 ** 
## carbondioxide.l6     0.0454284  0.0136079   3.338 0.000848 ***
## hydrogensulfide.l9  -0.0283851  0.0097786  -2.903 0.003712 ** 
## carbondioxide.l9    -0.0273858  0.0107445  -2.549 0.010833 *  
## hydrogensulfide.l11 -0.0315452  0.0098757  -3.194 0.001409 ** 
## carbondioxide.l14    0.0284592  0.0082714   3.441 0.000584 ***
## const               27.5144940  3.3889415   8.119 5.65e-16 ***
## trend               -0.0002819  0.0001232  -2.289 0.022139 *  
## sd8                 -4.1713571  1.6798446  -2.483 0.013048 *  
## sd31                 4.1848904  1.6649206   2.514 0.011977 *  
## sd62                 5.3289989  1.6782201   3.175 0.001504 ** 
## sd93                -3.5281899  1.6800403  -2.100 0.035765 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 13.24 on 6045 degrees of freedom
## Multiple R-Squared: 0.9994,  Adjusted R-squared: 0.9994 
## F-statistic: 5.445e+05 on 20 and 6045 DF,  p-value: < 2.2e-16 
## 
## 
## 
## Covariance matrix of residuals:
##                 ammonia hydrogensulfide carbondioxide
## ammonia           2.674          2.5519        3.3343
## hydrogensulfide   2.552        277.7304       -0.7236
## carbondioxide     3.334         -0.7236      178.7849
## 
## Correlation matrix of residuals:
##                 ammonia hydrogensulfide carbondioxide
## ammonia         1.00000        0.093634      0.152484
## hydrogensulfide 0.09363        1.000000     -0.003248
## carbondioxide   0.15248       -0.003248      1.000000
fit_ts <- ts(fitted(var_res_fit)[,1], frequency = frequency(ammonia_ts))
rmse <- accuracy(ammonia_ts, fit_ts)[,"RMSE"]
plot(ammonia_ts, ylab = 'ammonia', lwd = 1, lty ='dashed'); grid(); lines(fit_ts, col = 'red', lty = 'dashed')
legend("topright", c("ammonia", "fitted"), fill=c("black", "red")); mape <- accuracy(ammonia_ts, fit_ts)[,"RMSE"]
mes <- paste("RMSE = ", round(mape, 2), sep=''); text(60, 30, mes)

fit_ts <- ts(fitted(var_res_fit)[,2], frequency = frequency(hydrogensulfide_ts))
rmse <- accuracy(hydrogensulfide_ts, fit_ts)[,"RMSE"]
plot(hydrogensulfide_ts, ylab = 'hydrogensulfide', lwd = 1, lty ='dashed'); grid(); lines(fit_ts, col = 'red', lty = 'dashed')
legend("topright", c("hydrogensulfide", "fitted"), fill=c("black", "red")); mape <- accuracy(hydrogensulfide_ts, fit_ts)[,"RMSE"]
mes <- paste("RMSE = ", round(mape, 2), sep=''); text(60, 200, mes)

fit_ts <- ts(fitted(var_res_fit)[,3], frequency = frequency(carbondioxide_ts))
rmse <- accuracy(carbondioxide_ts, fit_ts)[,"RMSE"]
plot(carbondioxide_ts, ylab = 'carbondioxide', lwd = 1, lty ='dashed'); grid(); lines(fit_ts, col = 'red', lty = 'dashed')
legend("topright", c("carbondioxide", "fitted"), fill=c("black", "red")); mape <- accuracy(carbondioxide_ts, fit_ts)[,"RMSE"]
mes <- paste("RMSE = ", round(mape, 2), sep=''); text(60, 700, mes)

Acoef(var_res_fit)
## [[1]]
##                 ammonia.l1 hydrogensulfide.l1 carbondioxide.l1
## ammonia          0.2296063        0.004336139       0.01005772
## hydrogensulfide  0.0000000        0.093318891       0.00000000
## carbondioxide   -0.3747870        0.000000000       0.64334906
## 
## [[2]]
##                 ammonia.l2 hydrogensulfide.l2 carbondioxide.l2
## ammonia          0.1299163       -0.005338731        0.0000000
## hydrogensulfide -0.7556705        0.000000000        0.0000000
## carbondioxide    0.0000000        0.000000000        0.2262035
## 
## [[3]]
##                 ammonia.l3 hydrogensulfide.l3 carbondioxide.l3
## ammonia          0.1518805         0.00000000     -0.003429757
## hydrogensulfide  0.3014658         0.10507247      0.036335905
## carbondioxide    0.0000000        -0.02942909      0.000000000
## 
## [[4]]
##                 ammonia.l4 hydrogensulfide.l4 carbondioxide.l4
## ammonia          0.1002091         0.00000000       0.00000000
## hydrogensulfide  0.0000000        -0.05033974       0.03740788
## carbondioxide    0.4644258        -0.04123528       0.00000000
## 
## [[5]]
##                 ammonia.l5 hydrogensulfide.l5 carbondioxide.l5
## ammonia         0.08131656         0.00000000     -0.004670779
## hydrogensulfide 0.00000000         0.00000000     -0.053142094
## carbondioxide   0.00000000         0.02525148      0.035296948
## 
## [[6]]
##                 ammonia.l6 hydrogensulfide.l6 carbondioxide.l6
## ammonia         0.06248569         0.00000000       0.00000000
## hydrogensulfide 0.00000000        -0.02646683       0.00000000
## carbondioxide   0.00000000         0.02562801       0.04542839
## 
## [[7]]
##                 ammonia.l7 hydrogensulfide.l7 carbondioxide.l7
## ammonia          0.0000000          0.0000000                0
## hydrogensulfide  0.3898805          0.1781276                0
## carbondioxide    0.0000000          0.0000000                0
## 
## [[8]]
##                 ammonia.l8 hydrogensulfide.l8 carbondioxide.l8
## ammonia         0.03280677          0.0000000      0.003018706
## hydrogensulfide 0.00000000         -0.0512121      0.000000000
## carbondioxide   0.00000000          0.0000000      0.000000000
## 
## [[9]]
##                 ammonia.l9 hydrogensulfide.l9 carbondioxide.l9
## ammonia          0.0522469          0.0000000        0.0000000
## hydrogensulfide  0.5494619          0.0000000        0.0000000
## carbondioxide    0.0000000         -0.0283851       -0.0273858
## 
## [[10]]
##                 ammonia.l10 hydrogensulfide.l10 carbondioxide.l10
## ammonia          0.06429442        -0.005861954                 0
## hydrogensulfide  0.47696749        -0.050001370                 0
## carbondioxide    0.00000000         0.000000000                 0
## 
## [[11]]
##                 ammonia.l11 hydrogensulfide.l11 carbondioxide.l11
## ammonia           0.0000000         -0.01033689                 0
## hydrogensulfide  -0.4412632          0.09668784                 0
## carbondioxide     0.0000000         -0.03154515                 0
## 
## [[12]]
##                 ammonia.l12 hydrogensulfide.l12 carbondioxide.l12
## ammonia          0.08828156           0.0000000                 0
## hydrogensulfide  0.00000000           0.0450265                 0
## carbondioxide    0.00000000           0.0000000                 0
## 
## [[13]]
##                 ammonia.l13 hydrogensulfide.l13 carbondioxide.l13
## ammonia                   0         0.002902069      -0.004256983
## hydrogensulfide           0         0.000000000       0.000000000
## carbondioxide             0         0.000000000       0.000000000
## 
## [[14]]
##                 ammonia.l14 hydrogensulfide.l14 carbondioxide.l14
## ammonia         -0.02969621          0.01115296        0.00000000
## hydrogensulfide -0.35615903          0.13745783        0.00000000
## carbondioxide    0.00000000          0.00000000        0.02845924
roots(var_res_fit)
##  [1] 0.99123496 0.97139797 0.92540183 0.90132113 0.90132113 0.89978067
##  [7] 0.89978067 0.89771295 0.89771295 0.85906015 0.85906015 0.84947036
## [13] 0.84947036 0.82975641 0.82975641 0.82112993 0.82112993 0.81107116
## [19] 0.81107116 0.80643102 0.80643102 0.79895743 0.79895743 0.79795516
## [25] 0.79795516 0.79390485 0.79390485 0.76871068 0.76871068 0.75689295
## [31] 0.75591538 0.75591538 0.75462884 0.75462884 0.75363509 0.75363509
## [37] 0.74120760 0.74120760 0.73545145 0.73545145 0.15559327 0.06386759
(ammonia_resid_sd <- sd(resid(var_res_fit)[,1]))
## [1] 1.616646
(hydrogensulfide_resid_sd <- sd(resid(var_res_fit)[,2]))
## [1] 16.47453
(carbondioxide_resid_sd <- sd(resid(var_res_fit)[,3]))
## [1] 13.21803

\[ \begin{equation} \begin{cases} a_{t}\ =\ 0.23a_{t-1} + 0.004h_{t-1}\ + 0.01c_{t-1} + 0.13a_{t-2} - 0.005h_{t-2} +\\ \ \ \ \ \ \ \ \ \ +\ 0.15a_{t-3} - 0.003h_{t-2} + 0.1a_{t-4} + 0.08a_{t-5} - 0.004c_{t-5} +\\ \ \ \ \ \ \ \ \ \ +\ 0.06a_{t-6} + 0.03a_{t-8} + 0.003c_{t-8} + 0.05a_{t-9} + 0.06a_{t-10} - 0.006h_{t-10} +\\ \ \ \ \ \ \ \ \ \ +\ 0.01h_{t-11} + 0.08a_{t-12} + 0.003h_{t-13} - 0.004c_{t-13} + 0.03a_{t-14} +\\ \ \ \ \ \ \ \ \ \ +\ 0.01h_{t-14} - 0.00004t - 0.6(t==2:15am) + 0.56(t==5:30am) +\\ \ \ \ \ \ \ \ \ \ +\ 0.57(t==7:30am) + 0.49(t==3:00pm) - 0.46(t==7:15pm)\\ \ \ \ \ \ \ \ \ \ +\ 0.43(t==9:00pm) + 0.57(t==9:45am) - 0.5(t==11:15pm) + u_{t} \\ \\ u_{t}\ =\ \sigma \epsilon_{t}, \ \ \ \ \sigma\ =\ 1.63, \ \ \ \ \ \epsilon_{t}=N(0,1) \end{cases} \end{equation} \]

\[ \begin{equation} \begin{cases} h_{t}\ =\ 0.09h_{t-1} - 0.75a_{t-2} + 0.30a_{t-3} + 0.1h_{t-3} +0.03c_{t-3} - 0.05h_{t-4} + \\ \ \ \ \ \ \ \ \ \ \ + 0.03c_{t-4} - 0.05c_{t-5} - 0.02h_{t-6} + 0.38a_{t-7} + 0.17h_{t-7} + \\ \ \ \ \ \ \ \ \ \ \ - 0.05h{t-8} + 0.54a_{t-9} + 0.04a_{t-10} - 0.05h_{t-10} - 0.44a_{t-11} + \\ \ \ \ \ \ \ \ \ \ \ + 0.09h_{t-11} + 0.04h_{t-12} - 0.35a_{t-14} + 0.13h_{t-14} - 12.56 + \\ \ \ \ \ \ \ \ \ \ \ + 7.7(t==3:15am) + 4.64(t==9:30am) + 5.56(t==11:00am) + 4.96(t==8:45pm)\\ \ \ \ \ \ \ \ \ \ \ + 9.17(t==9:45pm) + 4.51(t==10pm) + 9.21(t==10:45pm) + 11.94(t==11:30pm)\\ \ \ \ \ \ \ \ \ \ \ + 5.19(t==11:45pm) + u_{t} \\ \\ u_{t}\ =\ \sigma \epsilon_{t}, \ \ \ \ \sigma\ =\ 16.63, \ \ \ \ \ \epsilon_{t}=N(0,1) \end{cases} \end{equation} \]

\[ \begin{equation} \begin{cases} c_{t}\ =\ -0.37a_{t-1} + 0.64c_{t-1} + 0.22c_{t-2} - 0.02h_{t-3} + 0.46a_{t-4} - 0.04h_{t-4}\\ \ \ \ \ \ \ \ \ \ \ \ \ + 0.02h_{t-5} + 0.04c_{t-5} + 0.02h{t-6} + 0.04c_{t-6} - 0.02h_{t-9}\\ \ \ \ \ \ \ \ \ \ \ \ \ - 0.02c_{t-9} - 0.03h_{t-11} + 0.02c_{t-14} + 30.04 - 0.00028t\\ \ \ \ \ \ \ \ \ \ \ \ \ - 4.17(t==2:00am) + 4.18(t==7:45am) + 5.32(t==3:30pm) \\ \ \ \ \ \ \ \ \ \ \ \ \ - 3.52(t==11:45pm) + u_{t} \\ \\ u_{t}\ =\ \sigma \epsilon_{t}, \ \ \ \ \sigma\ =\ 13.22, \ \ \ \ \ \epsilon_{t}=N(0,1) \end{cases} \end{equation} \]

VAR: Analisi della stabilità

var_res_stability <- stability(var_res_fit)
plot(var_res_stability$stability$ammonia)

sctest(var_res_stability$stability$ammonia)
## 
##  OLS-based CUSUM test
## 
## data:  var_res_stability$stability$ammonia
## S0 = 1.3875, p-value = 0.04255
plot(var_res_stability$stability$hydrogensulfide)

sctest(var_res_stability$stability$hydrogensulfide)
## 
##  OLS-based CUSUM test
## 
## data:  var_res_stability$stability$hydrogensulfide
## S0 = 0.82081, p-value = 0.5107
plot(var_res_stability$stability$carbondioxide)

sctest(var_res_stability$stability$carbondioxide)
## 
##  OLS-based CUSUM test
## 
## data:  var_res_stability$stability$carbondioxide
## S0 = 1.113, p-value = 0.1678

VAR: Diagnostica

normality(var_res_fit, multivariate.only = TRUE)
## $JB
## 
##  JB-Test (multivariate)
## 
## data:  Residuals of VAR object x
## Chi-squared = 34774000, df = 6, p-value < 2.2e-16
## 
## 
## $Skewness
## 
##  Skewness only (multivariate)
## 
## data:  Residuals of VAR object x
## Chi-squared = 271940, df = 3, p-value < 2.2e-16
## 
## 
## $Kurtosis
## 
##  Kurtosis only (multivariate)
## 
## data:  Residuals of VAR object x
## Chi-squared = 34502000, df = 3, p-value < 2.2e-16
serial.test(var_res_fit, lags.pt = 14, lags.bg = 14, type = "PT.asymptotic")
## 
##  Portmanteau Test (asymptotic)
## 
## data:  Residuals of VAR object var_res_fit
## Chi-squared = 123.31, df = 0, p-value < 2.2e-16
serial.test(var_res_fit, lags.pt = 14, lags.bg = 14, type = "BG")
## 
##  Breusch-Godfrey LM test
## 
## data:  Residuals of VAR object var_res_fit
## Chi-squared = 377.24, df = 126, p-value < 2.2e-16
arch.test(var_res_fit, lags.multi = 14)
## 
##  ARCH (multivariate)
## 
## data:  Residuals of VAR object var_res_fit
## Chi-squared = 4557, df = 504, p-value < 2.2e-16

VAR: Analisi della risposta all’impulso

ammonia_irf <- irf(var_res_fit, impulse = "hydrogensulfide", response = c("ammonia"), boot = TRUE)
plot(ammonia_irf)

ammonia_irf <- irf(var_res_fit, impulse = "carbondioxide", response = c("ammonia"), boot = TRUE)
plot(ammonia_irf)

Causalità di Granger

causality(var_res_fit, cause=c("hydrogensulfide", "carbondioxide"), vcov.=vcovHC(var_res_fit))
## $Granger
## 
##  Granger causality H0: hydrogensulfide carbondioxide do not
##  Granger-cause ammonia
## 
## data:  VAR object var_res_fit
## F-Test = 1.9831, df1 = 28, df2 = 17778, p-value = 0.001487
## 
## 
## $Instant
## 
##  H0: No instantaneous causality between: hydrogensulfide
##  carbondioxide and ammonia
## 
## data:  VAR object var_res_fit
## Chi-squared = 188.7, df = 2, p-value < 2.2e-16
causality(var_res_fit, cause="ammonia", vcov.=vcovHC(var_res_fit))
## $Granger
## 
##  Granger causality H0: ammonia do not Granger-cause
##  hydrogensulfide carbondioxide
## 
## data:  VAR object var_res_fit
## F-Test = 1.3269, df1 = 28, df2 = 17778, p-value = 0.1158
## 
## 
## $Instant
## 
##  H0: No instantaneous causality between: ammonia and
##  hydrogensulfide carbondioxide
## 
## data:  VAR object var_res_fit
## Chi-squared = 188.7, df = 2, p-value < 2.2e-16
causality(var_res_fit, cause="hydrogensulfide", vcov.=vcovHC(var_res_fit))
## $Granger
## 
##  Granger causality H0: hydrogensulfide do not Granger-cause
##  ammonia carbondioxide
## 
## data:  VAR object var_res_fit
## F-Test = 1.6494, df1 = 28, df2 = 17778, p-value = 0.01679
## 
## 
## $Instant
## 
##  H0: No instantaneous causality between: hydrogensulfide and
##  ammonia carbondioxide
## 
## data:  VAR object var_res_fit
## Chi-squared = 54.585, df = 2, p-value = 1.403e-12
causality(var_res_fit, cause="carbondioxide", vcov.=vcovHC(var_res_fit))
## $Granger
## 
##  Granger causality H0: carbondioxide do not Granger-cause ammonia
##  hydrogensulfide
## 
## data:  VAR object var_res_fit
## F-Test = 1.8924, df1 = 28, df2 = 17778, p-value = 0.002979
## 
## 
## $Instant
## 
##  H0: No instantaneous causality between: carbondioxide and ammonia
##  hydrogensulfide
## 
## data:  VAR object var_res_fit
## Chi-squared = 139.61, df = 2, p-value < 2.2e-16
plot(predict(var_res_fit, n.ahead=24, ci=0.9), xlim=c(5500,6100))

Cointegrazione

Utilizziamo i test di Phillips-Ouliaris e Johansen. La Null Hypothesis e’ di non co-integrazione.

po.test(gas[,c("ammonia", "carbondioxide")])
## 
##  Phillips-Ouliaris Cointegration Test
## 
## data:  gas[, c("ammonia", "carbondioxide")]
## Phillips-Ouliaris demeaned = -4207.8, Truncation lag parameter =
## 60, p-value = 0.01
po.test(gas)
## 
##  Phillips-Ouliaris Cointegration Test
## 
## data:  gas
## Phillips-Ouliaris demeaned = -4484.6, Truncation lag parameter =
## 60, p-value = 0.01
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1] 4.164497e-02 1.837614e-02 6.938894e-18
## 
## Values of teststatistic and critical values of test:
## 
##            test 10pct  5pct  1pct
## r <= 1 | 112.71  7.52  9.24 12.97
## r = 0  | 371.21 17.85 19.96 24.60
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##                   ammonia.l2 carbondioxide.l2      constant
## ammonia.l2        1.00000000        1.0000000     1.0000000
## carbondioxide.l2 -0.09189339        0.1813385     0.4087976
## constant         44.08172340     -108.8527985 -1507.7442444
## 
## Weights W:
## (This is the loading matrix)
## 
##                  ammonia.l2 carbondioxide.l2      constant
## ammonia.d       -0.08617893       -0.0153477  2.124647e-19
## carbondioxide.d  0.33095254       -0.1794838 -1.322624e-18
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , without linear trend and constant in cointegration 
## 
## Eigenvalues (lambda):
## [1]  3.170234e-01  4.119962e-02  1.828980e-02 -2.574980e-19
## 
## Values of teststatistic and critical values of test:
## 
##             test 10pct  5pct  1pct
## r <= 2 |  112.18  7.52  9.24 12.97
## r <= 1 |  367.85 17.85 19.96 24.60
## r = 0  | 2684.98 32.00 34.91 41.07
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##                      ammonia.l2 hydrogensulfide.l2 carbondioxide.l2
## ammonia.l2           1.00000000         1.00000000       1.00000000
## hydrogensulfide.l2  -2.71467611        -0.01237143      -0.01394933
## carbondioxide.l2     0.05175219        -0.09221790       0.17389290
## constant           -32.68892294        44.28000048    -104.66629133
##                         constant
## ammonia.l2             1.0000000
## hydrogensulfide.l2    -0.0188399
## carbondioxide.l2       0.3989170
## constant           -1470.5043533
## 
## Weights W:
## (This is the loading matrix)
## 
##                    ammonia.l2 hydrogensulfide.l2 carbondioxide.l2
## ammonia.d         0.002117407        -0.08487263     -0.015962257
## hydrogensulfide.d 0.339872505        -0.07123760     -0.004885808
## carbondioxide.d   0.002634336         0.33845996     -0.183326908
##                        constant
## ammonia.d         -1.453566e-19
## hydrogensulfide.d  8.520800e-20
## carbondioxide.d   -2.026829e-18

VECM to VAR

gas_vecm <- ca.jo(gas, ecdet = "trend", type = "trace", K = 14, spec="longrun", season = 96)
summary(gas_vecm)
## 
## ###################### 
## # Johansen-Procedure # 
## ###################### 
## 
## Test type: trace statistic , with linear trend in cointegration 
## 
## Eigenvalues (lambda):
## [1]  3.634617e-02  1.355339e-02  4.033288e-03 -1.214826e-18
## 
## Values of teststatistic and critical values of test:
## 
##            test 10pct  5pct  1pct
## r <= 2 |  24.51 10.49 12.25 16.26
## r <= 1 | 107.27 22.76 25.32 30.45
## r = 0  | 331.82 39.06 42.44 48.45
## 
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
## 
##                       ammonia.l14 hydrogensulfide.l14 carbondioxide.l14
## ammonia.l14          1.0000000000         1.000000000       1.000000000
## hydrogensulfide.l14 -1.9469000510        -0.056738909      -0.001212987
## carbondioxide.l14    0.0490428594        -0.318504170      -0.011630208
## trend.l14            0.0006566638        -0.001130951       0.001121571
##                       trend.l14
## ammonia.l14          1.00000000
## hydrogensulfide.l14 -0.02357937
## carbondioxide.l14    0.03009678
## trend.l14            0.02336693
## 
## Weights W:
## (This is the loading matrix)
## 
##                     ammonia.l14 hydrogensulfide.l14 carbondioxide.l14
## ammonia.d         -0.0004875185        -0.003656281       -0.03571476
## hydrogensulfide.d  0.2829043125        -0.028782315       -0.03352622
## carbondioxide.d    0.0215571394         0.163204199       -0.09481076
##                       trend.l14
## ammonia.d         -5.562107e-18
## hydrogensulfide.d -2.174549e-16
## carbondioxide.d    8.573699e-17
(vec2var_res <- vec2var(gas_vecm))
## 
## Coefficient matrix of lagged endogenous variables:
## 
## A1:
##                 ammonia.l1 hydrogensulfide.l1 carbondioxide.l1
## ammonia          0.2354099        0.003898711      0.009084324
## hydrogensulfide  0.1751574        0.095554399      0.004434282
## carbondioxide   -0.4460881        0.017262244      0.657283091
## 
## 
## A2:
##                 ammonia.l2 hydrogensulfide.l2 carbondioxide.l2
## ammonia          0.1289521       -0.005355138      0.002368705
## hydrogensulfide -0.7905082       -0.020588705     -0.032579193
## carbondioxide    0.1046958       -0.020171187      0.224849717
## 
## 
## A3:
##                 ammonia.l3 hydrogensulfide.l3 carbondioxide.l3
## ammonia          0.1500075        0.001084417     -0.003860731
## hydrogensulfide  0.2243934        0.111567408      0.050330609
## carbondioxide   -0.2380470       -0.027005754      0.020769700
## 
## 
## A4:
##                 ammonia.l4 hydrogensulfide.l4 carbondioxide.l4
## ammonia         0.10145525      -0.0003932661     -0.001124837
## hydrogensulfide 0.06291896      -0.0521061264      0.037520236
## carbondioxide   0.42509293      -0.0392249240     -0.004334919
## 
## 
## A5:
##                 ammonia.l5 hydrogensulfide.l5 carbondioxide.l5
## ammonia         0.08075696      -0.0007020275     -0.003663352
## hydrogensulfide 0.04909186       0.0036658361     -0.056774899
## carbondioxide   0.05074426       0.0261008354      0.035328042
## 
## 
## A6:
##                 ammonia.l6 hydrogensulfide.l6 carbondioxide.l6
## ammonia         0.06021504        0.001681929    -0.0005970547
## hydrogensulfide 0.01204024       -0.024816779     0.0075581850
## carbondioxide   0.19962173        0.020295124     0.0517951413
## 
## 
## A7:
##                 ammonia.l7 hydrogensulfide.l7 carbondioxide.l7
## ammonia         0.02640210       0.0002101925     -0.001032216
## hydrogensulfide 0.35558546       0.1800676420     -0.020816085
## carbondioxide   0.05906567       0.0059340968     -0.011009355
## 
## 
## A8:
##                  ammonia.l8 hydrogensulfide.l8 carbondioxide.l8
## ammonia          0.03288288        0.001114234      0.003324734
## hydrogensulfide  0.17757572       -0.054754440      0.020785008
## carbondioxide   -0.20014528        0.001416897      0.003848144
## 
## 
## A9:
##                 ammonia.l9 hydrogensulfide.l9 carbondioxide.l9
## ammonia         0.05091685       0.0006874013      0.001551782
## hydrogensulfide 0.52566854      -0.0016941769      0.022651693
## carbondioxide   0.11691619      -0.0228880733     -0.030414059
## 
## 
## A10:
##                 ammonia.l10 hydrogensulfide.l10 carbondioxide.l10
## ammonia          0.06768477        -0.006159189     -0.0009078766
## hydrogensulfide  0.48652956        -0.051232457     -0.0372388048
## carbondioxide   -0.12707533         0.016961274      0.0189429324
## 
## 
## A11:
##                 ammonia.l11 hydrogensulfide.l11 carbondioxide.l11
## ammonia         -0.01071455         -0.01042746       0.000287801
## hydrogensulfide -0.46507724          0.09499211      -0.010825472
## carbondioxide    0.13631352         -0.03461657       0.001003019
## 
## 
## A12:
##                 ammonia.l12 hydrogensulfide.l12 carbondioxide.l12
## ammonia          0.08924602         0.002180133      -0.001321279
## hydrogensulfide  0.10451989         0.048424284       0.018588583
## carbondioxide   -0.15325123         0.010522867      -0.018051252
## 
## 
## A13:
##                  ammonia.l13 hydrogensulfide.l13 carbondioxide.l13
## ammonia          0.012613807         0.002260957      -0.002947948
## hydrogensulfide -0.272196494        -0.016901116       0.004771959
## carbondioxide    0.003594361         0.003740416       0.006465014
## 
## 
## A14:
##                 ammonia.l14 hydrogensulfide.l14 carbondioxide.l14
## ammonia         -0.02631619        0.0108682535      -0.001185960
## hydrogensulfide -0.36279478        0.1370357003       0.005468335
## carbondioxide    0.09011954       -0.0002968451       0.044582008
## 
## 
## Coefficient matrix of deterministic regressor(s).
## 
##                    constant     trend.l14        sd1        sd2
## ammonia          0.01385935 -3.201358e-07 -0.1522085  0.1804174
## hydrogensulfide -9.66906393  1.857730e-04 -1.0843149 -2.3932963
## carbondioxide   -0.77575598  1.415579e-05 -0.5552372 -1.2806025
##                         sd3        sd4       sd5        sd6        sd7
## ammonia         -0.16250413  0.1130428 0.1024962  0.4697432  0.1464656
## hydrogensulfide -0.44713960 -0.3302213 2.9097599 -1.6728565 -0.1498103
## carbondioxide    0.02288145  0.7164059 1.8327884  0.5508000 -1.9316969
##                         sd8        sd9       sd10       sd11        sd12
## ammonia          0.21052922 -0.4761969  0.3839420  0.2729766 -0.00710544
## hydrogensulfide  0.09212816  2.6782872 -1.4097127 -0.4053443 -2.73423482
## carbondioxide   -4.79436811 -2.8809862  0.5606761  1.0515582 -2.60638765
##                        sd13       sd14       sd15      sd16       sd17
## ammonia         -0.02823491  0.1244017 -0.2021090 0.2317202  0.1131266
## hydrogensulfide  7.79644796 -0.6867082  0.9639996 0.8108020  1.5947227
## carbondioxide    0.46031098  1.5340869  0.2023734 1.0119119 -0.4900680
##                       sd18       sd19        sd20       sd21       sd22
## ammonia         0.05753545 0.21226877 -0.09304993  0.1768923  0.7149108
## hydrogensulfide 2.06290697 0.06783507 -1.33794915  0.3610656  0.1742328
## carbondioxide   0.02535349 1.63357943 -1.19139084 -2.7847439 -2.4563807
##                       sd23      sd24       sd25       sd26       sd27
## ammonia         -0.1079527 0.3056529 -0.0635461 0.30836587  0.2059225
## hydrogensulfide  0.9026026 1.0141477 -0.3892589 0.62852201  1.4853055
## carbondioxide   -2.4781948 2.1109744 -0.2166917 0.01527936 -0.2897014
##                       sd28      sd29        sd30       sd31        sd32
## ammonia          0.0264630 0.2020182  0.71478661  0.1706784  0.07948712
## hydrogensulfide -0.5287123 0.5901102 -0.14992291 -0.3983468  0.55778985
## carbondioxide   -0.1003034 0.8485584  0.06944746  4.0071796 -0.76091848
##                       sd33       sd34       sd35        sd36       sd37
## ammonia         0.05934073 -0.1099529  0.1028578 -0.01394281  0.2864333
## hydrogensulfide 1.10065886 -0.9355637  0.9826651 -0.37523058 -0.5082938
## carbondioxide   0.27283318  0.4828906 -3.1095933 -3.34180817  0.7216260
##                      sd38        sd39       sd40       sd41       sd42
## ammonia         0.1400465 -0.02143027  0.2671349  0.2467514 0.11617982
## hydrogensulfide 4.5098332 -0.78884219  1.0931525 -1.1870181 1.71922509
## carbondioxide   0.1989907 -2.30742488 -1.0773812 -1.5371084 0.02729479
##                        sd43     sd44       sd45       sd46       sd47
## ammonia          0.02215667 0.217772  0.1315505  0.1189649  0.3222925
## hydrogensulfide -0.02629371 5.833406 -1.0745365  0.4390557 -1.2308737
## carbondioxide    0.29094630 1.467551 -0.3148527 -1.3146695 -1.3245417
##                      sd48       sd49        sd50       sd51       sd52
## ammonia         0.1551531  0.2531826  0.09828939  0.1735216  0.2667105
## hydrogensulfide 0.4624296 -0.8014935  0.70200106 -0.9421571 -0.2802047
## carbondioxide   0.7354533  1.2210218 -0.75560167  1.7450999  0.5258438
##                       sd53       sd54        sd55        sd56       sd57
## ammonia          0.1371479  0.1724188 -0.03580989 -0.04238372  0.2389521
## hydrogensulfide -0.1771672  0.2238351  0.29303149 -0.39399982 -0.1786948
## carbondioxide   -3.0978824 -1.0490150  2.21778479 -2.08662578  0.6670631
##                      sd58       sd59      sd60       sd61      sd62
## ammonia         0.5426416  0.1905049 0.6209294 -0.2304553 0.2710306
## hydrogensulfide 2.4935452 -0.5011652 1.3406474 -0.5853145 0.5972393
## carbondioxide   0.1981159 -1.5445210 0.3143734 -0.3027751 5.2278729
##                       sd63       sd64        sd65       sd66       sd67
## ammonia          0.2555313  0.1989378  0.19105883 -0.2336031  0.1580402
## hydrogensulfide -0.3147949  0.6878334  0.04343838  0.6516539 -0.6417860
## carbondioxide    1.1659897 -1.6330344 -0.41619471 -1.5577549  0.4567582
##                       sd68        sd69        sd70        sd71       sd72
## ammonia         0.03760525  0.03936553  0.09005637  0.17513009  0.2548263
## hydrogensulfide 1.00485733 -0.70437520 -0.12104266 -0.38476134 -0.3937060
## carbondioxide   0.70761643 -0.53732119  2.66920972  0.02518144  1.1933465
##                        sd73       sd74       sd75        sd76       sd77
## ammonia          0.24010483  0.1285136 -0.0869835  0.00285022 -0.3280251
## hydrogensulfide -0.05474672  0.8128941  0.1095724  0.40196296 -0.1586556
## carbondioxide   -0.42565600 -0.7791407 -3.0294100 -0.56904948 -0.3347144
##                        sd78       sd79       sd80       sd81       sd82
## ammonia         -0.09037394  0.3034828  0.1297794 -0.1710675  0.2593676
## hydrogensulfide  1.68520179 -0.6781066 -0.6420060 -0.1836844 -0.2035127
## carbondioxide   -0.08089691 -0.1220891 -1.0711430 -1.1311780  0.5686033
##                       sd83       sd84      sd85      sd86      sd87
## ammonia          0.3021801  0.5875631 0.3212924 0.7015305 0.3708868
## hydrogensulfide  5.0797315  0.1436071 0.1448829 2.1623581 9.2616094
## carbondioxide   -0.4456442 -0.2054663 2.7243675 0.6481400 1.0171343
##                       sd88       sd89       sd90       sd91       sd92
## ammonia          0.1324237  0.4858997  0.2804017  0.6107419 -0.1584471
## hydrogensulfide  4.5200609  1.2728897 -2.0535643  9.1134096  0.1134191
## carbondioxide   -3.5001239 -0.3045013  0.7821833 -0.4114435 -1.8764777
##                       sd93       sd94        sd95
## ammonia         -0.3928071  0.2110355  0.08204357
## hydrogensulfide  1.1149790 11.3611678  4.99473765
## carbondioxide   -3.9500169  0.5776481 -0.75472101
fit_ts <- ts(fitted(vec2var_res)[,1], frequency = frequency(ammonia_ts))
rmse <- accuracy(ammonia_ts, fit_ts)[,"RMSE"]
plot(ammonia_ts, ylab = 'ammonia', lwd = 1, lty ='dashed'); grid(); lines(fit_ts, col = 'red', lty = 'dashed')
legend("topright", c("ammonia", "fitted"), fill=c("black", "red")); rmse <- accuracy(ammonia_ts, fit_ts)[,"RMSE"]
mes <- paste("RMSE = ", round(rmse, 2), sep=''); text(60, 30, mes);

fit_ts <- ts(fitted(vec2var_res)[,2], frequency = frequency(hydrogensulfide_ts))
rmse <- accuracy(hydrogensulfide_ts, fit_ts)[,"RMSE"]
plot(hydrogensulfide_ts, ylab = 'hydrogensulfide', lwd = 1, lty ='dashed'); grid(); lines(fit_ts, col = 'red', lty = 'dashed')
legend("topright", c("hydrogensulfide", "fitted"), fill=c("black", "red")); rmse <- accuracy(hydrogensulfide_ts, fit_ts)[,"RMSE"]
mes <- paste("RMSE = ", round(rmse, 2), sep=''); text(60, 200, mes)

fit_ts <- ts(fitted(vec2var_res)[,3], frequency = frequency(carbondioxide_ts))
rmse <- accuracy(carbondioxide_ts, fit_ts)[,"RMSE"]
plot(carbondioxide_ts, ylab = 'carbondioxide', lwd = 1, lty ='dashed'); grid(); lines(fit_ts, col = 'red', lty = 'dashed')
legend("topright", c("carbondioxide", "fitted"), fill=c("black", "red")); rmse <- accuracy(carbondioxide_ts, fit_ts)[,"RMSE"]
mes <- paste("RMSE = ", round(rmse, 2), sep=''); text(60, 700, mes)

Predizione picchi assoluti di ammoniaca

Viene definito un modello predittivo basato su algoritmo di regressione logistica.

ammonia_outlier <- ammonia_outlier_absolute
ammonia_outliers_indication <- rep(0, length(ammonia_ts))
ammonia_outliers_indication[ammonia_outlier$iRight] <- 1
ammonia_outliers_df <- data.frame(ammonia_outliers_indication,
                                  Hmisc::Lag(ammonia_ts, shift = 4),
                                  Hmisc::Lag(carbondioxide_ts, shift = 4),
                                  Hmisc::Lag(ammonia_ts, shift = 5),
                                  Hmisc::Lag(carbondioxide_ts, shift = 5)
                                  )

ammonia_outliers_df <- ammonia_outliers_df[complete.cases(ammonia_outliers_df),]
colnames(ammonia_outliers_df) <- c("ammonia_peak", 
                                   "ammonia_4",
                                   "carbondioxide_4",
                                   "ammonia_5",
                                   "carbondioxide_5"
                                   )
ammonia_outliers_df$ammonia_peak <- factor(ammonia_outliers_df$ammonia_peak)
levels(ammonia_outliers_df$ammonia_peak) <- c("F", "T")
l <- nrow(ammonia_outliers_df)
nn <- 8
grp_set <- seq(1:(l/nn))
l_grp <- round(0.6 * length(grp_set))
grp_set_train <- sample(grp_set, l_grp, replace=FALSE)
train_idx <- do.call("c", lapply(grp_set_train, function(x) {((x-1)*nn):(x*nn)}))

trControl <- trainControl(method = "repeatedcv",  
                          number = 10, 
                          repeats = 5, 
                          verboseIter = FALSE,
                          sampling = "smote",
                          classProbs = TRUE,
                          summaryFunction = twoClassSummary,
                          savePredictions = TRUE,
                          returnResamp = "all")
glm_fit <- train(
                 ammonia_peak ~ ., 
                 data = ammonia_outliers_df[train_idx,], 
                 method = "glm",
                 trControl = trControl,
                 metric = 'ROC',
                 preProcess = c("BoxCox", "center", "scale")
                 )
glm_fit
## Generalized Linear Model 
## 
## 4095 samples
##    4 predictor
##    2 classes: 'F', 'T' 
## 
## Pre-processing: Box-Cox transformation (2), centered (4), scaled (4) 
## Resampling: Cross-Validated (10 fold, repeated 5 times) 
## Summary of sample sizes: 3685, 3686, 3685, 3685, 3686, 3686, ... 
## Addtional sampling using SMOTE prior to pre-processing
## 
## Resampling results:
## 
##   ROC        Sens       Spec     
##   0.9740295  0.9591807  0.9307692
summary(glm_fit$finalModel)
## 
## Call:
## NULL
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.1448  -0.1814  -0.0948   0.2280   3.4165  
## 
## Coefficients:
##                 Estimate Std. Error z value Pr(>|z|)    
## (Intercept)      -0.7992     0.1239  -6.453 1.10e-10 ***
## ammonia_4         1.0821     0.1655   6.538 6.23e-11 ***
## carbondioxide_4   1.1138     0.2707   4.114 3.89e-05 ***
## ammonia_5         2.8729     0.2044  14.054  < 2e-16 ***
## carbondioxide_5  -0.8757     0.2670  -3.280  0.00104 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 2428.42  on 1777  degrees of freedom
## Residual deviance:  586.55  on 1773  degrees of freedom
## AIC: 596.55
## 
## Number of Fisher Scoring iterations: 7
varImp(glm_fit)
## glm variable importance
## 
##                 Overall
## ammonia_5       100.000
## ammonia_4        30.244
## carbondioxide_4   7.746
## carbondioxide_5   0.000
train_set <- ammonia_outliers_df[train_idx,]
pred <- ROCR::prediction(as.vector(predict(glm_fit, train_set, type="prob")[,2]), train_set$ammonia_peak)
perf <- performance(pred, "tpr", "fpr")
plot(perf, colorize=TRUE, print.cutoffs.at=c(0.3, 0.5, 0.7))

glm_train_pred <- predict(glm_fit, train_set, type="prob")
pred_values <- ifelse(glm_train_pred[,2] > 0.8, "T", "F")
(cm_mat <- confusionMatrix(factor(pred_values), train_set$ammonia_peak))
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction    F    T
##          F 3801   34
##          T   40  220
##                                           
##                Accuracy : 0.9819          
##                  95% CI : (0.9774, 0.9858)
##     No Information Rate : 0.938           
##     P-Value [Acc > NIR] : <2e-16          
##                                           
##                   Kappa : 0.8464          
##  Mcnemar's Test P-Value : 0.5611          
##                                           
##             Sensitivity : 0.9896          
##             Specificity : 0.8661          
##          Pos Pred Value : 0.9911          
##          Neg Pred Value : 0.8462          
##              Prevalence : 0.9380          
##          Detection Rate : 0.9282          
##    Detection Prevalence : 0.9365          
##       Balanced Accuracy : 0.9279          
##                                           
##        'Positive' Class : F               
## 
test_set <- ammonia_outliers_df[-train_idx,]
glm_test_pred <- predict(glm_fit, test_set, type="prob")
pred_values <- ifelse(glm_test_pred[,2] > 0.8, "T", "F")
(cm_mat <- confusionMatrix(factor(pred_values), test_set$ammonia_peak))
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction    F    T
##          F 2100   30
##          T   21  101
##                                           
##                Accuracy : 0.9774          
##                  95% CI : (0.9703, 0.9831)
##     No Information Rate : 0.9418          
##     P-Value [Acc > NIR] : 2.861e-16       
##                                           
##                   Kappa : 0.7864          
##  Mcnemar's Test P-Value : 0.2626          
##                                           
##             Sensitivity : 0.9901          
##             Specificity : 0.7710          
##          Pos Pred Value : 0.9859          
##          Neg Pred Value : 0.8279          
##              Prevalence : 0.9418          
##          Detection Rate : 0.9325          
##    Detection Prevalence : 0.9458          
##       Balanced Accuracy : 0.8805          
##                                           
##        'Positive' Class : F               
## 

Carte di Controllo (Quality Charts)

l <- nrow(gas); s <- l/4; ll <- as.list(1:s); ll2 <- lapply(ll, function(x){ rep(x, 4)}); sample <- do.call(c, ll2); ls <- length(sample)
df <- data.frame(gas$ammonia[1:ls], sample); colnames(df) <- c("ammonia", "sample")
ammonia_g = with(df, qcc.groups(ammonia, sample))
ammonia_qchart <- qcc(ammonia_g[961:985,], type="xbar", newdata=ammonia_g[986:1034], nsigmas=3)

Riferimento: http://www.statsoft.com/textbook/quality-control-charts