Skip to contents

Esta encuesta es utilizada para obtener información sobre las actividades de innovación e investigación y desarrollo en las empresas, instituciones y organismos del país, es realizada por la Agencia Nacional de Innovación e Investigación (ANII) en conjunto con el Instituto Nacional de Estadística (INE). Los microdatos oficiales se encuentran diposibles en PRISMA junto con la documentación de la encuesta. En el paquete se encuentra el mismo archivo de microdatos en formato CSV unicamente con fines de ejemplo.

Configuración del motor

El paquete tiene diferentes motores para trabajar con datos, en este caso se usará el motor data.table. Para cambiar el motor se puede usar la función set_engine y para ver los motores disponibles se puede usar la función show_engines, en este ejemplo se usará el motor data.table.

library(metasurvey)
#> Welcome to: metasurvey version 0.0.1.9001
#> use_copy: TRUE
#> metasurvey.engine: data.table
#> metasurvey.api.key: ********
#> metasurvey.user: public
#> metasurvey.lazy_processing: TRUE

Carga de datos

Al cargar la encuesta se utiliza la función load_survey, actualmente se pueden cargar encuestas en los siguientes formatos:

  • CSV (con el motor data.table)
  • XLSX (con el motor tidyverse)
  • SPSS (con el motor data.table o tidyverse)

Además de los microdatos, es necesario cargar algunos metadatos para poder trabajar con la encuesta, actualmente es requerida la siguiente información:

  • Tipo de encuesta, por ejemplo: EPH, ECH, EAII, etc.
  • Edición de la encuesta, es necesario para poder buscar recetas predefinidas y compartir recetas entre diferentes usuarios.
  • Variable de ponderación, es necesario para poder realizar estimaciones y definir el diseño muestral de la encuesta.

Una vez cargada la encuesta obtendremos un objeto de la clase Survey que contiene los microdatos y los metadatos de la encuesta.

# Tipo de encuesta: ECH
# Edición de la encuesta: 2018
# Variable de ponderación: pesoano

svy_example <- metasurvey::load_survey(
  path = "https://raw.githubusercontent.com/metasurveyr/metasurvey_data/main/eaii/2019-2021.csv",
  svy_type = "eaii",
  svy_edition = "2019-2021",
  svy_weight = "w_trans",
  dec = ","
)
#> Loading required package: data.table

class(svy_example)
#> [1] "Survey" "R6"

De esta forma se carga la encuesta en memoria al ser un objeto de la clase Survey se pueden realizar diferentes operaciones con ella, como recodificar variables, crear nuevas variables, aunque siempre se pueden obtener los datos en formato data.table o tibble para trabajar con ellos de forma más directa.

survey_to_data_frame(svy_example)[1:5, 1:3]
#>   ID_Estadistico Division IG_3_6
#> 1              2       55      2
#> 2              4       52      2
#> 3              7       21      2
#> 4              9       11      2
#> 5             10       10      2
survey_to_tibble(svy_example)[1:5, 1:3]
#> # A tibble: 5 × 3
#>   ID_Estadistico Division IG_3_6
#>            <int>    <int>  <int>
#> 1              2       55      2
#> 2              4       52      2
#> 3              7       21      2
#> 4              9       11      2
#> 5             10       10      2
get_data(svy_example)[1:5, 1:3]
#>    ID_Estadistico Division IG_3_6
#>             <int>    <int>  <int>
#> 1:              2       55      2
#> 2:              4       52      2
#> 3:              7       21      2
#> 4:              9       11      2
#> 5:             10       10      2

Uso de recipes y workflows

eaii_2019 <- metasurvey::load_survey(
  svy_type = "eaii",
  svy_edition = "2019-2021",
  svy_weight = "w_trans",
  input = "https://raw.githubusercontent.com/metasurveyr/metasurvey_data/main/eaii/2019-2021.csv",
  dec = ","
)

Recodificación de variables con steps y recipes

En este ejemplo se mostrará como crear variables relacionadas al sector, edad de la empresa, tamaño de la empresa y si la empresa es innovadora o no además del tipo de actividad de innovación que realiza de forma tal de poder recrear este gráfico de la sección de Innovación de PRISMA.

En este portal se pueden obtener datos a nivel de todas las empresas aunque también se pueden obtener estimaciones en diferentes dominios de interés, como el tamaño de la empresa, sector, edad de la empresa, dichos dominios no se encuentran disponibles de forma directa en los microdatos oficiales, por lo que es necesario realizar una recodificación de las variables para poder obtener las estimaciones deseadas.

Tamaño de la empresa

En base al decreto Nº 504/007 se clasifican las empresas en tres categorías según la cantidad de trabajadores y el monto de las ventas, en este caso se recodificará la variable IG_4_1_3 que representa la cantidad de trabajadores y la variable IG_5_1_1_3 que representa el monto de las ventas. El decreto Nº 504/007 establece las siguientes categorías:

  • Pequeñas empresas: Son las que ocupan no más de diecinueve (19) personas y cuyas ventas anuales excluído el IVA, no superan el equivalente a diez millones (10.000.000) de unidades indexadas (U.I.).

  • Medianas empresas: Son las que ocupan no más de noventa y nueve (99) personas y cuyas ventas anuales excluído el IVA, no superan el equivalente a setenta y cinco millones (75.000.000) de unidades indexadas (U.I.).

  • Grandes empresas: Son las que ocupan más de noventa y nueve (99) personas y cuyas ventas anuales excluído el IVA, superan el equivalente a setenta y cinco millones (75.000.000) de unidades indexadas (U.I.).

eaii_2019 <- eaii_2019 |>
  metasurvey::step_recode( # Clasificación tamaño de la empresa decreto Nº 504/007
    new_var = cant_traba_tramo,
    data.table::between(IG_4_1_3, 0, 4) ~ "1",
    data.table::between(IG_4_1_3, 5, 19) ~ "2",
    data.table::between(IG_4_1_3, 20, 99) ~ "3",
    IG_4_1_3 > 99 ~ "4"
  ) |>
  metasurvey::step_recode( # Clasificación tamaño de la empresa decreto Nº 504/007
    new_var = ingreso_vta_pesos,
    data.table::between(IG_5_1_1_3, 0, 9942787) ~ "1",
    data.table::between(IG_5_1_1_3, 9942788, 49713934) ~ "2", # nolint
    data.table::between(IG_5_1_1_3, 49713935, 372854507) ~ "3", # nolint
    IG_5_1_1_3 > 372854507 ~ "4"
  ) |>
  metasurvey::step_recode( # Clasificación tamaño de la empresa decreto Nº 504/007
    new_var = tamanio,
    cant_traba_tramo == "1" & ingreso_vta_pesos == "1" ~ "Pequenias",
    cant_traba_tramo == "2" & ingreso_vta_pesos == "2" ~ "Pequenias",
    cant_traba_tramo == "2" & ingreso_vta_pesos == "1" ~ "Pequenias",
    cant_traba_tramo == "1" & ingreso_vta_pesos == "2" ~ "Pequenias",
    cant_traba_tramo == "3" & ingreso_vta_pesos == "3" ~ "Medianas",
    cant_traba_tramo == "3" & ingreso_vta_pesos == "2" ~ "Medianas",
    cant_traba_tramo == "3" & ingreso_vta_pesos == "1" ~ "Medianas",
    cant_traba_tramo == "1" & ingreso_vta_pesos == "3" ~ "Medianas",
    cant_traba_tramo == "2" & ingreso_vta_pesos == "3" ~ "Medianas",
    cant_traba_tramo == "4" & ingreso_vta_pesos == "4" ~ "Grandes",
    cant_traba_tramo == "4" & ingreso_vta_pesos == "3" ~ "Grandes",
    cant_traba_tramo == "4" & ingreso_vta_pesos == "2" ~ "Grandes",
    cant_traba_tramo == "4" & ingreso_vta_pesos == "1" ~ "Grandes",
    cant_traba_tramo == "1" & ingreso_vta_pesos == "4" ~ "Grandes",
    cant_traba_tramo == "2" & ingreso_vta_pesos == "4" ~ "Grandes",
    cant_traba_tramo == "3" & ingreso_vta_pesos == "4" ~ "Grandes"
  )

Edad de la empresa

Las empresas se clasifican en tres categorías según su edad, para ello se recodificará la variable IG_3_5_1 que representa la fecha de fundación de la empresa.

  • Jovenes: Empresas con menos de 10 años de antigüedad.
  • Medianas: Empresas con entre 11 y 20 años de antigüedad.
  • Maduras: Empresas con más de 20 años de antigüedad.
eaii_2019 <- eaii_2019 |>
  metasurvey::step_compute(
    edad = difftime(
      "2019-01-01",
      as.Date(paste(IG_3_5_1, "01", "01", sep = "-")),
      units = "weeks"
    ) / 52
  ) |>
  metasurvey::step_recode(
    edad_tramos,
    data.table::between(edad, 0, 10) ~ "Jovenes",
    data.table::between(edad, 11, 20) ~ "Medianas",
    edad > 20 ~ "Maduras"
  )

Tipo de empresa

Las empresas se clasifican en tres categorías según su tipo, para ello se recodificará la variable IG_3_6 que representa en el cuestionario a la siguiente pregunta “Indique si la empresa era pública, privada o mixta en el año 2021”.

eaii_2019 <- eaii_2019 |>
  metasurvey::step_recode(
    tipo_empresa,
    IG_3_6 == 1 ~ "Publica",
    IG_3_6 == 2 ~ "Privada",
    IG_3_6 == 3 ~ "Mixta"
  )

Sector CIUU

Cada empresa se clasifica en un sector según la Clasificación Industrial Internacional Uniforme de todas las actividades económicas (CIUU), en este caso se recodificará la variable Division que representa el sector de la empresa.

eaii_2019 <- eaii_2019 |>
  metasurvey::step_recode(
    sector,
    data.table::between(Division, 10, 33) ~ "Industria",
    data.table::between(Division, 34, 99) ~ "Servicios",
    Division == "E1" ~ "Servicios",
    Division == "C1" ~ "Industria",
    Division == "C2" ~ "Industria"
  ) |>
  metasurvey::step_compute(
    subsector = Division
  )

Realiza actividades de innovación

En base a la pregunta “¿La empresa realizó actividades de innovación en el período 2019-2021?” se recodificará la variable IG_6_1 que representa si la empresa realizó actividades de innovación en el período 2019-2021.

eaii_2019 <- eaii_2019 |>
  metasurvey::step_recode(
    new_var = realiza_innovacion,
    B1_1_1 == 1 ~ 1,
    B1_2_1 == 1 ~ 1,
    B1_3_1 == 1 ~ 1,
    B1_4_1 == 1 ~ 1,
    B1_5_1 == 1 ~ 1,
    B1_6_1 == 1 ~ 1,
    B1_7_1 == 1 ~ 1,
    B1_8_1 == 1 ~ 1,
    B1_9_1 == 1 ~ 1,
    .default = 0
  )

De esta forma si se realiza una estimación de la cantidad de empresas que realizan actividades de innovación en el período 2019-2021 se puede obtener la siguiente tabla:

# TODO Poner ejemplo de estimar una proporción

Tipo de actividad de innovación

eaii_2019 <- eaii_2019 |>
  step_compute(
    software = ifelse(
      B1_4_1 == 1,
      1,
      0
    ),
    id_interna = ifelse(
      B1_1_1 == 1,
      1,
      0
    ),
    id_externa = ifelse(
      B1_2_1 == 1,
      1,
      0
    ),
    bienes_capital = ifelse(
      B1_3_1 == 1,
      1,
      0
    ),
    propiedad_intelectual = ifelse(
      B1_5_1 == 1,
      1,
      0
    ),
    ingenieria = ifelse(
      B1_6_1 == 1,
      1,
      0
    ),
    capacitacion = ifelse(
      B1_7_1 == 1,
      1,
      0
    ),
    marketing = ifelse(
      B1_8_1 == 1,
      1,
      0
    ),
    gestion = ifelse(
      B1_9_1 == 1,
      1,
      0
    )
  )

Workflow

Una vez realizada la recodificación de variables se puede obtener cada paso realizado con la función get_steps o visualizarlo en forma de DAG con la función

metasurvey::view_graph(eaii_2019)