Actividad 1 - Métodos

Author

Mariana Franco, Danier Conde, Samuel Bermúdez, Miguel Lugo & Héctor San Juan

INTRODUCCIÓN

La base de datos “Precipitaciones Totales Mensuales” proporcionada por la Corporación Autónoma Regional de Cundinamarca (CAR) recopila información sobre el volumen de precipitaciones mensuales obtenidas en la red de estaciones hidrológicas de la CAR. Este conjunto de datos es crucial para el monitoreo y análisis de patrones climáticos y su impacto en la región de Cundinamarca.

Detalles del Conjunto de Datos

Organización Proveedora: Corporación Autónoma Regional de Cundinamarca (CAR)

Sector: Ambiente y Desarrollo Sostenible

Cobertura Geográfica: Departamental (Bogotá D.C.)

Frecuencia de Actualización: Anual

Periodo de Datos: Desde noviembre de 2016 hasta mayo de 2020

Licencia: Creative Commons Attribution | Share Alike 4.0 International

Idiomas: Español

Estructura de los Datos

El conjunto de datos incluye las siguientes columnas:

  • ESTACIÓN: Nombre de la estación.

  • CÓDIGO: Código CAR de la estación.

  • X=N: Coordenadas planas de la estación, con origen en Bogotá.

  • Y=E: Coordenadas planas de la estación, con origen en Bogotá.

  • MUNICIPIO: Municipio de ubicación de la estación.

  • CUENCA: Cuenca de ubicación de la estación.

  • AÑO: Año correspondiente a la información.

  • ENERO a DICIEMBRE: Medidas de precipitación mensual en mm.

  1. ¿Qué objetivo plantearías para el estudio o el interés del investigador?

Objetivo Planteado: El objetivo principal del estudio podría ser analizar las precipitaciones mensuales en la región de Cundinamarca para identificar patrones temporales, estacionales y espaciales. Esto incluye:

  • Evaluar las tendencias de precipitaciones a lo largo del tiempo.

  • Identificar las estaciones con las mayores y menores precipitaciones.

  • Estudiar la variabilidad espacial de las precipitaciones en diferentes municipios y cuencas.

  1. ¿Qué variables se involucran en el estudio y de qué tipo son? Cuadro de operacionalización de variables

Attaching package: 'kableExtra'
The following object is masked from 'package:dplyr':

    group_rows
Cuadro de Operacionalización de Variables
Variable Tipo Definición
estacion Categórica Nombre de la estación
codigo Categórica Código CAR de la estación
x_n Categórica Coordenada Este en metros desde el origen
y_e Categórica Coordenada Norte en metros desde el origen
municipio Categórica Municipio en el que se encuentra la estación
cuenca Categórica Cuenca en la que se encuentra la estación
ano Categórica Año de las observaciones
enero Numérica Precipitación en enero (mm)
febrero Numérica Precipitación en febrero (mm)
marzo Numérica Precipitación en marzo (mm)
abril Numérica Precipitación en abril (mm)
mayo Numérica Precipitación en mayo (mm)
junio Numérica Precipitación en junio (mm)
julio Numérica Precipitación en julio (mm)
agosto Numérica Precipitación en agosto (mm)
septiembre Numérica Precipitación en septiembre (mm)
octubre Numérica Precipitación en octubre (mm)
noviembre Numérica Precipitación en noviembre (mm)
diciembre Numérica Precipitación en diciembre (mm)
  1. Realice un descriptivo de los datos, incluya gráficos y resúmenes numéricos.

    str(data_limpios)
    tibble [6,196 × 19] (S3: tbl_df/tbl/data.frame)
     $ estacion  : chr [1:6196] "Pajas Blancas" "Pajas Blancas" "Pajas Blancas" "Pajas Blancas" ...
     $ codigo    : chr [1:6196] "2119022" "2119022" "2119022" "2119022" ...
     $ x_n       : chr [1:6196] "2119022" "2119022" "2119022" "2119022" ...
     $ y_e       : chr [1:6196] "2119022" "2119022" "2119022" "2119022" ...
     $ municipio : chr [1:6196] "Nilo" "Nilo" "Nilo" "Nilo" ...
     $ cuenca    : chr [1:6196] "R. Paguey" "R. Paguey" "R. Paguey" "R. Paguey" ...
     $ ano       : chr [1:6196] "2119022" "2119022" "2119022" "2119022" ...
     $ enero     : num [1:6196] 0 295.9 294.2 144.3 78.3 ...
     $ febrero   : num [1:6196] 0 127.2 76.9 118 256.6 ...
     $ marzo     : num [1:6196] 0 248 160 209 83 ...
     $ abril     : num [1:6196] 0 149 296 438 339 ...
     $ mayo      : num [1:6196] 0 0 144 293 108 ...
     $ junio     : num [1:6196] 0 0 134.3 30.6 236.2 ...
     $ julio     : num [1:6196] 0 0 20.1 35.2 17.6 37.5 21.6 51.2 37.6 59 ...
     $ agosto    : num [1:6196] 0 0 3.6 30.7 23.7 74.8 38.3 6.8 33.1 16.5 ...
     $ septiembre: num [1:6196] 31.5 0 75.3 103.2 322.9 ...
     $ octubre   : num [1:6196] 190 0 174 386 338 ...
     $ noviembre : num [1:6196] 154 0 182 105 234 ...
     $ diciembre : num [1:6196] 76.2 115.2 110.1 235.7 199.5 ...
    summary(data_limpios)
       estacion            codigo              x_n                y_e           
     Length:6196        Length:6196        Length:6196        Length:6196       
     Class :character   Class :character   Class :character   Class :character  
     Mode  :character   Mode  :character   Mode  :character   Mode  :character  
    
    
    
    
      municipio            cuenca              ano                enero       
     Length:6196        Length:6196        Length:6196        Min.   :  0.00  
     Class :character   Class :character   Class :character   1st Qu.:  8.60  
     Mode  :character   Mode  :character   Mode  :character   Median : 26.00  
                                                              Mean   : 38.42  
                                                              3rd Qu.: 53.40  
                                                              Max.   :454.80  
    
        febrero           marzo            abril             mayo      
     Min.   :  0.00   Min.   :  0.00   Min.   :  0.00   Min.   :  0.0  
     1st Qu.: 19.20   1st Qu.: 37.80   1st Qu.: 59.33   1st Qu.: 53.5  
     Median : 40.50   Median : 71.40   Median : 98.75   Median : 90.2  
     Mean   : 52.27   Mean   : 83.43   Mean   :115.19   Mean   :100.4  
     3rd Qu.: 71.00   3rd Qu.:113.40   3rd Qu.:154.50   3rd Qu.:134.6  
     Max.   :492.30   Max.   :670.70   Max.   :828.50   Max.   :823.5  
                      NA's   :2        NA's   :2                       
         junio            julio            agosto         septiembre    
     Min.   :  0.00   Min.   :  0.00   Min.   :  0.00   Min.   :  0.00  
     1st Qu.: 29.70   1st Qu.: 22.98   1st Qu.: 22.20   1st Qu.: 28.10  
     Median : 55.50   Median : 44.15   Median : 42.15   Median : 52.00  
     Mean   : 64.87   Mean   : 55.39   Mean   : 51.70   Mean   : 61.80  
     3rd Qu.: 88.00   3rd Qu.: 72.70   3rd Qu.: 69.50   3rd Qu.: 83.72  
     Max.   :791.00   Max.   :550.00   Max.   :500.50   Max.   :498.60  
     NA's   :1                                                          
        octubre        noviembre       diciembre     
     Min.   :  0.0   Min.   :  0.0   Min.   :  0.00  
     1st Qu.: 58.5   1st Qu.: 52.9   1st Qu.: 18.20  
     Median :102.0   Median : 91.5   Median : 44.10  
     Mean   :113.5   Mean   :105.3   Mean   : 57.12  
     3rd Qu.:153.2   3rd Qu.:140.5   3rd Qu.: 80.60  
     Max.   :675.2   Max.   :767.0   Max.   :532.30  
    
    #tratamiento de los NA
    missmap(data_limpios, main="Mapa de Datos Faltantes")
    Warning: Unknown or uninitialised column: `arguments`.
    Unknown or uninitialised column: `arguments`.
    Warning: Unknown or uninitialised column: `imputations`.

    #se puede observar que no hay datos faltantes asi que seguimos libremente con el analisis.
  2. Inspeccione un histograma y/o un diagrama de caja y bigotes con los datos de tipo numérico. A partir desu inspección, ¿cómo podría definir esta distribución, con asimetría positiva, con asimetría negativa o simétrica? ¿Se ajustan estos datos a una distribución normal?

Teniendo en cuenta la visualizacion de histograma y diagrama de cajas y bigotes para el primer trimestre los datos son asimetricos, con asimetria positiva debido a que hay valores extremos grandes mayores a la media. Al tener asimetría los datos se dice que no se presenta una distribucion normal en los datos.

  1. Seleccione dos o más grupos de interés ¿Existen diferencias estadísticamente significativas entre los valores medios de los grupos involucrados?
# Test de Kruskal-Wallis no parametrico para datos que no son normales y compara mas de dos grupos.

kruskal_test <- kruskal.test(enero ~ estacion, data = data_limpios)
print(kruskal_test)

    Kruskal-Wallis rank sum test

data:  enero by estacion
Kruskal-Wallis chi-squared = 1139.9, df = 173, p-value < 2.2e-16

Dado que el p-valor es mucho menor que 0.05, se rechaza la hipótesis nula de que las medianas de las precipitaciones en enero son iguales para todas las estaciones. Esto sugiere que hay diferencias significativas en las precipitaciones entre las estaciones.

No se realiza comparación directa de los valores medios sino de la mediana debido a que los datos no son normales y la mediana es mas robusta en estos casos. En el caso de querer saber cuales son los grupo especificos que difieren se realizaría prueba post-hoc.

  1. ¿Qué otras comparaciones o inferencias resultarían interesantes en este análisis?

Una comparación adicional que se puede realizar a partir de este conjunto de datos es el análisis de las distribuciones que poseen sus registros. Una hipótesis común para verificar es, si los registros cuentan con una distribución normal. Para eso se aplica la prueba Kolmogorov-Smirnov, que arroja un p-valor indicando la tendencia de la distribución o distribuciones a evaluar. Primero se realizará la prueba indagando si la distribución de los datos en la columna “ENERO” es una distribución normal; para esto se compara la distribución de la muestra tomada con una distribución teórica “pnorm”, que es la distribución normal. Sin embargo, el ks.test() asume que no hay empates en el conjunto de datos a evaluar, por lo cual se procede a eliminar los empates.

# Aplicar el test de Kolmogorov-Smirnov en los datos originales de ENERO
norm_enero <- ks.test(data_limpios$enero, "pnorm", mean=mean(data_limpios$enero, na.rm = TRUE), sd=sd(data_limpios$enero, na.rm = TRUE))
Warning in ks.test.default(data_limpios$enero, "pnorm", mean =
mean(data_limpios$enero, : ties should not be present for the one-sample
Kolmogorov-Smirnov test
#Eliminar los empates
data_sin_empates_enero <- data_limpios$enero[!duplicated(data_limpios$enero)]

# Se comparan las medidas centrales de la muestra antes y despues de eliminar los empates
summary(data_limpios$enero)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    8.60   26.00   38.42   53.40  454.80 
summary(data_sin_empates_enero)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00   32.27   65.45   78.30  108.45  454.80 
#Aplicar el test ks.test nuevamente
ks.test(data_sin_empates_enero, "pnorm", mean=mean(data_sin_empates_enero, na.rm=TRUE), sd=sd(data_sin_empates_enero, na.rm=TRUE))

    Asymptotic one-sample Kolmogorov-Smirnov test

data:  data_sin_empates_enero
D = 0.10347, p-value = 1.939e-12
alternative hypothesis: two-sided

Como el p-valor arrojado por la prueba luego de eliminar los empates es menor a 0.05, se puede rechazar la hipótesis nula, y se afirma que el conjunto de los datos recogidos para el mes de enero no cuenta con una distribución normal. Análogamente se realiza el mismo proceso para los datos recogidos en marzo:

#Aplicar el test de Kolmogorov-Smirnov en los datos originales de MARZO
norm <- ks.test(data_limpios$marzo, "pnorm", mean=mean(data_limpios$marzo, na.rm = TRUE), sd=sd(data_limpios$marzo, na.rm = TRUE))
Warning in ks.test.default(data_limpios$marzo, "pnorm", mean =
mean(data_limpios$marzo, : ties should not be present for the one-sample
Kolmogorov-Smirnov test
# Eliminar los empates
data_sin_empates <- data_limpios$marzo[!duplicated(data_limpios$marzo)]
#Se comparan las medidas centrales de la muestra antes y despues de eliminar los empates
summary(data_limpios$marzo)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   0.00   37.80   71.40   83.43  113.40  670.70       2 
summary(data_sin_empates)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   0.00   51.95  101.00  115.85  160.15  670.70       1 
# Aplicar el ks.test nuevamente
ks.test(data_sin_empates, "pnorm", mean=mean(data_sin_empates, na.rm=TRUE), sd=sd(data_sin_empates, na.rm=TRUE))

    Asymptotic one-sample Kolmogorov-Smirnov test

data:  data_sin_empates
D = 0.086453, p-value = 1.124e-12
alternative hypothesis: two-sided

Otra comparación útil con el ks.test(), es validar si dos conjuntos de datos provienen de la misma distribución. Para eso se eliminan los empates de las muestras recogidas y se aplica el ks.test() tomando ambas distribuciones:

#se eliminan los empates de las columnas a comparar
data_sin_empates_enero <- data_limpios$enero[!duplicated(data_limpios$enero)]
data_sin_empates_marzo <- data_limpios$marzo[!duplicated(data_limpios$marzo)]
               
#se aplica ks.test comparando ambas distribuciones                              
dist_enero_marzo <- ks.test(data_sin_empates_marzo, data_sin_empates_enero)
Warning in ks.test.default(data_sin_empates_marzo, data_sin_empates_enero):
p-value will be approximate in the presence of ties
print(dist_enero_marzo)

    Asymptotic two-sample Kolmogorov-Smirnov test

data:  data_sin_empates_marzo and data_sin_empates_enero
D = 0.21553, p-value < 2.2e-16
alternative hypothesis: two-sided

Como el p-valor arrojado por la prueba es menor a 0.05, se rechaza la hipótesis nula, y se afirma que los datos no cuentan con la misma distribución. Esto es útil para inferir que no existe un patrón estacional en las precipitaciones de enero y marzo, dado a que sus distribuciones en las muestras recogidas no concuerdan.