Análisis descriptivo y exploratorio de datos

Evaluaciones agropecuarias

Author

Edimer David Jaramillo

Published

March 31, 2025

Bibliotecas

Code
library(readxl)
library(tidyverse)
library(janitor)
library(gt)
library(moments)

Datos completos

Code
datos <- read_excel("datos/Base agrícola 2019 - 2023.xlsx",
                    skip = 6) |> 
  clean_names()

datos |> head()

Conteo por cultivo

Code
datos |> 
  count(cultivo, sort = TRUE, name = "total")

Datos de tomate

Code
df_tomate <-
  datos |>
  filter(cultivo == "Tomate")

df_tomate

Métricas estadísticas

Métricas de tendencia central

Media aritmética

  • Esta es una forma en R de calcular el promedio:
Code
df_tomate$rendimiento_t_ha |> mean()
[1] 40.22106
  • Esta otra forma es equivalente en R para calcular el promedio:
Code
mean(df_tomate$rendimiento_t_ha)
[1] 40.22106
  • Esta es otra forma equivalente para calcular el promedio:
Code
df_tomate |> 
  pull(rendimiento_t_ha) |> 
  mean()
[1] 40.22106
  • Ojo!!! Tener cuidado cuando hay valores “NA” en la variable sobre la cual deseo calcular alguna métrica.
Code
ejemplo <- c(40.14, 38.67, 28.98, 19.39, NA)

ejemplo |> mean(na.rm = TRUE) # remover NAs antes de hacer el cálculo
[1] 31.795
  • ¿Qué pasa si calculo el promedio de una variable categórica?
Code
df_tomate$municipio |> mean()
[1] NA

Media aritmética agrupada

  • Vamos a agrupar por departamento:
Code
df_tomate |> 
  group_by(departamento) |> 
  summarise(
    promedio_rto = mean(rendimiento_t_ha),
    prom_area_sem = mean(area_sembrada_ha),
    prom_area_cos = mean(area_cosechada_ha)
  ) |> 
  arrange(desc(promedio_rto)) |> 
  mutate(prom_area_perdia = prom_area_sem - prom_area_cos)
  • Vamos a construir una tabla resumen con promedios por departamento y año:
Code
tabla_resumen1 <-
  df_tomate |> 
  group_by(departamento, ano) |> 
  reframe(promedio_rto = mean(rendimiento_t_ha)) |> 
  pivot_wider(names_from = ano,
              values_from = promedio_rto) |> 
  relocate(departamento, "2019", everything())

tabla_resumen1
  • Podemos editar la estética de la tabla para presentarla al público general:
Code
tabla_resumen1 |> 
  gt(rowname_col = "departamento") |> 
  tab_header(title = "Promedios de rendimiento en tomate",
             subtitle = "Años 2019 a 2023") |> 
  fmt_number(decimals = 2)
Promedios de rendimiento en tomate
Años 2019 a 2023
2019 2020 2021 2022 2023
Amazonas NA 2.30 3.00 3.00 3.00
Antioquia 70.87 65.10 60.95 63.53 64.64
Arauca 9.00 NA NA NA NA
Atlántico 17.87 12.12 11.62 11.58 11.75
Bolívar 8.50 6.00 8.00 5.67 5.67
Boyacá 51.33 50.69 46.59 51.80 54.52
Caldas 34.08 40.93 36.14 37.99 39.57
Caquetá 4.00 35.55 4.87 9.67 9.58
Casanare 40.00 33.33 45.00 3.00 71.00
Cauca 30.43 31.38 32.86 33.56 34.83
Cesar 21.60 43.09 39.43 37.58 33.17
Chocó 3.75 2.80 10.16 17.80 18.00
Cundinamarca 33.80 34.98 35.35 42.17 43.21
Córdoba 8.00 4.33 4.40 3.50 12.00
Huila 16.89 17.85 17.81 19.57 20.37
La Guajira 12.25 9.68 9.61 9.25 9.45
Magdalena 13.75 12.97 13.17 13.67 13.48
Meta 29.74 26.25 20.87 16.12 17.50
Nariño 51.05 47.03 47.52 51.92 62.78
Norte de Santander 38.78 38.46 32.52 32.90 35.99
Putumayo 34.56 NA NA 65.00 42.00
Quindío 37.43 35.33 31.12 41.50 51.65
Risaralda 53.67 40.88 73.50 76.86 84.42
Santander 36.62 34.18 32.35 35.77 38.88
Sucre NA NA 1.50 NA NA
Tolima 29.80 26.20 30.26 41.17 44.37
Valle del Cauca 25.37 29.51 27.60 33.05 46.20
Vichada NA NA NA 17.00 NA

Media ponderada

  • Media ponderada nacional de rendimiento:
Code
weighted.mean(x = df_tomate$rendimiento_t_ha,
              w = df_tomate$area_sembrada_ha)
[1] 47.68841
  • Vamos a calcular la media ponderada en función del área sembrada:
Code
df_tomate |> 
  group_by(departamento) |> 
  reframe(prom_rto_pond = weighted.mean(x = rendimiento_t_ha, w = area_sembrada_ha)) |> 
  arrange(desc(prom_rto_pond))

Mediana

  • Mediana nacional del rendimiento:
Code
median(df_tomate$rendimiento_t_ha)
[1] 28
  • Mediana del rendimiento por departamento:
Code
df_tomate |> 
  group_by(departamento) |> 
  reframe(
    mediana_rto = median(rendimiento_t_ha)
  ) |> 
  arrange(desc(mediana_rto))

Moda

Code
moda <- function(x) {
  ux = unique(x)
  tab = tabulate(match(x, ux))
  ux[tab == max(tab)]
}

moda(df_tomate$rendimiento_t_ha)
[1] 20
  • Resumen de moda por departamento:
Code
df_tomate |> 
  group_by(departamento) |> 
  reframe(moda_rto = moda(rendimiento_t_ha)) |> 
  arrange(desc(moda_rto))

Relación media, mediana y moda

Code
df_tomate |> 
  group_by(departamento) |> 
  reframe(
    mediana_rto = median(rendimiento_t_ha),
    promedio_rto = mean(rendimiento_t_ha),
    moda_rto = moda(rendimiento_t_ha),
    n_datos = n()
  ) |> 
  arrange(desc(mediana_rto))

Métricas de posición

Percentiles

  • Podemos calcular un único percentil, por ejemplo, el 95:
Code
df_tomate$rendimiento_t_ha |> 
  quantile(probs = 0.95)
  95% 
117.7 
  • Podemos calcular varios percentiles:
Code
df_tomate$rendimiento_t_ha |> 
  quantile(probs = c(0.01, 0.02, 0.03, 0.98, 0.99, 1))
      1%       2%       3%      98%      99%     100% 
  1.0000   2.0000   3.6178 125.0000 140.0000 188.0000 
  • Podemos calcular todos los percentiles:
Code
percentiles <- seq(from = 0, to = 1, by = 0.01)

df_tomate$rendimiento_t_ha |> 
  quantile(probs = percentiles)
      0%       1%       2%       3%       4%       5%       6%       7% 
  0.0000   1.0000   2.0000   3.6178   5.0000   5.8000   6.2468   7.0000 
      8%       9%      10%      11%      12%      13%      14%      15% 
  7.5000   8.0000   9.0000   9.6320  10.0000  10.0000  10.5000  12.0000 
     16%      17%      18%      19%      20%      21%      22%      23% 
 12.0000  12.0000  14.0000  14.5560  15.0000  15.0000  15.0000  16.0000 
     24%      25%      26%      27%      28%      29%      30%      31% 
 16.0000  16.7350  17.0000  17.0000  18.0000  18.0000  18.0000  18.5000 
     32%      33%      34%      35%      36%      37%      38%      39% 
 19.0000  20.0000  20.0000  20.0000  20.0000  20.0000  20.0000  21.0000 
     40%      41%      42%      43%      44%      45%      46%      47% 
 22.0000  23.0000  23.3508  24.0000  25.0000  25.0000  25.0000  25.0000 
     48%      49%      50%      51%      52%      53%      54%      55% 
 25.2640  26.6598  28.0000  28.0000  29.0000  30.0000  30.0000  30.0000 
     56%      57%      58%      59%      60%      61%      62%      63% 
 30.0000  30.0000  31.2500  33.0000  35.0000  35.0000  35.0000  37.0000 
     64%      65%      66%      67%      68%      69%      70%      71% 
 40.0000  40.0000  40.0000  42.0000  45.0000  47.0000  48.0000  50.0000 
     72%      73%      74%      75%      76%      77%      78%      79% 
 50.0000  50.0000  54.0000  55.0000  60.0000  60.0000  60.0000  65.0000 
     80%      81%      82%      83%      84%      85%      86%      87% 
 68.0000  70.0000  75.0000  80.0000  80.0000  80.0000  81.0000  85.0000 
     88%      89%      90%      91%      92%      93%      94%      95% 
 90.0000  90.0000  93.0000  98.0000 100.0000 108.0000 110.0000 117.7000 
     96%      97%      98%      99%     100% 
120.0000 120.0000 125.0000 140.0000 188.0000 
  • Ahora podemos construir una tabla resumen de percentiles por departamento:
Code
df_tomate |> 
  group_by(departamento) |> 
  reframe(
    percentil5 = quantile(rendimiento_t_ha, probs = 0.05),
    percentil95 = quantile(rendimiento_t_ha, probs = 0.95),
    n_datos = n()
  ) |> 
  arrange(desc(percentil95))
  • Ahora solo filtraremos el año 2023 en el semestre 1 para el cultivo de toma en invernadero:
Code
df_tomate |> 
  filter(periodo == "2023A") |> 
  filter(desagregacion_cultivo == "Tomate invernadero") |> 
  group_by(departamento) |> 
  reframe(
    percentil5 = quantile(rendimiento_t_ha, probs = 0.05),
    percentil95 = quantile(rendimiento_t_ha, probs = 0.95),
    n_datos = n()
  ) |> 
  arrange(desc(percentil95))

Deciles

Code
deciles <- seq(from = 0, to = 1, by = 0.1)

df_tomate$rendimiento_t_ha |> 
  quantile(probs = deciles)
  0%  10%  20%  30%  40%  50%  60%  70%  80%  90% 100% 
   0    9   15   18   22   28   35   48   68   93  188 

Cuartiles

Code
cuartiles <- seq(from = 0, to = 1, by = 0.25)

df_tomate$rendimiento_t_ha |> 
  quantile(probs = cuartiles)
     0%     25%     50%     75%    100% 
  0.000  16.735  28.000  55.000 188.000 
  • Con la función “summary” podemos obtener varias métricas:
Code
summary(df_tomate$rendimiento_t_ha)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00   16.73   28.00   40.22   55.00  188.00 

Métricas de dispersión

Varianza

  • Varianza nacional:
Code
df_tomate$rendimiento_t_ha |> 
  var()
[1] 1159.83
  • Calculemos la varianza en tomate a campo abierto:
Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate") |> 
  group_by(departamento) |> 
  reframe(
    varianza_rto = var(rendimiento_t_ha),
    n_datos = n()
  ) |> 
  arrange(desc(varianza_rto))

Desviación estándar (DE)

  • Promedio nacional del rendimiento:
Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate") |> 
  pull(rendimiento_t_ha) |> 
  mean()
[1] 23.25134
  • DE nacional del rendimiento:
Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate") |> 
  pull(rendimiento_t_ha) |> 
  sd()
[1] 16.19089
  • Calculemos +1 y -1 desviación estándar desde el promedio:
Code
23.25134 - 16.19089
[1] 7.06045
Code
23.25134 + 16.19089
[1] 39.44223
  • ¿Cuál es el coeficiente de variación nacional?
Code
(16.19089 / 23.25134) * 100
[1] 69.63422
  • Calculemos la DE y coeficiente de variación por departamento:
Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate") |> 
  group_by(departamento) |> 
  reframe(
    promedio_rto = mean(rendimiento_t_ha),
    de_rto = sd(rendimiento_t_ha),
    n_datos = n()
  ) |> 
  mutate(cv_rto = (de_rto / promedio_rto) * 100) |> 
  relocate(departamento, promedio_rto, de_rto, cv_rto, n_datos) |> 
  arrange(desc(promedio_rto))

Rango

Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate") |> 
  pull(rendimiento_t_ha) |> 
  range()
[1]   0 160

Rango intercuartílico

Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate") |> 
  pull(rendimiento_t_ha) |> 
  IQR()
[1] 17.8
  • Ahora incorporamos el rango intercuartílico a nuestra tabla anterior:
Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate") |> 
  group_by(departamento) |> 
  reframe(
    promedio_rto = mean(rendimiento_t_ha),
    de_rto = sd(rendimiento_t_ha),
    RIQ = IQR(rendimiento_t_ha),
    n_datos = n()
  ) |> 
  mutate(cv_rto = (de_rto / promedio_rto) * 100) |> 
  relocate(departamento, promedio_rto, de_rto, cv_rto, RIQ, n_datos) |> 
  arrange(desc(promedio_rto))

Métricas de distribución/forma

Coeficiente de asimetría

Code
skewness(df_tomate$rendimiento_t_ha)
[1] 1.307047
  • Lo podríamos validar a través de un histograma:
Code
hist(df_tomate$rendimiento_t_ha)

  • Lo podemos incluir en una tabla resumen:
Code
df_tomate |> 
  group_by(desagregacion_cultivo) |> 
  reframe(coef_asimetria = skewness(rendimiento_t_ha))
  • Podemos hacer el histograma solo para el tomate en invernadero:
Code
df_tomate |> 
  filter(desagregacion_cultivo == "Tomate invernadero") |> 
  pull(rendimiento_t_ha) |> 
  hist()

Coeficiente de curtosis

Code
kurtosis(df_tomate$rendimiento_t_ha)
[1] 4.072745
  • Lo podemos incluir en una tabla resumen:
Code
df_tomate |> 
  group_by(desagregacion_cultivo) |> 
  reframe(coef_asimetria = skewness(rendimiento_t_ha),
          coef_curtosis = kurtosis(rendimiento_t_ha))

Tablas de frecuencia

count()

  • Esta es la tabla más simple que podemos construir: frecuencias absolutas y relativas
Code
datos |> 
  count(cultivo, sort = TRUE, name = "frec_absoluta") |> 
  mutate(frec_relativa = frec_absoluta / sum(frec_absoluta))
  • Podemos agregar dos columnas más con el cálculo de frecuencias acumuladas usando la función “cumsum”:
Code
datos |> 
  count(cultivo, sort = TRUE, name = "frec_absoluta") |> 
  mutate(frec_abs_acum = cumsum(frec_absoluta),
         frec_relativa = frec_absoluta / sum(frec_absoluta),
         frec_rel_acum = cumsum(frec_relativa))

table() + prop.table() + margin.table()

  • La función table permite calcular frecuencias absolutas:
Code
tabla_frec_absolutas <-
  table(df_tomate$departamento, df_tomate$desagregacion_cultivo, df_tomate$ano)

tabla_frec_absolutas
, ,  = 2019

                    
                     Tomate Tomate invernadero
  Amazonas                0                  0
  Antioquia              55                 67
  Arauca                  1                  0
  Atlántico               3                  0
  Bolívar                 2                  0
  Boyacá                 51                 58
  Caldas                 23                 11
  Caquetá                 3                  0
  Casanare                2                  0
  Cauca                  35                 15
  Cesar                  15                  0
  Chocó                   2                  0
  Córdoba                 1                  0
  Cundinamarca           55                 42
  Huila                  70                  0
  La Guajira             20                  0
  Magdalena              17                  0
  Meta                    4                  0
  Nariño                 27                 46
  Norte de Santander     57                  6
  Putumayo                0                  1
  Quindío                 8                 11
  Risaralda               6                 10
  Santander              72                 32
  Sucre                   0                  0
  Tolima                 23                  3
  Valle del Cauca        69                 16
  Vichada                 0                  0

, ,  = 2020

                    
                     Tomate Tomate invernadero
  Amazonas                2                  0
  Antioquia              55                 77
  Arauca                  0                  0
  Atlántico               4                  0
  Bolívar                 2                  0
  Boyacá                 49                 60
  Caldas                 24                 13
  Caquetá                 4                  2
  Casanare                2                  1
  Cauca                  33                 15
  Cesar                  15                  2
  Chocó                   2                  0
  Córdoba                 2                  0
  Cundinamarca           60                 43
  Huila                  67                  3
  La Guajira             19                  0
  Magdalena              18                  0
  Meta                    4                  2
  Nariño                 29                 46
  Norte de Santander     57                  6
  Putumayo                0                  0
  Quindío                 9                  9
  Risaralda               6                  8
  Santander              78                 37
  Sucre                   0                  0
  Tolima                 25                  3
  Valle del Cauca        70                 21
  Vichada                 0                  0

, ,  = 2021

                    
                     Tomate Tomate invernadero
  Amazonas                2                  0
  Antioquia              56                 78
  Arauca                  0                  0
  Atlántico               4                  0
  Bolívar                 2                  0
  Boyacá                 48                 57
  Caldas                 25                 13
  Caquetá                 4                  2
  Casanare                2                  1
  Cauca                  32                 16
  Cesar                  15                  2
  Chocó                   2                  0
  Córdoba                 2                  0
  Cundinamarca           57                 48
  Huila                  64                  6
  La Guajira             20                  0
  Magdalena              19                  0
  Meta                    4                  2
  Nariño                 29                 48
  Norte de Santander     58                  7
  Putumayo                0                  0
  Quindío                11                 10
  Risaralda               3                 11
  Santander              80                 37
  Sucre                   1                  0
  Tolima                 24                  7
  Valle del Cauca        72                 22
  Vichada                 0                  0

, ,  = 2022

                    
                     Tomate Tomate invernadero
  Amazonas                2                  0
  Antioquia              58                 83
  Arauca                  0                  0
  Atlántico               6                  0
  Bolívar                 3                  0
  Boyacá                 39                 73
  Caldas                 20                 16
  Caquetá                 4                  2
  Casanare                2                  0
  Cauca                  33                 17
  Cesar                  16                  2
  Chocó                   2                  0
  Córdoba                 2                  0
  Cundinamarca           62                 51
  Huila                  62                  6
  La Guajira             20                  0
  Magdalena              18                  0
  Meta                    4                  4
  Nariño                 27                 52
  Norte de Santander     57                  9
  Putumayo                1                  1
  Quindío                10                 10
  Risaralda               3                 11
  Santander              80                 40
  Sucre                   0                  0
  Tolima                 25                 10
  Valle del Cauca        71                 23
  Vichada                 1                  0

, ,  = 2023

                    
                     Tomate Tomate invernadero
  Amazonas                2                  0
  Antioquia              56                 75
  Arauca                  0                  0
  Atlántico               6                  0
  Bolívar                 3                  0
  Boyacá                 40                 73
  Caldas                 20                 17
  Caquetá                 4                  2
  Casanare                2                  0
  Cauca                  32                 17
  Cesar                  16                  2
  Chocó                   2                  0
  Córdoba                 1                  0
  Cundinamarca           57                 54
  Huila                  63                  6
  La Guajira             20                  0
  Magdalena              17                  0
  Meta                    4                  4
  Nariño                 28                 55
  Norte de Santander     58                 12
  Putumayo                1                  1
  Quindío                10                 10
  Risaralda               2                 10
  Santander              80                 44
  Sucre                   0                  0
  Tolima                 26                 13
  Valle del Cauca        70                 28
  Vichada                 0                  0
  • Ahora puedo calcular las frecuencias relativas con la función prop.table:
Code
tabla_frec_relativa <-
  prop.table(tabla_frec_absolutas)

tabla_frec_relativa
, ,  = 2019

                    
                           Tomate Tomate invernadero
  Amazonas           0.0000000000       0.0000000000
  Antioquia          0.0109846215       0.0133812662
  Arauca             0.0001997204       0.0000000000
  Atlántico          0.0005991612       0.0000000000
  Bolívar            0.0003994408       0.0000000000
  Boyacá             0.0101857400       0.0115837827
  Caldas             0.0045935690       0.0021969243
  Caquetá            0.0005991612       0.0000000000
  Casanare           0.0003994408       0.0000000000
  Cauca              0.0069902137       0.0029958059
  Cesar              0.0029958059       0.0000000000
  Chocó              0.0003994408       0.0000000000
  Córdoba            0.0001997204       0.0000000000
  Cundinamarca       0.0109846215       0.0083882564
  Huila              0.0139804274       0.0000000000
  La Guajira         0.0039944078       0.0000000000
  Magdalena          0.0033952467       0.0000000000
  Meta               0.0007988816       0.0000000000
  Nariño             0.0053924506       0.0091871380
  Norte de Santander 0.0113840623       0.0011983223
  Putumayo           0.0000000000       0.0001997204
  Quindío            0.0015977631       0.0021969243
  Risaralda          0.0011983223       0.0019972039
  Santander          0.0143798682       0.0063910525
  Sucre              0.0000000000       0.0000000000
  Tolima             0.0045935690       0.0005991612
  Valle del Cauca    0.0137807070       0.0031955263
  Vichada            0.0000000000       0.0000000000

, ,  = 2020

                    
                           Tomate Tomate invernadero
  Amazonas           0.0003994408       0.0000000000
  Antioquia          0.0109846215       0.0153784701
  Arauca             0.0000000000       0.0000000000
  Atlántico          0.0007988816       0.0000000000
  Bolívar            0.0003994408       0.0000000000
  Boyacá             0.0097862992       0.0119832235
  Caldas             0.0047932894       0.0025963651
  Caquetá            0.0007988816       0.0003994408
  Casanare           0.0003994408       0.0001997204
  Cauca              0.0065907729       0.0029958059
  Cesar              0.0029958059       0.0003994408
  Chocó              0.0003994408       0.0000000000
  Córdoba            0.0003994408       0.0000000000
  Cundinamarca       0.0119832235       0.0085879768
  Huila              0.0133812662       0.0005991612
  La Guajira         0.0037946874       0.0000000000
  Magdalena          0.0035949670       0.0000000000
  Meta               0.0007988816       0.0003994408
  Nariño             0.0057918914       0.0091871380
  Norte de Santander 0.0113840623       0.0011983223
  Putumayo           0.0000000000       0.0000000000
  Quindío            0.0017974835       0.0017974835
  Risaralda          0.0011983223       0.0015977631
  Santander          0.0155781905       0.0073896545
  Sucre              0.0000000000       0.0000000000
  Tolima             0.0049930098       0.0005991612
  Valle del Cauca    0.0139804274       0.0041941282
  Vichada            0.0000000000       0.0000000000

, ,  = 2021

                    
                           Tomate Tomate invernadero
  Amazonas           0.0003994408       0.0000000000
  Antioquia          0.0111843419       0.0155781905
  Arauca             0.0000000000       0.0000000000
  Atlántico          0.0007988816       0.0000000000
  Bolívar            0.0003994408       0.0000000000
  Boyacá             0.0095865788       0.0113840623
  Caldas             0.0049930098       0.0025963651
  Caquetá            0.0007988816       0.0003994408
  Casanare           0.0003994408       0.0001997204
  Cauca              0.0063910525       0.0031955263
  Cesar              0.0029958059       0.0003994408
  Chocó              0.0003994408       0.0000000000
  Córdoba            0.0003994408       0.0000000000
  Cundinamarca       0.0113840623       0.0095865788
  Huila              0.0127821051       0.0011983223
  La Guajira         0.0039944078       0.0000000000
  Magdalena          0.0037946874       0.0000000000
  Meta               0.0007988816       0.0003994408
  Nariño             0.0057918914       0.0095865788
  Norte de Santander 0.0115837827       0.0013980427
  Putumayo           0.0000000000       0.0000000000
  Quindío            0.0021969243       0.0019972039
  Risaralda          0.0005991612       0.0021969243
  Santander          0.0159776313       0.0073896545
  Sucre              0.0001997204       0.0000000000
  Tolima             0.0047932894       0.0013980427
  Valle del Cauca    0.0143798682       0.0043938486
  Vichada            0.0000000000       0.0000000000

, ,  = 2022

                    
                           Tomate Tomate invernadero
  Amazonas           0.0003994408       0.0000000000
  Antioquia          0.0115837827       0.0165767925
  Arauca             0.0000000000       0.0000000000
  Atlántico          0.0011983223       0.0000000000
  Bolívar            0.0005991612       0.0000000000
  Boyacá             0.0077890953       0.0145795886
  Caldas             0.0039944078       0.0031955263
  Caquetá            0.0007988816       0.0003994408
  Casanare           0.0003994408       0.0000000000
  Cauca              0.0065907729       0.0033952467
  Cesar              0.0031955263       0.0003994408
  Chocó              0.0003994408       0.0000000000
  Córdoba            0.0003994408       0.0000000000
  Cundinamarca       0.0123826643       0.0101857400
  Huila              0.0123826643       0.0011983223
  La Guajira         0.0039944078       0.0000000000
  Magdalena          0.0035949670       0.0000000000
  Meta               0.0007988816       0.0007988816
  Nariño             0.0053924506       0.0103854604
  Norte de Santander 0.0113840623       0.0017974835
  Putumayo           0.0001997204       0.0001997204
  Quindío            0.0019972039       0.0019972039
  Risaralda          0.0005991612       0.0021969243
  Santander          0.0159776313       0.0079888157
  Sucre              0.0000000000       0.0000000000
  Tolima             0.0049930098       0.0019972039
  Valle del Cauca    0.0141801478       0.0045935690
  Vichada            0.0001997204       0.0000000000

, ,  = 2023

                    
                           Tomate Tomate invernadero
  Amazonas           0.0003994408       0.0000000000
  Antioquia          0.0111843419       0.0149790294
  Arauca             0.0000000000       0.0000000000
  Atlántico          0.0011983223       0.0000000000
  Bolívar            0.0005991612       0.0000000000
  Boyacá             0.0079888157       0.0145795886
  Caldas             0.0039944078       0.0033952467
  Caquetá            0.0007988816       0.0003994408
  Casanare           0.0003994408       0.0000000000
  Cauca              0.0063910525       0.0033952467
  Cesar              0.0031955263       0.0003994408
  Chocó              0.0003994408       0.0000000000
  Córdoba            0.0001997204       0.0000000000
  Cundinamarca       0.0113840623       0.0107849011
  Huila              0.0125823847       0.0011983223
  La Guajira         0.0039944078       0.0000000000
  Magdalena          0.0033952467       0.0000000000
  Meta               0.0007988816       0.0007988816
  Nariño             0.0055921710       0.0109846215
  Norte de Santander 0.0115837827       0.0023966447
  Putumayo           0.0001997204       0.0001997204
  Quindío            0.0019972039       0.0019972039
  Risaralda          0.0003994408       0.0019972039
  Santander          0.0159776313       0.0087876972
  Sucre              0.0000000000       0.0000000000
  Tolima             0.0051927302       0.0025963651
  Valle del Cauca    0.0139804274       0.0055921710
  Vichada            0.0000000000       0.0000000000
  • Ahora puedo calcular totales por departamento (margin = 1) o por desagregación (margin = 2):
Code
margin.table(tabla_frec_relativa, margin = 1)

          Amazonas          Antioquia             Arauca          Atlántico 
      0.0015977631       0.1318154584       0.0001997204       0.0045935690 
           Bolívar             Boyacá             Caldas            Caquetá 
      0.0023966447       0.1094467745       0.0363491112       0.0053924506 
          Casanare              Cauca              Cesar              Chocó 
      0.0023966447       0.0489314959       0.0169762333       0.0019972039 
           Córdoba       Cundinamarca              Huila         La Guajira 
      0.0015977631       0.1056520871       0.0693029758       0.0197723188 
         Magdalena               Meta             Nariño Norte de Santander 
      0.0177751148       0.0063910525       0.0772917915       0.0653085680 
          Putumayo            Quindío          Risaralda          Santander 
      0.0009986020       0.0195725984       0.0139804274       0.1158378270 
             Sucre             Tolima    Valle del Cauca            Vichada 
      0.0001997204       0.0317555422       0.0922708209       0.0001997204 

ftable()

  • Esta función sirve para “aplanar” las tablas y proporcionar mayor facilidad en la lectura o visualuzación:
Code
ftable(tabla_frec_relativa)
                                               2019         2020         2021         2022         2023
                                                                                                       
Amazonas           Tomate              0.0000000000 0.0003994408 0.0003994408 0.0003994408 0.0003994408
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Antioquia          Tomate              0.0109846215 0.0109846215 0.0111843419 0.0115837827 0.0111843419
                   Tomate invernadero  0.0133812662 0.0153784701 0.0155781905 0.0165767925 0.0149790294
Arauca             Tomate              0.0001997204 0.0000000000 0.0000000000 0.0000000000 0.0000000000
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Atlántico          Tomate              0.0005991612 0.0007988816 0.0007988816 0.0011983223 0.0011983223
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Bolívar            Tomate              0.0003994408 0.0003994408 0.0003994408 0.0005991612 0.0005991612
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Boyacá             Tomate              0.0101857400 0.0097862992 0.0095865788 0.0077890953 0.0079888157
                   Tomate invernadero  0.0115837827 0.0119832235 0.0113840623 0.0145795886 0.0145795886
Caldas             Tomate              0.0045935690 0.0047932894 0.0049930098 0.0039944078 0.0039944078
                   Tomate invernadero  0.0021969243 0.0025963651 0.0025963651 0.0031955263 0.0033952467
Caquetá            Tomate              0.0005991612 0.0007988816 0.0007988816 0.0007988816 0.0007988816
                   Tomate invernadero  0.0000000000 0.0003994408 0.0003994408 0.0003994408 0.0003994408
Casanare           Tomate              0.0003994408 0.0003994408 0.0003994408 0.0003994408 0.0003994408
                   Tomate invernadero  0.0000000000 0.0001997204 0.0001997204 0.0000000000 0.0000000000
Cauca              Tomate              0.0069902137 0.0065907729 0.0063910525 0.0065907729 0.0063910525
                   Tomate invernadero  0.0029958059 0.0029958059 0.0031955263 0.0033952467 0.0033952467
Cesar              Tomate              0.0029958059 0.0029958059 0.0029958059 0.0031955263 0.0031955263
                   Tomate invernadero  0.0000000000 0.0003994408 0.0003994408 0.0003994408 0.0003994408
Chocó              Tomate              0.0003994408 0.0003994408 0.0003994408 0.0003994408 0.0003994408
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Córdoba            Tomate              0.0001997204 0.0003994408 0.0003994408 0.0003994408 0.0001997204
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Cundinamarca       Tomate              0.0109846215 0.0119832235 0.0113840623 0.0123826643 0.0113840623
                   Tomate invernadero  0.0083882564 0.0085879768 0.0095865788 0.0101857400 0.0107849011
Huila              Tomate              0.0139804274 0.0133812662 0.0127821051 0.0123826643 0.0125823847
                   Tomate invernadero  0.0000000000 0.0005991612 0.0011983223 0.0011983223 0.0011983223
La Guajira         Tomate              0.0039944078 0.0037946874 0.0039944078 0.0039944078 0.0039944078
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Magdalena          Tomate              0.0033952467 0.0035949670 0.0037946874 0.0035949670 0.0033952467
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Meta               Tomate              0.0007988816 0.0007988816 0.0007988816 0.0007988816 0.0007988816
                   Tomate invernadero  0.0000000000 0.0003994408 0.0003994408 0.0007988816 0.0007988816
Nariño             Tomate              0.0053924506 0.0057918914 0.0057918914 0.0053924506 0.0055921710
                   Tomate invernadero  0.0091871380 0.0091871380 0.0095865788 0.0103854604 0.0109846215
Norte de Santander Tomate              0.0113840623 0.0113840623 0.0115837827 0.0113840623 0.0115837827
                   Tomate invernadero  0.0011983223 0.0011983223 0.0013980427 0.0017974835 0.0023966447
Putumayo           Tomate              0.0000000000 0.0000000000 0.0000000000 0.0001997204 0.0001997204
                   Tomate invernadero  0.0001997204 0.0000000000 0.0000000000 0.0001997204 0.0001997204
Quindío            Tomate              0.0015977631 0.0017974835 0.0021969243 0.0019972039 0.0019972039
                   Tomate invernadero  0.0021969243 0.0017974835 0.0019972039 0.0019972039 0.0019972039
Risaralda          Tomate              0.0011983223 0.0011983223 0.0005991612 0.0005991612 0.0003994408
                   Tomate invernadero  0.0019972039 0.0015977631 0.0021969243 0.0021969243 0.0019972039
Santander          Tomate              0.0143798682 0.0155781905 0.0159776313 0.0159776313 0.0159776313
                   Tomate invernadero  0.0063910525 0.0073896545 0.0073896545 0.0079888157 0.0087876972
Sucre              Tomate              0.0000000000 0.0000000000 0.0001997204 0.0000000000 0.0000000000
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
Tolima             Tomate              0.0045935690 0.0049930098 0.0047932894 0.0049930098 0.0051927302
                   Tomate invernadero  0.0005991612 0.0005991612 0.0013980427 0.0019972039 0.0025963651
Valle del Cauca    Tomate              0.0137807070 0.0139804274 0.0143798682 0.0141801478 0.0139804274
                   Tomate invernadero  0.0031955263 0.0041941282 0.0043938486 0.0045935690 0.0055921710
Vichada            Tomate              0.0000000000 0.0000000000 0.0000000000 0.0001997204 0.0000000000
                   Tomate invernadero  0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000

Correlaciones

Correlación paramétrica

  • Pearson:
Code
cor(x = df_tomate$area_sembrada_ha,
    y = df_tomate$rendimiento_t_ha,
    method = "pearson")
[1] 0.1096174
  • Podemos llevarlo a una tabla:
Code
df_tomate |> 
  group_by(desagregacion_cultivo) |> 
  reframe(correlacion = cor(area_sembrada_ha, rendimiento_t_ha))

Correlación no paramétrica

  • Spearman:
Code
cor(x = df_tomate$area_sembrada_ha,
    y = df_tomate$rendimiento_t_ha,
    method = "spearman")
[1] 0.05773466
  • Tau-Kendall:
Code
cor(x = df_tomate$area_sembrada_ha,
    y = df_tomate$rendimiento_t_ha,
    method = "kendall")
[1] 0.04063416

Resúmenes rápidos

summary()

skim()

Code
library(skimr)

df_tomate |> 
  skim()
Data summary
Name df_tomate
Number of rows 5007
Number of columns 18
_______________________
Column type frequency:
character 12
numeric 6
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
codigo_dane_departamento 0 1 2 2 0 28 0
departamento 0 1 4 18 0 28 0
codigo_dane_municipio 0 1 5 5 0 518 0
municipio 0 1 3 26 0 494 0
desagregacion_cultivo 0 1 6 18 0 2 0
cultivo 0 1 6 6 0 1 0
ciclo_del_cultivo 0 1 11 11 0 1 0
grupo_cultivo 0 1 10 10 0 1 0
subgrupo 0 1 19 19 0 1 0
periodo 0 1 5 5 0 10 0
nombre_cientifico_del_cultivo 0 1 23 23 0 1 0
estado_fisico_del_cultivo 0 1 9 9 0 1 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
ano 0 1 2021.05 1.41 2019 2020.00 2021 2022.00 2023 ▇▇▇▇▇
area_sembrada_ha 0 1 18.24 36.49 0 3.00 7 18.00 750 ▇▁▁▁▁
area_cosechada_ha 0 1 17.51 35.98 0 3.00 7 17.79 750 ▇▁▁▁▁
produccion_t 0 1 847.27 2813.69 0 62.20 190 595.00 51360 ▇▁▁▁▁
rendimiento_t_ha 0 1 40.22 34.06 0 16.74 28 55.00 188 ▇▂▂▁▁
codigo_del_cultivo 0 1 1052901.37 0.48 1052901 1052901.00 1052901 1052902.00 1052902 ▇▁▁▁▅

summarytools()

Code
library(summarytools)

df_tomate |> 
  dfSummary()