# Cálculos (Computation)

    library(opinAr)

El Índice de Confianza en el Gobierno (ICG) se calcula a partir de 5 dimensiones, cada una de las cuales intenta captar lo que los ciudadanos piensan respecto a aspectos esenciales del gobierno nacional. El índice tiene un valor comprendido entre un mínimo de 0 y un máximo de 5. Para obtener el ICG con la base cruda, hay que calcular el promedio de la columna `icg` ponderada por `ponderacion_utdt`.

(The ICG has 5 dimensions and each one tries to reflect what is thought about main aspects of the national government. The Index is a value between 0 and 5. The ICG is obtained calculating the mean of the `icg` column weighted with using the `ponderacion_utdt` variable:).

\[ \frac{\sum icg*ponderacion\_utdt} { \sum ponderacion\_utdt } \]

El mismo cálculo aplica para cada una de las dimensiones del ICG, considerando la variable recodificada de la dimensión correspondiente (tiene valor 0 o 5). Por ejemplo, para computar el resultado de la dimensión ‘evaluación general del gobierno’, se debe usar ‘eval_gob_rec’.

(For computing the result for each dimension of the ICG, it must be applied the same calculation as before but with the recoded variable (value 0 or 5). For example, to compute the result of ‘evaluación general del gobierno (eval_gob)’, it must be used ‘eval_gob_rec’).

\[ \frac{\sum eval\_gob\_rec*ponderacion\_utdt} { \sum ponderacion\_utdt } \]

### compute_icg()

Calcula el ICG de cada ola (una por cada mes desde noviembre del 2001
(Computes the ICG for each wave one per month since november 2001).

- El parámetro `wave` permite calcularlo para las distintas olas de la `data`
  ( wave parameter allos wto compute icg for different waves along the period).

- el parámetro `segment_by` calcularlo según distintas segmentaciones de la `data` tales como el sexo, edad, situación económica o nivel educativo
  (parameter `segment_by` allows computations for different segments in `data` such as sex, age, education level or economic condition)

### Ejemplo (Example)

El cálculo se realizará con los datos previamente descargados con `get_icg_raw()`.

La función `compute_icg()` tiene:

- un parámetro `wave` para elegir el número de ola;

- un parámetro `segment_by` para elegir la variable de segmentación

(The calculation will be done based on the downloaded data with `get_icg_raw()`. The `compute_icg()` function has a parameter to choose the wave and other to choose the segmentation variable)

Cálculo simple: `icg` para toda la base de datos

      # donwnload data

    (opinAr::get_icg_raw() -> icg_data)
    #> # A tibble: 281,786 × 33
    #>      ola  caso  anio   mes   dia ciudad  zona    region sexo    edad    edu     educacion
    #>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl+l> <dbl+l>  <dbl> <dbl+l> <dbl+l> <dbl+l> <dbl+lbl>
    #>  1   507     1  2002     4    NA 0 [GBA] 2 [BsA…     NA 0 [Muj… 3 [más… 1 [Pri… 3 [PrimC…
    #>  2   507     2  2002     4    NA 0 [GBA] 2 [BsA…     NA 0 [Muj… 3 [más… 3 [Ter… 7 [TercC…
    #>  3   507     3  2002     4    NA 0 [GBA] 2 [BsA…     NA 0 [Muj… 2 [30a… 2 [Sec… 5 [Secun…
    #>  4   507     4  2002     4    NA 0 [GBA] 2 [BsA…     NA 0 [Muj… 3 [más… 1 [Pri… 3 [PrimC…
    #>  5   507     5  2002     4    NA 0 [GBA] 2 [BsA…     NA 0 [Muj… 2 [30a… 3 [Ter… 9 [UnivC…
    #>  6   507     6  2002     4    NA 0 [GBA] 2 [BsA…     NA 0 [Muj… 2 [30a… 3 [Ter… 7 [TercC…
    #>  7   507     7  2002     4    NA 0 [GBA] 2 [BsA…     NA 1 [Hom… 1 [18a… 3 [Ter… 8 [UnivI…
    #>  8   507     8  2002     4    NA 0 [GBA] 2 [BsA…     NA 1 [Hom… 3 [más… 1 [Pri… 3 [PrimC…
    #>  9   507     9  2002     4    NA 0 [GBA] 2 [BsA…     NA 1 [Hom… 1 [18a… 2 [Sec… 4 [Secun…
    #> 10   507    10  2002     4    NA 0 [GBA] 2 [BsA…     NA 0 [Muj… 2 [30a… 3 [Ter… 7 [TercC…
    #> # ℹ 281,776 more rows
    #> # ℹ 21 more variables: sit_ec <dbl+lbl>, sit_fu <dbl+lbl>, sitec <dbl+lbl>,
    #> #   mejora <dbl+lbl>, eval_gob <dbl+lbl>, eval_gob_rec <dbl>, benef_gob <dbl+lbl>,
    #> #   benef_gob_rec <dbl>, adm_gp <dbl+lbl>, adm_gp_rec <dbl>, cor_gob <dbl+lbl>,
    #> #   cor_gob_rec <dbl>, resol_prob <dbl+lbl>, resol_prob_rec <dbl>, icg <dbl>,
    #> #   edad2 <dbl>, tipo_telef <dbl+lbl>, habitat <dbl+lbl>, region_2 <dbl+lbl>,
    #> #   zonacaba <dbl>, ponderacion_utdt <dbl>

     # compute ICG

    opinAr::compute_icg(data = icg_data)
    #> # A tibble: 266 × 7
    #>      ola   icg eval_gob_rec benef_gob_rec adm_gp_rec cor_gob_rec resol_prob_rec
    #>    <dbl> <dbl>        <dbl>         <dbl>      <dbl>       <dbl>          <dbl>
    #>  1   502  1.04         0.4           0.82       0.5         1.99           1.47
    #>  2   503  0.76         0.19          0.66       0.36        1.46           1.12
    #>  3   504  1.36         0.91          1.37       0.44        1.13           2.94
    #>  4   505  0.98         0.52          0.94       0.31        1.11           2.03
    #>  5   506  0.86         0.42          0.59       0.47        1.07           1.76
    #>  6   507  0.78         0.23          0.58       0.33        1.09           1.7
    #>  7   508  0.47         0.16          0.39       0.07        0.77           0.93
    #>  8   509  0.48         0.19          0.38       0.21        0.82           0.81
    #>  9   510  0.4          0.09          0.39       0.21        0.73           0.59
    #> 10   511  0.43         0.09          0.37       0.24        0.69           0.74
    #> # ℹ 256 more rows

Cálculo segmentado: `icg` con apertura por género

     ###  ICG by gender

       opinAr::compute_icg(data = icg_data , segment_by = sexo)
    #> # A tibble: 532 × 8
    #> # Groups:   ola [266]
    #>      ola sexo        icg eval_gob_rec benef_gob_rec adm_gp_rec cor_gob_rec resol_prob_rec
    #>    <dbl> <dbl+lbl> <dbl>        <dbl>         <dbl>      <dbl>       <dbl>          <dbl>
    #>  1   502 0 [Mujer]  0.98         0.44          0.86       0.41        1.78           1.41
    #>  2   502 1 [Hombr…  1.1          0.35          0.78       0.61        2.22           1.53
    #>  3   503 0 [Mujer]  0.68         0.25          0.6        0.29        1.2            1.04
    #>  4   503 1 [Hombr…  0.86         0.13          0.72       0.45        1.78           1.21
    #>  5   504 0 [Mujer]  1.32         0.89          1.18       0.5         1.11           2.9
    #>  6   504 1 [Hombr…  1.41         0.93          1.65       0.35        1.15           2.99
    #>  7   505 0 [Mujer]  1            0.51          0.98       0.32        1.13           2.06
    #>  8   505 1 [Hombr…  0.96         0.53          0.89       0.31        1.07           2
    #>  9   506 0 [Mujer]  0.72         0.38          0.61       0.39        0.78           1.46
    #> 10   506 1 [Hombr…  1.03         0.46          0.58       0.56        1.41           2.13
    #> # ℹ 522 more rows

Cálculo segmentado II: `icg` por calendario

    # Consultamos ID de olas de interés. Por ejemplo de los meses de diciembre durante la presidencia de Mauricio Macri

     opinAr::show_waves(data = icg_data) %>%
      dplyr::filter(mes == 12 & (anio >= 2015 & anio < 2019)) # filtramos para obtener número de ola de interes
    #> # A tibble: 4 × 3
    #>     ola   mes  anio
    #>   <dbl> <dbl> <dbl>
    #> 1   671    12  2015
    #> 2   683    12  2016
    #> 3   695    12  2017
    #> 4   707    12  2018

     opinAr::compute_icg(data = icg_data,
                          wave = c(671, 683, 695, 707))
    #> # A tibble: 4 × 7
    #>     ola   icg eval_gob_rec benef_gob_rec adm_gp_rec cor_gob_rec resol_prob_rec
    #>   <dbl> <dbl>        <dbl>         <dbl>      <dbl>       <dbl>          <dbl>
    #> 1   671  1.8          1.82          1.77       1.44        2.03           1.93
    #> 2   683  2.49         2.02          2.08       2.1         3.23           3.03
    #> 3   695  2.36         2.11          1.84       1.93        3.18           2.75
    #> 4   707  1.92         1.43          1.58       1.53        2.89           2.2