Modelovanie zmeny klimy

Motivacia

Zmena klímy je jedným z najpálčivejších problémov súčasnosti. Pochopenie dynamiky zmeny teploty vo vzťahu k emisiám CO2 môže pomôcť vypracovať stratégie na zníženie negatívnych účinkov globálneho otepľovania. Wilson (2016)

Top departure airports with the largest passenger CO2 emissions from international operations in 2019

Table 1: CO2 emissions in million metric tons
Jan Apr Jul Okt
DXB 16,2 9 11,9 15.85
LHR 23 15,4 10,25 9,2
CDG 10 3 7,85 10,3

Teoretické zdôvodnenie

Na modelovanie závislosti teploty od emisií CO2 možno použiť model ARIMAX (AutoRegressive Integrated Moving Average with Exogenous variables). Model ARIMAX zohľadňuje vnútornú dynamiku časového radu aj vonkajšie faktory, ako sú emisie CO2.

Matematický opis modelu:

\[ Y_t = c + \phi Y_{t-1} + \theta \epsilon_{t-1} + \beta X_t + \epsilon_t \tag{1}\] kde \(Y_t\) je hodnota časového radu (teplota) v čase \(t\), \(X_t\) je exogénna premenná (emisie CO2), \(\phi\) sú AR koeficienty, \(\theta\) sú MA koeficienty, \(\beta\) sú regresné koeficienty, \(\epsilon_t\) je náhodná chyba.

Metodika

V analýzach sa používajú vložené údaje o “vzdušných míľach” ako náhrada za údaje o teplote a vygenerované údaje o emisiách CO2. Forecasting: Principles and Practice (2nd Ed) (n.d.)

# Nastavenie zrkadla CRAN pre inštaláciu balíkov
options(repos = 'http://cran.us.r-project.org')

# Inštalácia a stiahnutie potrebných balíkov
install.packages("tseries")
Installing package into 'C:/Users/Julia/AppData/Local/R/win-library/4.3'
(as 'lib' is unspecified)
package 'tseries' successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\Julia\AppData\Local\Temp\RtmpYfgMKn\downloaded_packages
library(tseries)
Warning: package 'tseries' was built under R version 4.3.3
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
# Načítanie údajov a vytvorenie umelých údajov
temperature_data <- datasets::airmiles
set.seed(123)
co2_data <- rnorm(length(temperature_data), mean = 100, sd = 10)

# Previesť údaje do časového radu
temperature_ts <- ts(temperature_data, start = c(1937), frequency = 1)
co2_ts <- ts(co2_data, start = c(1937), frequency = 1)

# Vizualizácia údajov
par(mfrow = c(2, 1))
plot(temperature_ts, main = "Temperatúra (thousand air miles)", ylab = "Temperatúra", xlab = "Rok")
plot(co2_ts, main = "Emisie CO2 (umelé údaje)", ylab = "Emisie CO2", xlab = "Rok")

Kontrola

Tento kód vykonáva niekoľko úloh súvisiacich s kontrolou stacionarity časových radov a prípravou údajov na ďalšiu analýzu.

# Skontrolujte stacionaritu a v prípade potreby diferencujte
if (adf.test(temperature_ts)$p.value > 0.05) {
  temperature_ts <- na.omit(diff(temperature_ts))
}

if (adf.test(co2_ts)$p.value > 0.05) {
  co2_ts <- na.omit(diff(co2_ts))
}

# Spájanie údajov
climate_data <- data.frame(
  year = start(temperature_ts)[1]:(start(temperature_ts)[1] + length(temperature_ts) - 1),
  temperature = as.numeric(temperature_ts),
  co2_emissions = as.numeric(co2_ts)
)

Analýza údajov

Kontrola stacionarity časových radov a ich prípadná konverzia na stacionárne.

adf_test_temperature <- adf.test(temperature_ts)
adf_test_co2 <- adf.test(co2_ts)

if (adf_test_temperature$p.value > 0.05) {
  temperature_ts <- diff(temperature_ts)
}

if (adf_test_co2$p.value > 0.05) {
  co2_ts <- diff(co2_ts)
}

temperature_ts <- na.omit(temperature_ts)
co2_ts <- na.omit(co2_ts)

Modelovanie a predpovedanie

Tvorba modelu ARIMAX (Equation 1) a predpovedanie teploty.

# Zostavte model ARIMAX
model <- arima(climate_data$temperature, order = c(1, 0, 0), xreg = climate_data$co2_emissions)
summary(model)
          Length Class  Mode     
coef       3     -none- numeric  
sigma2     1     -none- numeric  
var.coef   9     -none- numeric  
mask       3     -none- logical  
loglik     1     -none- numeric  
aic        1     -none- numeric  
arma       7     -none- numeric  
residuals 23     ts     numeric  
call       4     -none- call     
series     1     -none- character
code       1     -none- numeric  
n.cond     1     -none- numeric  
nobs       1     -none- numeric  
model     10     -none- list     
# Predpovedanie
future_co2 <- rnorm(10, mean = 100, sd = 10)
future_temperature <- predict(model, n.ahead = 10, newxreg = future_co2)

Vizualizacia

# Vizualizácia predpovede
par(mfrow = c(1, 1))
plot(temperature_ts, xlim = c(1937, 1957), ylim = range(c(temperature_ts, future_temperature$pred)),
     main = "Predpoveď zmeny teploty", ylab = "Temperatúra", xlab = "Rok")
lines(1948:1957, future_temperature$pred, col = "blue")
lines(1948:1957, future_temperature$pred + 2 * future_temperature$se, col = "red", lty = 2)
lines(1948:1957, future_temperature$pred - 2 * future_temperature$se, col = "red", lty = 2)
legend("topleft", legend = c("Predpoveď", "Interval spoľahlivosti"), col = c("blue", "red"), lty = 1:2)

# Vizualizácia zvyškov modelu
par(mfrow = c(2, 1))
plot(residuals(model), main = "Pozostatky modelu ARIMAX", ylab = "Pozostatky", xlab = "Rok")
hist(residuals(model), main = "Histogram reziduálov", xlab = "Pozostatky", breaks = 10)

Logo

Výsledky a diskusia

Model ARIMAX ukázal významný vzťah medzi teplotou a emisiami CO2. Prognózy na nasledujúcich 10 rokov naznačujú pokračujúci stúpajúci trend teplôt, čo podčiarkuje dôležitosť prijatia opatrení na zníženie emisií. Table 1

Záver

Táto správa predstavuje modelovanie zmeny teploty na základe emisií CO2 pomocou modelu ARIMAX. Výsledky potvrdzujú významný vplyv emisií CO2 na zmenu teploty. Budúci výskum môže zahŕňať použitie reálnych údajov na zlepšenie presnosti modelu.

References

Forecasting: Principles and Practice (2nd Ed). n.d. Accessed June 25, 2024. https://otexts.com/fpp2/.
Wilson, Granville Tunnicliffe. 2016. “Time Series Analysis: Forecasting and Control, 5th Edition, by George E. P. Box, Gwilym M. Jenkins, Gregory C. Reinsel and Greta M. Ljung, 2015. Published by John Wiley and Sons Inc., Hoboken, New Jersey, Pp. 712. ISBN: 978‐1‐118‐67502‐1.” Journal of Time Series Analysis 37 (5): 709–11. https://doi.org/10.1111/jtsa.12194.