Vai al contenuto

Utente:G273Y/Sandbox

Wikibooks, manuali e libri di testo liberi.

Cambiamento climatico in Italia

[modifica | modifica sorgente]

Caricamento librerie

[modifica | modifica sorgente]
library(ggplot2)
library(dplyr)
library(caret)

Parte 1: Dati

[modifica | modifica sorgente]

Il data set tas_1901_2016_ITA scaricabile dal sito https://climateknowledgeportal.worldbank.org/download-data sotto la Creative Commons Attribution 4.0 International License (CC BY 4.0) contiene 12 X 116 = 1392 misurazioni delle temperature medie mensili in gradi centigradi in Italia dal 1901 al 2016 . Ci sono per ciascuna osservazione 5 variabili, ma le uniche che si prendono in considerazione per l'analisi del cambiamento climatico sono l'anno della misurazione e la temperatura media per ciascuno dei 12 mesi dell'anno.

Caricamento dei dati:

tas_1901_2016_ITA<- read.csv("tas_1901_2016_ITA.csv",header=TRUE)
tas_1991_2016_ITA<- read.csv("tas_1991_2016_ITA.csv",header=TRUE)
CO2_kt<- read.csv("CO2_kt.csv",header=TRUE)


Parte 2: Domanda di ricerca

[modifica | modifica sorgente]

Calcolando la media annuale delle temperature dal 1901 al 2016 si vuole valutare se è in atto un cambiamento climatico in Italia, basandosi quindi su dati di oltre 1 secolo .

Parte 3: Esplorazione dei dati

[modifica | modifica sorgente]

Per studiare la relazione tra le 2 variabili anno e temperatura media annuale in Italia si traccia in figura uno scatterplot che è un tipo di grafico in cui ogni punto rappresenta una singola osservazione di anno e temperatura media annuale.

df <- tas_1901_2016_ITA %>%
 group_by(Year)%>%
 summarise(media = mean(Temperature....Celsius.))


df %>%
  ggplot(aes(Year,media))+
 geom_line()+
 ylab("Temperatura media annuale in gradi centigradi") +
 xlab("Anni") +
 ggtitle("Andamento temporale della variazione di temperatura  ",subtitle = "media annuale in Italia dal 1991 al 2016")


df %>%
  ggplot(aes(Year,media))+
 geom_point(size=2)+
 geom_smooth() +
 scale_x_continuous(breaks=seq(1901,2016,10))+
 ylab("Temperatura media annuale in gradi centigradi") +
 xlab("Anno") +
 ggtitle("Cambiamento climatico in Italia ",subtitle = "tramite variazione temperatura media annuale dal 1901 al 2016")
Andamento temporale della variazione di temperatura media annuale in Italia dal 1991 al 2016
Cambiamento climatico in Italia tramite variazione temperatura media annuale dal 1901 al 2016

Si nota dal grafico che c'è una relazione moderata tra anno e temperatura media annuale ma la relazione non è lineare cioè una linea retta non si adatterebbe ai dati ma una linea curva ottenuta tramite la tecnica dello Smoothing con la local regression si adatta meglio ai dati. In tal modo si evidenzia un trend significativo dei dati, attenuando il rumore. In altri termini sommando graficamente lo smooth trend e il rumore si ottiene l'andamento temporale della variazione di temperatura. La zona grigia lungo la curva di smoothing rappresenta l'intervallo di confidenza al 95% che la curva rappresenti l'effettivo trend dei dati. Come si vede dal grafico la temperatura media annuale in Italia è cresciuta nel corso di più di 1 secolo da 11,01464 °C del 1901 a 13,13094 °C del 2016 .

Parte 4: Modellizazione

[modifica | modifica sorgente]

Applicando il modello di regressione lineare al periodo temporale che va dal 1991 al 2016 si ottiene un R^2 pari al 40% circa che rappresenta la percentuale di variabilità della temperatura media annuale espressa dal modello .

df1 <- tas_1991_2016_ITA %>%
 group_by(Year)%>%
 summarise(media = mean(Temperature....Celsius.))
lm_model <- lm( media ~ Year,df1)
summary(lm_model)


cat("R-squared=", cor(df1$media,df1$Year)^2,"\n")
p1 <- predict(lm_model,newdata = df1)
 
 
cat("RMSE_train=",sqrt((1/nrow(df1))*sum((p1-df1$media)^2)))
Call:
lm(formula = media ~ Year, data = df1)
Residuals:
   Min      1Q  Median      3Q     Max 
-0.6810 -0.2077  0.0209  0.1953  0.7737 
Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -64.939272  18.394421  -3.530 0.001709 ** 
Year          0.038715   0.009181   4.217 0.000304 ***
---

Residual standard error: 0.3511 on 24 degrees of freedom
Multiple R-squared:  0.4256,	Adjusted R-squared:  0.4017 
F-statistic: 17.78 on 1 and 24 DF,  p-value: 0.0003042
R-squared= 0.4255855 
RMSE_train= 0.3373344

Aggiungendo come predictors alla regressione lineare la CO2 emessa in Italia e nel mondo dal 1960 al 2014 si ottiene un adjusted R-squared = 0,69 e un errore RMSE = 0,30°C che danno una stima positiva del modello .

df1 <- tas_1901_2016_ITA %>%
 filter(Year %in% 1960:2014) %>%
  group_by(Year)%>%
 summarise(media = mean(Temperature....Celsius.))
df1 <- cbind(df1,CO2_it=CO2_kt$CO2_Italia)
df1 <- cbind(df1,CO2_world=CO2_kt$CO2_Mondo)
lm_2 <- lm( media ~ Year + CO2_world + CO2_it , df1)
summary(lm_2)
p1 <- predict(lm_2,newdata = df1)
 
cat("RMSE_train=",sqrt((1/nrow(df1))*sum((p1-df1$media)^2)))


Call:
lm(formula = media ~ Year + CO2_world + CO2_it, data = df1)
Residuals:
    Min       1Q   Median       3Q      Max 
-0.64561 -0.21553  0.05704  0.21581  0.64385 
Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.338e+02  3.135e+01  -4.267 8.60e-05 ***
Year         7.475e-02  1.619e-02   4.618 2.66e-05 ***
CO2_world   -7.276e-08  3.200e-08  -2.274  0.02722 *  
CO2_it      -3.053e-06  8.038e-07  -3.798  0.00039 ***
Residual standard error: 0.3204 on 51 degrees of freedom
Multiple R-squared:  0.7054,	Adjusted R-squared:  0.688 
F-statistic:  40.7 on 3 and 51 DF,  p-value: 1.432e-13
RMSE_train= 0.3084831

Parte 5: Previsioni

[modifica | modifica sorgente]

Mantenendo costante la CO2 italiana e mondiale dal 2020 al 2040 pari a quella del 2014, con questo nuovo modello la temperatura media in Italia continua a crescere :**

for (y in 2020:2040) {
 
 new_year <- data.frame(Year=y, CO2_it=320411, CO2_world=36138285)
 print("_________________________________________________________________")
 pred <-predict(lm_2, new_year, interval = "confidence", level = 0.95)
 print(paste("Nell'anno ",y," la predetta temperatura media annuale sarà ",round(pred[1],2), "."))
 print("Siamo sicuri al 95% che la temperatura media annuale sarà ")
 print(paste("tra ",round(pred[2],2), " e " , round(pred[3],2) ,"" ))
}
[1] "_________________________________________________________________"
[1] "Nell'anno  2020  la predetta temperatura media annuale sarà  13.61 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.24  e  13.98 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2021  la predetta temperatura media annuale sarà  13.68 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.3  e  14.07 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2022  la predetta temperatura media annuale sarà  13.76 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.35  e  14.16 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2023  la predetta temperatura media annuale sarà  13.83 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.41  e  14.26 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2024  la predetta temperatura media annuale sarà  13.91 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.46  e  14.36 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2025  la predetta temperatura media annuale sarà  13.98 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.51  e  14.46 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2026  la predetta temperatura media annuale sarà  14.06 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.56  e  14.56 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2027  la predetta temperatura media annuale sarà  14.13 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.61  e  14.66 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2028  la predetta temperatura media annuale sarà  14.21 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.66  e  14.76 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2029  la predetta temperatura media annuale sarà  14.28 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.7  e  14.86 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2030  la predetta temperatura media annuale sarà  14.36 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.75  e  14.96 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2031  la predetta temperatura media annuale sarà  14.43 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.8  e  15.06 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2032  la predetta temperatura media annuale sarà  14.51 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.84  e  15.17 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2033  la predetta temperatura media annuale sarà  14.58 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.89  e  15.27 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2034  la predetta temperatura media annuale sarà  14.66 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.94  e  15.38 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2035  la predetta temperatura media annuale sarà  14.73 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  13.98  e  15.48 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2036  la predetta temperatura media annuale sarà  14.81 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  14.03  e  15.58 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2037  la predetta temperatura media annuale sarà  14.88 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  14.07  e  15.69 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2038  la predetta temperatura media annuale sarà  14.95 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  14.12  e  15.79 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2039  la predetta temperatura media annuale sarà  15.03 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  14.16  e  15.9 "
[1] "_________________________________________________________________"
[1] "Nell'anno  2040  la predetta temperatura media annuale sarà  15.1 ."
[1] "Siamo sicuri al 95% che la temperatura media annuale sarà "
[1] "tra  14.2  e  16 "