Variación de Temperatura Superficial Anual
Input
Se ha obtenido un conjunto de datos del “IMF Climate Change Dashboard”, una herramienta desarrollada por el Fondo Monetario Internacional (IMF) para ayudar a los países a evaluar y gestionar los riesgos financieros asociados con el cambio climático.
En concreto, el dataset con el que se va a trabajar, llamado “Annual Surface Temperature Change”, contiene estimaciones anuales del cambio medio de la temperatura de la superficie terrestre medido con respecto a una climatología base, correspondiente al periodo entre 1961 y 2022.
El dataset se puede obtener siguiendo el siguiente enlace: Annual Surface Temperature Change.
Descripción
Comenzamos cargando los datos.
datos <- read_csv("data/Annual_Surface_Temperature_Change.csv")
Rows: 236 Columns: 73
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (9): Country, ISO2, ISO3, Indicator, Unit, Source, CTS Code, CTS Name, ...
dbl (64): ObjectId, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 19...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
summary(datos)
ObjectId Country ISO2 ISO3
Min. : 1.00 Length:236 Length:236 Length:236
1st Qu.: 59.75 Class :character Class :character Class :character
Median :118.50 Mode :character Mode :character Mode :character
Mean :118.73
3rd Qu.:177.25
Max. :241.00
Indicator Unit Source CTS Code
Length:236 Length:236 Length:236 Length:236
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
CTS Name CTS Full Descriptor 1961 1962
Length:236 Length:236 Min. :-0.6970 Min. :-1.36400
Class :character Class :character 1st Qu.:-0.1050 1st Qu.:-0.20775
Mode :character Mode :character Median : 0.0600 Median :-0.07650
Mean : 0.1666 Mean :-0.02863
3rd Qu.: 0.3200 3rd Qu.: 0.11875
Max. : 1.8940 Max. : 1.03300
NA's :35 NA's :34
1963 1964 1965 1966
Min. :-2.24400 Min. :-0.87600 Min. :-1.0510 Min. :-2.3570
1st Qu.:-0.20600 1st Qu.:-0.26350 1st Qu.:-0.4120 1st Qu.:-0.0435
Median :-0.00200 Median :-0.10550 Median :-0.2240 Median : 0.1205
Mean :-0.01623 Mean :-0.09661 Mean :-0.2457 Mean : 0.1073
3rd Qu.: 0.20100 3rd Qu.: 0.08300 3rd Qu.:-0.1020 3rd Qu.: 0.2888
Max. : 1.18700 Max. : 1.08300 Max. : 0.8690 Max. : 1.4240
NA's :35 NA's :36 NA's :37 NA's :34
1967 1968 1969 1970
Min. :-1.0230 Min. :-3.2510 Min. :-1.7400 Min. :-1.2810
1st Qu.:-0.2575 1st Qu.:-0.3505 1st Qu.:-0.0300 1st Qu.:-0.0660
Median :-0.1430 Median :-0.1970 Median : 0.1965 Median : 0.1530
Mean :-0.1077 Mean :-0.2131 Mean : 0.1366 Mean : 0.1002
3rd Qu.: 0.0105 3rd Qu.:-0.0565 3rd Qu.: 0.3257 3rd Qu.: 0.3000
Max. : 1.1430 Max. : 0.4790 Max. : 0.9350 Max. : 1.0000
NA's :37 NA's :37 NA's :38 NA's :39
1971 1972 1973 1974
Min. :-1.30900 Min. :-1.79200 Min. :-0.89200 Min. :-0.9280
1st Qu.:-0.32875 1st Qu.:-0.22700 1st Qu.: 0.01425 1st Qu.:-0.3450
Median :-0.18500 Median :-0.04250 Median : 0.29150 Median :-0.2080
Mean :-0.19576 Mean :-0.06672 Mean : 0.23750 Mean :-0.1548
3rd Qu.:-0.06175 3rd Qu.: 0.13575 3rd Qu.: 0.45175 3rd Qu.:-0.0140
Max. : 0.66500 Max. : 2.38600 Max. : 1.14700 Max. : 1.5960
NA's :36 NA's :34 NA's :34 NA's :35
1975 1976 1977 1978
Min. :-1.09200 Min. :-1.1540 Min. :-0.703 Min. :-0.85500
1st Qu.:-0.25600 1st Qu.:-0.4440 1st Qu.: 0.021 1st Qu.:-0.03050
Median :-0.12800 Median :-0.2790 Median : 0.220 Median : 0.10100
Mean :-0.01387 Mean :-0.2422 Mean : 0.181 Mean : 0.07109
3rd Qu.: 0.11700 3rd Qu.:-0.0740 3rd Qu.: 0.326 3rd Qu.: 0.23650
Max. : 1.89300 Max. : 0.9240 Max. : 1.083 Max. : 0.93200
NA's :39 NA's :37 NA's :39 NA's :37
1979 1980 1981 1982
Min. :-1.3220 Min. :-0.7590 Min. :-1.0660 Min. :-0.68500
1st Qu.: 0.1265 1st Qu.: 0.0300 1st Qu.: 0.0225 1st Qu.:-0.03275
Median : 0.2800 Median : 0.2860 Median : 0.1905 Median : 0.19000
Mean : 0.2366 Mean : 0.2519 Mean : 0.1812 Mean : 0.16816
3rd Qu.: 0.4600 3rd Qu.: 0.4740 3rd Qu.: 0.3675 3rd Qu.: 0.40675
Max. : 1.2740 Max. : 1.0620 Max. : 1.5630 Max. : 1.18200
NA's :37 NA's :35 NA's :38 NA's :36
1983 1984 1985 1986
Min. :-2.4210 Min. :-1.9230 Min. :-1.21000 Min. :-0.7660
1st Qu.: 0.1260 1st Qu.:-0.1370 1st Qu.:-0.06900 1st Qu.:-0.0125
Median : 0.4240 Median : 0.1090 Median : 0.11100 Median : 0.1860
Mean : 0.3335 Mean : 0.0803 Mean : 0.07129 Mean : 0.1435
3rd Qu.: 0.7000 3rd Qu.: 0.2960 3rd Qu.: 0.29700 3rd Qu.: 0.3400
Max. : 1.4460 Max. : 1.8960 Max. : 1.78900 Max. : 0.9070
NA's :37 NA's :39 NA's :39 NA's :37
1987 1988 1989 1990
Min. :-1.6490 Min. :-2.1080 Min. :-1.6760 Min. :-0.7180
1st Qu.: 0.1675 1st Qu.: 0.2950 1st Qu.:-0.0315 1st Qu.: 0.2460
Median : 0.4520 Median : 0.4970 Median : 0.1480 Median : 0.4770
Mean : 0.3914 Mean : 0.4759 Mean : 0.2474 Mean : 0.5500
3rd Qu.: 0.7195 3rd Qu.: 0.6750 3rd Qu.: 0.3890 3rd Qu.: 0.7835
Max. : 1.4290 Max. : 1.4020 Max. : 2.1840 Max. : 1.8390
NA's :37 NA's :37 NA's :37 NA's :37
1991 1992 1993 1994
Min. :-0.6440 Min. :-1.3560 Min. :-1.52100 Min. :-0.5750
1st Qu.: 0.1920 1st Qu.:-0.0330 1st Qu.: 0.00625 1st Qu.: 0.2657
Median : 0.3850 Median : 0.2920 Median : 0.25900 Median : 0.4825
Mean : 0.3757 Mean : 0.2245 Mean : 0.20237 Mean : 0.5922
3rd Qu.: 0.5750 3rd Qu.: 0.5120 3rd Qu.: 0.51700 3rd Qu.: 0.7953
Max. : 1.3160 Max. : 1.6020 Max. : 1.11400 Max. : 1.9670
NA's :38 NA's :17 NA's :18 NA's :18
1995 1996 1997 1998
Min. :-0.4310 Min. :-0.79300 Min. :-0.5180 Min. :-0.5010
1st Qu.: 0.3603 1st Qu.: 0.02375 1st Qu.: 0.2415 1st Qu.: 0.7750
Median : 0.6250 Median : 0.30400 Median : 0.5450 Median : 1.0220
Mean : 0.6224 Mean : 0.29154 Mean : 0.5420 Mean : 0.9749
3rd Qu.: 0.8143 3rd Qu.: 0.52000 3rd Qu.: 0.8000 3rd Qu.: 1.2300
Max. : 2.1010 Max. : 1.71000 Max. : 1.9660 Max. : 2.4840
NA's :16 NA's :16 NA's :20 NA's :17
1999 2000 2001 2002
Min. :-0.5510 Min. :-0.7930 Min. :-0.1510 Min. :-0.0730
1st Qu.: 0.3940 1st Qu.: 0.3305 1st Qu.: 0.4988 1st Qu.: 0.6670
Median : 0.6600 Median : 0.5400 Median : 0.6890 Median : 0.8310
Mean : 0.7413 Mean : 0.6749 Mean : 0.8503 Mean : 0.9295
3rd Qu.: 1.0415 3rd Qu.: 1.0180 3rd Qu.: 1.2608 3rd Qu.: 1.1640
Max. : 2.0670 Max. : 2.0460 Max. : 2.0170 Max. : 2.2550
NA's :17 NA's :17 NA's :20 NA's :15
2003 2004 2005 2006
Min. :-0.4550 Min. :-0.5160 Min. :-0.2870 Min. :-0.1660
1st Qu.: 0.6410 1st Qu.: 0.5577 1st Qu.: 0.6360 1st Qu.: 0.6215
Median : 0.8770 Median : 0.7510 Median : 0.8640 Median : 0.8270
Mean : 0.8413 Mean : 0.7794 Mean : 0.8793 Mean : 0.8903
3rd Qu.: 1.0370 3rd Qu.: 0.9760 3rd Qu.: 1.1220 3rd Qu.: 1.1355
Max. : 2.3630 Max. : 2.1610 Max. : 2.4460 Max. : 3.8860
NA's :15 NA's :16 NA's :17 NA's :13
2007 2008 2009 2010
Min. :-0.4570 Min. :-0.033 Min. :-0.1950 Min. :-0.342
1st Qu.: 0.6807 1st Qu.: 0.440 1st Qu.: 0.6690 1st Qu.: 0.744
Median : 0.8870 Median : 0.706 Median : 0.9080 Median : 1.087
Mean : 1.0257 Mean : 0.809 Mean : 0.9178 Mean : 1.120
3rd Qu.: 1.1892 3rd Qu.: 1.090 3rd Qu.: 1.2055 3rd Qu.: 1.334
Max. : 3.0500 Max. : 2.587 Max. : 1.9060 Max. : 3.231
NA's :12 NA's :16 NA's :13 NA's :11
2011 2012 2013 2014
Min. :-0.3560 Min. :-0.2730 Min. :0.173 Min. :0.130
1st Qu.: 0.5690 1st Qu.: 0.5760 1st Qu.:0.702 1st Qu.:0.708
Median : 0.7710 Median : 0.8040 Median :0.937 Median :0.951
Mean : 0.8273 Mean : 0.9087 Mean :0.942 Mean :1.114
3rd Qu.: 1.0870 3rd Qu.: 1.2070 3rd Qu.:1.176 3rd Qu.:1.315
Max. : 2.1050 Max. : 3.8250 Max. :2.271 Max. :3.382
NA's :11 NA's :15 NA's :15 NA's :15
2015 2016 2017 2018
Min. :-0.132 Min. :0.234 Min. :0.243 Min. :0.3020
1st Qu.: 0.954 1st Qu.:1.147 1st Qu.:1.009 1st Qu.:0.8385
Median : 1.221 Median :1.443 Median :1.247 Median :1.1330
Mean : 1.261 Mean :1.440 Mean :1.281 Mean :1.3047
3rd Qu.: 1.536 3rd Qu.:1.712 3rd Qu.:1.530 3rd Qu.:1.8390
Max. : 3.313 Max. :5.327 Max. :3.335 Max. :4.0640
NA's :13 NA's :13 NA's :13 NA's :13
2019 2020 2021 2022
Min. :0.121 Min. :0.059 Min. :-0.5690 Min. :-0.6980
1st Qu.:1.114 1st Qu.:1.121 1st Qu.: 0.9335 1st Qu.: 0.8415
Median :1.367 Median :1.415 Median : 1.2970 Median : 1.2750
Mean :1.429 Mean :1.523 Mean : 1.3098 Mean : 1.3490
3rd Qu.:1.693 3rd Qu.:1.835 3rd Qu.: 1.6185 3rd Qu.: 1.8600
Max. :2.871 Max. :3.669 Max. : 3.0120 Max. : 3.5120
NA's :14 NA's :16 NA's :13 NA's :13
2023
Min. :0.215
1st Qu.:1.177
Median :1.611
Mean :1.647
3rd Qu.:2.080
Max. :3.578
NA's :15
Contamos con un conjunto de datos de 225 observaciones y 72 variables. A continuación, se realizará una breve descripción de las variables. Las primeras son cualitativas, y describen la información que contiene el dataset.
ObjectID: ID único asignado a cada una de las observaciones.
Country: nombre del país; tipo cadena de caracteres.
ISO2: código de dos letras del país según el estándar internacional para la representación de países; tipo cadena de caracteres.
ISO3: código de tres letras del país según el estándar internacional para la representación de países; tipo cadena de caracteres.
Indicator: tipo de indicador que se muestra en el dataset; tipo cadena de caracteres.
Unit: unidad con la que trabaja el data set (grados celsius); tipo cadena de caracteres.
Source: fuente de obtención de los datos (FAO); tipo cadena de caracteres.
CTS Code: contiene un código identificativo para esta base de datos, dentro del IMF; tipo cadena de caracteres.
CTS Name: contiene el nombre de la base de datos; tipo cadena de caracteres.
CTS Full Descriptor: contiene etiquetas que describen la temática de la base de datos; tipo cadena de caracteres.
A partir de aquí, el resto de variables son las variaciones de temperatura cada año, desde 1961 hasta 2022, por país.
El principal aspecto a mejorar que se observa en este dataset es la existencia de numerosos valores ausentes o NAs en todas las variables que representan años. Esto se ha podido comprobar con la misma carga de los datos y la función summary.
Tratamiento
Una vez detectados los principales aspectos a mejorar del conjunto de datos, se realizarán los cambios necesarios sobre el mismo para su adecuación.
En primer lugar, procederemos al tratamiento de los valores ausentes. Existen diversas formas de trabajar con NAs, como su eliminación o la imputación de otros valores en su lugar mediante diversos métodos (cálculo de la media, la mediana…).
Para este conjunto de datos, primeramente se consideró el cálculo de la media de cada caso, ya que es una de las formas más sencilla de imputación. Sin embargo, y como se puede observar a continuación, las temperaturas van en aumento año tras año debido al cambio climático, por lo que imputar la media de todos los datos no tendría sentido a nivel cronológico.
También se consideró la posibilidad de calcular la media entre el dato anterior y el posterior al NA, pero estos valores faltantes están consecutivos en la misma fila, por lo que es imposible realizar este procedimiento. Por tanto, el método finalmente escogido para la imputación de valores ha sido la imputación basada en vecinos más cercanos, utilizando la función kNN del paquete VIM. Esto permite encontrar observaciones similares a las que tienen valores faltantes y utilizar los valores de estas observaciones para imputar los NA.
Cargando paquete requerido: colorspace
Cargando paquete requerido: grid
VIM is ready to use.
Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
Adjuntando el paquete: 'VIM'
The following object is masked from 'package:datasets':
sleep
# Usamos la función de imputación
datos_imputados_k <- kNN(datos)
# Comprobamos que ha funcionado (no hay NAs)
any(is.na(datos_imputados_k))
[1] FALSE
Output
Se ha obtenido este nuevo conjunto de datos:
# Supongamos que tu dataset se llama "mi_dataset"
write.csv(datos_imputados_k, "datos_imputados_k.csv", row.names = FALSE)
El fichero generado con este procedimiento se puede obtener de aquí.
Proyecto de Innovación Educativa Emergente (PIEE-2737007)