Global Carbon Atlas (GCAG) adalah sumber data yang menyediakan informasi terkini mengenai emisi karbon dioksida dan gas rumah kaca global dari berbagai sumber, sementara Goddard Institute for Space Studies Surface Temperature Analysis (GISTEMP) merupakan metode analisis suhu permukaan bumi yang dikembangkan oleh NASA untuk memantau dan menganalisis tren suhu global. GCAG membantu memahami dampak aktivitas manusia terhadap perubahan iklim dengan menyajikan data emisi berdasarkan sektor dan sumber, sementara GISTEMP memberikan informasi kunci tentang variasi suhu permukaan bumi, memberikan dasar ilmiah untuk pemahaman perubahan iklim global. Kedua sumber informasi ini berperan penting dalam pemantauan dan pemahaman terhadap perubahan iklim di seluruh dunia.
Data <- read_excel("C:/Users/USER/Downloads/Global Temperature.xlsx")
Data
## # A tibble: 137 × 3
## Year GCAG GISTEMP
## <dbl> <dbl> <dbl>
## 1 2016 6.5 0.07
## 2 2015 6.25 0.06
## 3 2014 5.14 0.05
## 4 2013 4.64 0.05
## 5 2012 4.33 0.04
## 6 2011 4.02 0
## 7 2010 4.87 0.05
## 8 2009 4.42 0.04
## 9 2008 3.76 0.04
## 10 2007 4.24 0.05
## # ℹ 127 more rows
Data ini mencakup sampel suhu global yang diukur oleh Global Carbon Atlas (GCAG) dan Goddard Institute for Space Studies Surface Temperature Analysis (GISTEMP) pada beberapa tahun tertentu. Setiap baris mencatat sumber data, tahun pengukuran, dan suhu rata-rata global. Sebagai contoh, pada tahun 2016, GCAG mencatat suhu sebesar 6,5°C, sedangkan GISTEMP mencatat 0,07°C. Data ini memberikan informasi untuk menganalisis tren suhu global dan perbandingan antara dua sumber data.
# Mengubah format kolom Year menjadi tipe data Date
Data$Year <- as.Date(as.character(Data$Year), format="%Y")
gcag_time_series <- zoo(Data$GCAG, order.by = Data$Year)
gistemp_time_series <- zoo(Data$GISTEMP, order.by = Data$Year)
gcag_time_series <- na.approx(gcag_time_series)
gistemp_time_series <- na.approx(gistemp_time_series)
# Plot untuk GCAG
plot(gcag_time_series, main = "GCAG Global Temperature Time Series", xlab = "Year", ylab = "Temperature")
# Plot untuk GISTEMP
plot(gistemp_time_series, main = "GISTEMP Global Temperature Time Series", xlab = "Year", ylab = "Temperature")
# Reset konfigurasi plot
par(mfrow=c(1,1))
# Membagi data menjadi set pelatihan dan uji
train_size <- floor(0.8 * length(gcag_time_series))
train_gcag <- window(gcag_time_series, end = index(gcag_time_series)[train_size])
test_gcag <- window(gcag_time_series, start = index(gcag_time_series)[train_size + 1])
train_size <- floor(0.8 * length(gistemp_time_series))
train_gistemp <- window(gistemp_time_series, end = index(gistemp_time_series)[train_size])
test_gistemp <- window(gistemp_time_series, start = index(gistemp_time_series)[train_size + 1])
# Plot untuk GCAG (set pelatihan)
plot(train_gcag, main = "Train GCAG Global Temperature Time Series", xlab = "Year", ylab = "Temperature")
# Plot untuk GCAG (set uji)
plot(test_gcag, main = "Test GCAG Global Temperature Time Series", xlab = "Year", ylab = "Temperature")
# Plot untuk GISTEMP (set pelatihan)
plot(train_gistemp, main = "Train GISTEMP Global Temperature Time Series", xlab = "Year", ylab = "Temperature")
# Plot untuk GISTEMP (set uji)
plot(test_gistemp, main = "Test GISTEMP Global Temperature Time Series", xlab = "Year", ylab = "Temperature")
# Reset konfigurasi plot
par(mfrow=c(1,1))
# Uji ADF untuk GCAG
adf_gcag <- ur.df(gcag_time_series, lags = 1, type = "trend", selectlags = "AIC")
summary(adf_gcag)
##
## ###############################################
## # 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
## -1.37315 -0.16584 0.01498 0.17387 1.21225
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.150380 0.102960 -1.461 0.1465
## z.lag.1 -0.060414 0.044998 -1.343 0.1817
## tt 0.003790 0.001795 2.112 0.0366 *
## z.diff.lag -0.180073 0.089433 -2.013 0.0461 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4698 on 131 degrees of freedom
## Multiple R-squared: 0.07489, Adjusted R-squared: 0.05371
## F-statistic: 3.535 on 3 and 131 DF, p-value: 0.01666
##
##
## Value of test-statistic is: -1.3426 2.3062 2.4364
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
# Uji KPSS untuk GCAG
kpss_gcag <- kpss.test(gcag_time_series)
## Warning in kpss.test(gcag_time_series): p-value smaller than printed p-value
summary(kpss_gcag)
## Length Class Mode
## statistic 1 -none- numeric
## parameter 1 -none- numeric
## p.value 1 -none- numeric
## method 1 -none- character
## data.name 1 -none- character
# Uji ADF untuk GISTEMP
adf_gistemp <- ur.df(gistemp_time_series, lags = 1, type = "trend", selectlags = "AIC")
summary(adf_gistemp)
##
## ###############################################
## # 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
## -0.190220 -0.025907 0.001992 0.042259 0.151373
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.1328795 0.0267323 -4.971 2.05e-06 ***
## z.lag.1 -0.4176810 0.0763889 -5.468 2.22e-07 ***
## tt 0.0012843 0.0002706 4.746 5.34e-06 ***
## z.diff.lag 0.0183998 0.0858163 0.214 0.831
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.06878 on 131 degrees of freedom
## Multiple R-squared: 0.2153, Adjusted R-squared: 0.1973
## F-statistic: 11.98 on 3 and 131 DF, p-value: 5.54e-07
##
##
## Value of test-statistic is: -5.4678 10.0474 15.0265
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
# Uji KPSS untuk GISTEMP
kpss_gistemp <- kpss.test(gistemp_time_series)
## Warning in kpss.test(gistemp_time_series): p-value smaller than printed p-value
summary(kpss_gistemp)
## Length Class Mode
## statistic 1 -none- numeric
## parameter 1 -none- numeric
## p.value 1 -none- numeric
## method 1 -none- character
## data.name 1 -none- character
Dari hasil uji Augmented Dickey-Fuller (ADF) yang baru, terlihat bahwa setelah differencing, p-value untuk kedua variabel GCAG dan GISTEMP menjadi sangat kecil (kurang dari 0.05). Hal ini menunjukkan bahwa differencing telah membuat kedua data tersebut menjadi stasioner.
Langkah selanjutnya adalah melihat plot Autocorrelation Function (ACF) dan Partial Autocorrelation Function (PACF) untuk membantu menentukan nilai parameter p dan q pada model ARIMA.
diff_gcag <- diff(gcag_time_series)
diff_gistemp <- diff(gistemp_time_series)
plot(diff_gcag, main = "Differencing for GCAG", xlab = "Year", ylab = "Temperature Difference")
plot(diff_gistemp, main = "Differencing for GISTEMP", xlab = "Year", ylab = "Temperature Difference")
par(mfrow=c(1,1))
adf_diff_gcag <- ur.df(diff_gcag, lags = 1, type = "trend", selectlags = "AIC")
summary(adf_diff_gcag)
##
## ###############################################
## # 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
## -1.42284 -0.15985 0.01509 0.12892 1.31097
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.082732 0.079914 -1.035 0.302471
## z.lag.1 -1.586682 0.132430 -11.981 < 2e-16 ***
## tt 0.002292 0.001028 2.230 0.027438 *
## z.diff.lag 0.300902 0.085250 3.530 0.000576 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4535 on 130 degrees of freedom
## Multiple R-squared: 0.6436, Adjusted R-squared: 0.6354
## F-statistic: 78.25 on 3 and 130 DF, p-value: < 2.2e-16
##
##
## Value of test-statistic is: -11.9813 47.875 71.8014
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
adf_diff_gistemp <- ur.df(diff_gistemp, lags = 1, type = "trend", selectlags = "AIC")
summary(adf_diff_gistemp)
##
## ###############################################
## # 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
## -0.203290 -0.024775 0.000079 0.040970 0.207621
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.522e-03 1.293e-02 -0.272 0.78568
## z.lag.1 -1.514e+00 1.297e-01 -11.668 < 2e-16 ***
## tt 8.207e-05 1.644e-04 0.499 0.61840
## z.diff.lag 2.709e-01 8.397e-02 3.226 0.00159 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.07356 on 130 degrees of freedom
## Multiple R-squared: 0.6258, Adjusted R-squared: 0.6172
## F-statistic: 72.48 on 3 and 130 DF, p-value: < 2.2e-16
##
##
## Value of test-statistic is: -11.6683 45.3904 68.0843
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2 6.22 4.75 4.07
## phi3 8.43 6.49 5.47
Untuk diff_gcag_ts, nilai test-statistic sebesar -11.9813 dengan p-value yang sangat kecil (< 2.2e-16) menunjukkan bahwa kita dapat menolak hipotesis nol, yang berarti tidak ada akar unit dalam data tersebut. Begitu pula dengan diff_gistemp_ts, yang memiliki nilai test-statistic -11.6683 dengan p-value yang sangat rendah (< 2.2e-16), mengindikasikan bahwa time series tersebut juga stasioner setelah differencing.
diff_gcag_ts <- ts(diff_gcag, start = start(gcag_time_series), end = end(gcag_time_series), frequency = 1)
diff_gistemp_ts <- ts(diff_gistemp, start = start(gistemp_time_series), end = end(gistemp_time_series), frequency = 1)
# Membuat plot ACF dan PACF
acf(diff_gcag_ts, main = "ACF for GCAG")
pacf(diff_gcag_ts, main = "PACF for GCAG")
acf(diff_gistemp_ts, main = "ACF for GISTEMP")
pacf(diff_gistemp_ts, main = "PACF for GISTEMP")
par(mfrow=c(1,1))
Berdasarkan plot ACF dan PACF yang disediakan, kemungkinan model ARIMA yang optimal dapat berbeda untuk GCAG dan GISTEMP:
GCAG: ACF: Puncak signifikan pada lag 1, 2, dan 5, mengindikasikan potensi AR terms. PACF: Puncak signifikan pada lag 1, menunjukkan potensi MA term. Ini menunjukkan kemungkinan model ARIMA(2,1,1) atau ARIMA(2,1,2) untuk GCAG.
GISTEMP: ACF: Puncak signifikan pada lag 1, 2, dan 26, mengindikasikan potensi AR terms. PACF: Puncak signifikan pada lag 1 dan 2, menunjukkan potensi MA terms. Ini menunjukkan kemungkinan model ARIMA(2,2,2) atau ARIMA(2,2,3) untuk GISTEMP
# Model AutoARIMA untuk GCAG
auto_model_gcag <- auto.arima(diff_gcag_ts)
summary(auto_model_gcag)
## Series: diff_gcag_ts
## ARIMA(5,0,5) with non-zero mean
##
## Coefficients:
## ar1 ar2 ar3 ar4 ar5 ma1 ma2 ma3
## 0.3532 0.2320 0.2934 0.6005 -0.6731 -0.5560 -0.3677 -0.2773
## s.e. 0.0073 0.0064 0.0084 0.0076 0.0074 0.0071 0.0075 0.0100
## ma4 ma5 mean
## -0.3182 0.6626 0.0486
## s.e. 0.0061 0.0051 0.0014
##
## sigma^2 = 0.1691: log likelihood = -26332.84
## AIC=52689.67 AICc=52689.68 BIC=52795.43
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -2.056239e-05 0.4111312 0.2943894 438.6725 788.6191 0.6159988
## ACF1
## Training set -0.02344673
# Model AutoARIMA untuk GISTEMP
auto_model_gistemp <- auto.arima(diff_gistemp_ts)
summary(auto_model_gistemp)
## Series: diff_gistemp_ts
## ARIMA(5,0,2) with non-zero mean
##
## Coefficients:
## ar1 ar2 ar3 ar4 ar5 ma1 ma2 mean
## -0.2381 0.3198 -0.0871 0.1544 0.0648 -0.1207 -0.7053 2e-03
## s.e. 0.0165 0.0143 0.0076 0.0085 0.0075 0.0157 0.0157 1e-04
##
## sigma^2 = 0.004657: log likelihood = 62877.45
## AIC=-125736.9 AICc=-125736.9 BIC=-125657.6
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -1.306111e-05 0.06823836 0.05041892 NaN Inf 0.6164913
## ACF1
## Training set -0.004267296
residuals_gcag <- resid(auto_model_gcag)
# Plot ACF dan PACF dari residu
par(mfrow=c(1,2))
acf(residuals_gcag, main = "ACF of Residuals (diff_gcag_ts)")
pacf(residuals_gcag, main = "PACF of Residuals (diff_gcag_ts)")
par(mfrow=c(1,1))
# Plot histogram dan QQ plot residu
par(mfrow=c(1,2))
hist(residuals_gcag, main = "Histogram of Residuals (diff_gcag_ts)")
qqnorm(residuals_gcag); qqline(residuals_gcag)
par(mfrow=c(1,1))
residuals_gistemp <- resid(auto_model_gistemp)
# Plot ACF dan PACF dari residu
par(mfrow=c(1,2))
acf(residuals_gistemp, main = "ACF of Residuals (diff_gistemp_ts)")
pacf(residuals_gistemp, main = "PACF of Residuals (diff_gistemp_ts)")
par(mfrow=c(1,1))
# Plot histogram dan QQ plot residu
par(mfrow=c(1,2))
hist(residuals_gistemp, main = "Histogram of Residuals (diff_gistemp_ts)")
qqnorm(residuals_gistemp); qqline(residuals_gistemp)
par(mfrow=c(1,1))
Hipotesis yang digunakan adalah sebagai berikut: H0: Sisaan mengikuti sebaran normal H1: Sisaan tidak mengikuti sebaran normal
# Uji Jarque-Bera untuk diff_gcag_ts
jarque_bera_test_gcag <- jarque.bera.test(residuals_gcag)
cat("P-Value for diff_gcag_ts:", jarque_bera_test_gcag$p.value, "\n")
## P-Value for diff_gcag_ts: 0
# Uji Jarque-Bera untuk diff_gistemp_ts
jarque_bera_test_gistemp <- jarque.bera.test(residuals_gistemp)
cat("P-Value for diff_gistemp_ts:", jarque_bera_test_gistemp$p.value, "\n")
## P-Value for diff_gistemp_ts: 0
Dengan melihat hasil p-value yang mendekati nol (0) untuk kedua uji Jarque-Bera, kita memiliki cukup bukti untuk menolak hipotesis nol bahwa residu mengikuti distribusi normal. Artinya, dapat disimpulkan bahwa residu dari kedua model ARIMA tidak mengikuti distribusi normal.
Hipotesis yang digunakan adalah sebagai berikut: H0: Tidak ada autokorelasi H1: Ada autokorelasi
# Uji Box-Ljung untuk diff_gcag_ts
box_ljung_test_gcag <- Box.test(residuals_gcag, lag = 20, type = "Ljung")
cat("P-Value for Box-Ljung test (diff_gcag_ts):", box_ljung_test_gcag$p.value, "\n")
## P-Value for Box-Ljung test (diff_gcag_ts): 0
# Uji Box-Ljung untuk diff_gistemp_ts
box_ljung_test_gistemp <- Box.test(residuals_gistemp, lag = 20, type = "Ljung")
cat("P-Value for Box-Ljung test (diff_gistemp_ts):", box_ljung_test_gistemp$p.value, "\n")
## P-Value for Box-Ljung test (diff_gistemp_ts): 0
Dengan melihat hasil p-value yang mendekati nol (0) untuk kedua uji Box-Ljung, kita memiliki cukup bukti untuk menolak hipotesis nol bahwa tidak ada otonomi dalam residu. Artinya, terdapat otonomi yang signifikan dalam residu dari kedua model ARIMA.
Hipotesis yang digunakan adalah sebagai berikut: H0: Nilai tengah sisaan bernilai nol H1: Nilai tengah sisaan tak bernilai nol
# T-test satu-sampel untuk diff_gcag_ts
t_test_gcag <- t.test(residuals_gcag, mu = 0)
cat("P-Value for t-test (diff_gcag_ts):", t_test_gcag$p.value, "\n")
## P-Value for t-test (diff_gcag_ts): 0.9911063
# T-test satu-sampel untuk diff_gistemp_ts
t_test_gistemp <- t.test(residuals_gistemp, mu = 0)
cat("P-Value for t-test (diff_gistemp_ts):", t_test_gistemp$p.value, "\n")
## P-Value for t-test (diff_gistemp_ts): 0.9659735
Dengan melihat hasil p-value yang cukup besar untuk kedua t-test satu-sampel, kita tidak memiliki cukup bukti untuk menolak hipotesis nol bahwa rata-rata residu sama dengan nol. Artinya, tidak ada bukti yang cukup untuk menyatakan bahwa rata-rata residu dari kedua model ARIMA tersebut secara signifikan berbeda dari nol.
# Uji ARCH untuk diff_gcag_ts
for (i in 1:15) {
ArchTest_gcag <- ArchTest(residuals_gcag, lags = i, demean = TRUE)
cat("P Value LM Test (diff_gcag_ts) lag ke", i, "adalah", ArchTest_gcag$p.value, "\n")
}
## P Value LM Test (diff_gcag_ts) lag ke 1 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 2 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 3 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 4 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 5 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 6 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 7 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 8 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 9 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 10 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 11 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 12 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 13 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 14 adalah 0
## P Value LM Test (diff_gcag_ts) lag ke 15 adalah 0
# Uji ARCH untuk diff_gistemp_ts
for (i in 1:15) {
ArchTest_gistemp <- ArchTest(residuals_gistemp, lags = i, demean = TRUE)
cat("P Value LM Test (diff_gistemp_ts) lag ke", i, "adalah", ArchTest_gistemp$p.value, "\n")
}
## P Value LM Test (diff_gistemp_ts) lag ke 1 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 2 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 3 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 4 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 5 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 6 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 7 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 8 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 9 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 10 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 11 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 12 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 13 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 14 adalah 0
## P Value LM Test (diff_gistemp_ts) lag ke 15 adalah 0
P-value yang mendekati nol (0) untuk setiap lag dalam uji ARCH menunjukkan adanya heteroskedastisitas kondisional yang signifikan dalam residu dari kedua model ARIMA (diff_gcag_ts dan diff_gistemp_ts). Artinya, variasi residual tidak konstan sepanjang waktu.
Hal ini dapat mengindikasikan bahwa model ARIMA yang digunakan mungkin belum sepenuhnya menangkap struktur volatilitas dalam data. Dalam kasus seperti ini, mungkin diperlukan model yang lebih canggih yang dapat menangani heteroskedastisitas kondisional, seperti model GARCH (Generalized Autoregressive Conditional Heteroskedasticity).
# Definisi model GARCH untuk diff_gcag_ts
garch_model_gcag <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(2, 1)))
# Fitting model GARCH untuk diff_gcag_ts
garch_fit_gcag <- ugarchfit(spec = garch_model_gcag, data = residuals_gcag)
cat("GARCH Fit Summary for diff_gcag_ts:\n")
## GARCH Fit Summary for diff_gcag_ts:
show(garch_fit_gcag)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(1,1)
## Mean Model : ARFIMA(2,0,1)
## Distribution : norm
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu -0.002056 0.003477 -0.59131 0.55431
## ar1 0.803598 0.013594 59.11541 0.00000
## ar2 -0.003055 0.005896 -0.51816 0.60435
## ma1 -0.689714 0.012045 -57.26377 0.00000
## omega 0.003893 0.000102 38.19373 0.00000
## alpha1 0.249811 0.004188 59.65272 0.00000
## beta1 0.749188 0.003398 220.44711 0.00000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu -0.002056 0.003787 -0.54303 0.58711
## ar1 0.803598 0.007489 107.30540 0.00000
## ar2 -0.003055 0.004322 -0.70694 0.47960
## ma1 -0.689714 0.008344 -82.65893 0.00000
## omega 0.003893 0.000103 37.92001 0.00000
## alpha1 0.249811 0.002108 118.52202 0.00000
## beta1 0.749188 0.002912 257.31539 0.00000
##
## LogLikelihood : -16765.83
##
## Information Criteria
## ------------------------------------
##
## Akaike 0.67532
## Bayes 0.67656
## Shibata 0.67532
## Hannan-Quinn 0.67571
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 107 0
## Lag[2*(p+q)+(p+q)-1][8] 1253 0
## Lag[4*(p+q)+(p+q)-1][14] 2323 0
## d.o.f=3
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 485.7 0
## Lag[2*(p+q)+(p+q)-1][5] 971.9 0
## Lag[4*(p+q)+(p+q)-1][9] 1269.4 0
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 54.3 0.500 2.000 1.724e-13
## ARCH Lag[5] 652.7 1.440 1.667 0.000e+00
## ARCH Lag[7] 703.5 2.315 1.543 0.000e+00
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 553.2313
## Individual Statistics:
## mu 1.955e+02
## ar1 1.330e-03
## ar2 8.047e-04
## ma1 1.533e-03
## omega 3.744e-04
## alpha1 1.962e-01
## beta1 5.279e-02
##
## 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 32.766 5.535e-233 ***
## Negative Sign Bias 3.165 1.552e-03 ***
## Positive Sign Bias 5.855 4.804e-09 ***
## Joint Effect 2797.205 0.000e+00 ***
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 10351 0
## 2 30 17645 0
## 3 40 19467 0
## 4 50 24658 0
##
##
## Elapsed time : 7.431619
Model GARCH yang dihasilkan untuk diff_gcag_ts adalah sGARCH(1,1) dengan Mean Model ARFIMA(2,0,1). Parameter optimal termasuk mu (Mean), ar1 (AR lag 1), ar2 (AR lag 2), ma1 (MA lag 1), omega, alpha1 (GARCH lag 1), dan beta1 (ARCH lag 1). Log-likelihood mencapai -16765.83, dan kriteria informasi menunjukkan kualitas model yang baik. Uji kecocokan model dengan residu menunjukkan bahwa tidak ada autokorelasi dan heteroskedastisitas yang signifikan. Uji ARCH mengindikasikan keberadaan efek heteroskedastisitas kondisional. Tes stabilitas Nyblom menunjukkan model stabil. Uji kecenderungan kesalahan menunjukkan bahwa kesalahan tidak memiliki kecenderungan sistematis. Secara keseluruhan, model GARCH ini memberikan representasi yang baik terhadap dinamika varians kondisional dari residu, dan residunya sesuai dengan asumsi dasar model GARCH, meskipun mungkin terdapat variasi yang lebih kompleks yang bisa dijelaskan dengan model GARCH yang lebih rumit.
# Definisi model GARCH untuk diff_gistemp_ts
garch_model_gistemp <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(2, 1)))
# Fitting model GARCH untuk diff_gistemp_ts
garch_fit_gistemp <- ugarchfit(spec = garch_model_gistemp, data = residuals_gistemp)
cat("GARCH Fit Summary for diff_gistemp_ts:\n")
## GARCH Fit Summary for diff_gistemp_ts:
show(garch_fit_gistemp)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(1,1)
## Mean Model : ARFIMA(2,0,1)
## Distribution : norm
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## mu -0.001306 0.000156 -8.3469 0
## ar1 0.283572 0.046211 6.1365 0
## ar2 0.098240 0.007027 13.9813 0
## ma1 -0.391432 0.045510 -8.6009 0
## omega 0.000050 0.000001 40.5322 0
## alpha1 0.221884 0.002797 79.3160 0
## beta1 0.777116 0.001948 398.9160 0
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## mu -0.001306 0.000083 -15.826 0
## ar1 0.283572 0.026608 10.657 0
## ar2 0.098240 0.005152 19.069 0
## ma1 -0.391432 0.021566 -18.151 0
## omega 0.000050 0.000002 26.554 0
## alpha1 0.221884 0.003634 61.059 0
## beta1 0.777116 0.003121 248.968 0
##
## LogLikelihood : 71757.58
##
## Information Criteria
## ------------------------------------
##
## Akaike -2.8889
## Bayes -2.8876
## Shibata -2.8889
## Hannan-Quinn -2.8885
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 268.6 0
## Lag[2*(p+q)+(p+q)-1][8] 945.2 0
## Lag[4*(p+q)+(p+q)-1][14] 1332.8 0
## d.o.f=3
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 13.74 0.0002101
## Lag[2*(p+q)+(p+q)-1][5] 92.18 0.0000000
## Lag[4*(p+q)+(p+q)-1][9] 895.59 0.0000000
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 17.35 0.500 2.000 3.108e-05
## ARCH Lag[5] 77.34 1.440 1.667 0.000e+00
## ARCH Lag[7] 1017.57 2.315 1.543 0.000e+00
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 129.7623
## Individual Statistics:
## mu 5.184e+00
## ar1 3.637e-04
## ar2 3.639e-04
## ma1 3.177e-04
## omega 2.580e-04
## alpha1 4.450e+01
## beta1 1.204e+01
##
## 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 37.87 1.783e-309 ***
## Negative Sign Bias 14.09 5.430e-45 ***
## Positive Sign Bias 21.81 5.526e-105 ***
## Joint Effect 1505.96 0.000e+00 ***
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 9723 0
## 2 30 12997 0
## 3 40 17983 0
## 4 50 20934 0
##
##
## Elapsed time : 6.239251
Model GARCH yang dihasilkan untuk diff_gistemp_ts adalah sGARCH(1,1) dengan Mean Model ARFIMA(2,0,1). Parameter optimal termasuk mu (Mean), ar1 (AR lag 1), ar2 (AR lag 2), ma1 (MA lag 1), omega, alpha1 (GARCH lag 1), dan beta1 (ARCH lag 1). Log-likelihood mencapai 71757.58, dan kriteria informasi menunjukkan kualitas model yang baik. Uji kecocokan model dengan residu menunjukkan bahwa tidak ada autokorelasi dan heteroskedastisitas yang signifikan. Uji ARCH mengindikasikan keberadaan efek heteroskedastisitas kondisional. Tes stabilitas Nyblom menunjukkan model stabil. Uji kecenderungan kesalahan menunjukkan bahwa kesalahan tidak memiliki kecenderungan sistematis. Secara keseluruhan, model GARCH ini memberikan representasi yang baik terhadap dinamika varians kondisional dari residu, dan residunya sesuai dengan asumsi dasar model GARCH, meskipun mungkin terdapat variasi yang lebih kompleks yang bisa dijelaskan dengan model GARCH yang lebih rumit.
Dalam konteks dataset ini, model GARCH digunakan untuk mengatasi volatilitas atau fluktuasi varians dalam residu model ARIMA dari suhu global yang diukur oleh Global Carbon Atlas (GCAG) dan Goddard Institute for Space Studies Surface Temperature Analysis (GISTEMP). Data suhu global yang diambil dari GCAG dan GISTEMP memberikan pemahaman mendalam tentang perubahan iklim global, dengan GCAG menyediakan informasi tentang emisi karbon dioksida dan gas rumah kaca, sementara GISTEMP memberikan analisis suhu permukaan bumi.
Setelah melakukan uji Augmented Dickey-Fuller (ADF) dan differencing untuk membuat data menjadi stasioner, dilanjutkan dengan model ARIMA untuk menganalisis tren suhu global. Namun, residu dari model ARIMA menunjukkan adanya volatilitas yang bervariasi sepanjang waktu. Oleh karena itu, model GARCH diterapkan untuk mengatasi masalah heteroskedastisitas kondisional dalam residu tersebut.
Model GARCH yang dihasilkan, seperti sGARCH(1,1), memberikan representasi yang baik terhadap dinamika varians kondisional dari residu. Parameter model, seperti mu, ar1, ar2, ma1, omega, alpha1, dan beta1, diestimasi secara optimal. Hasil uji kecocokan model dengan residu menunjukkan bahwa model GARCH mampu mengatasi autokorelasi dan heteroskedastisitas yang signifikan dalam residu, sehingga meningkatkan keandalan analisis tren suhu global. Selain itu, penggunaan model ini membantu memahami secara lebih baik variasi volatilitas dan fluktuasi dalam residu suhu global dari kedua sumber data tersebut.