Este documento acompaña la presentación Cómo tratar los ‘No sé’ y los ‘Sin respuesta’, basada en material clásico de metodología de encuestas. Se abordan los tipos de respuestas faltantes, sus implicancias analíticas y estrategias de reducción.
Tipo de respuesta | Definición | Tratamiento sugerido |
---|---|---|
‘No sé’ legítimo | Respuesta válida: el entrevistado no posee información o certeza. | Se comunica junto a las respuestas válidas; nunca se elimina. |
‘Sin respuesta’ o faltante | No se logró registrar respuesta (error de campo o rechazo). | Evaluar si es aleatorio; excluir o ponderar. |
Respuesta | Porcentaje |
---|---|
Identificada correctamente | 25 |
Identificada incorrectamente con la compañía X | 21 |
Con otras compañías | 3 |
No supo de qué compañía era | 51 |
Total | 100 |
Interpretación: Más de la mitad de los entrevistados respondió No sé, lo que no implica error sino falta de conocimiento; debe analizarse como dato legítimo.
Sexo | Porcentaje |
---|---|
Conocido | 82 |
Hombres | 54 |
Mujeres | 28 |
Desconocido | 18 |
Total | 100 |
Interpretación: El 18% con sexo desconocido indica un problema de categorización: las categorías deben ser excluyentes para evitar superposición.
Estrato | Hombres | Mujeres | Sexo desconocido | Total |
---|---|---|---|---|
Superiores | 57 | 29 | 14 | 100 |
Inferiores | 52 | 28 | 20 | 100 |
Nota: Las diferencias entre estratos pueden ser artefactos de la falta de información. No se deben conservar los No sé en el cuerpo del cuadro si su proporción es alta.
# Paquetes
library(tidyverse)
library(janitor)
## Warning: package 'janitor' was built under R version 4.3.3
library(survey)
## Warning: package 'Matrix' was built under R version 4.3.3
# Datos de ejemplo:
# Si ya tenés 'encuesta_no_se' en tu ambiente, se usará.
# Si no, generamos un ejemplo reproducible.
if (!exists("encuesta_no_se")) {
set.seed(123)
n <- 500
encuesta_no_se <- tibble(
sexo = sample(c("Hombre","Mujer","Desconocido"), n, replace = TRUE, prob = c(0.46, 0.46, 0.08)),
uso_auto = sample(c("Diario","Semanal","Ocasional","No usa","No sé"), n, replace = TRUE, prob = c(0.3,0.25,0.2,0.15,0.1)),
pref_caja = sample(c("Banco A","Banco B","Banco C", NA), n, replace = TRUE, prob = c(0.4,0.35,0.2,0.05))
) |> clean_names()
}
enc <- encuesta_no_se
enc |>
summarize(
n = n(),
tasa_sexo_desconocido = mean(sexo == "Desconocido"),
tasa_pref_na = mean(is.na(pref_caja)),
tasa_no_se_auto = mean(uso_auto == "No sé")
)
## # A tibble: 1 × 4
## n tasa_sexo_desconocido tasa_pref_na tasa_no_se_auto
## <int> <dbl> <dbl> <dbl>
## 1 500 0.078 0.044 0.088
enc |>
count(sexo, uso_auto) |>
group_by(sexo) |>
mutate(pct = round(100 * n / sum(n), 1)) |>
arrange(sexo, desc(pct))
## # A tibble: 15 × 4
## # Groups: sexo [3]
## sexo uso_auto n pct
## <chr> <chr> <int> <dbl>
## 1 Desconocido Semanal 11 28.2
## 2 Desconocido Ocasional 9 23.1
## 3 Desconocido Diario 8 20.5
## 4 Desconocido No usa 7 17.9
## 5 Desconocido No sé 4 10.3
## 6 Hombre Diario 65 29.7
## 7 Hombre Ocasional 50 22.8
## 8 Hombre Semanal 48 21.9
## 9 Hombre No usa 29 13.2
## 10 Hombre No sé 27 12.3
## 11 Mujer Diario 71 29.3
## 12 Mujer Semanal 69 28.5
## 13 Mujer No usa 49 20.2
## 14 Mujer Ocasional 40 16.5
## 15 Mujer No sé 13 5.4
enc |>
filter(uso_auto != "No sé") |>
count(sexo, uso_auto) |>
group_by(sexo) |>
mutate(pct = round(100 * n / sum(n), 1))
## # A tibble: 12 × 4
## # Groups: sexo [3]
## sexo uso_auto n pct
## <chr> <chr> <int> <dbl>
## 1 Desconocido Diario 8 22.9
## 2 Desconocido No usa 7 20
## 3 Desconocido Ocasional 9 25.7
## 4 Desconocido Semanal 11 31.4
## 5 Hombre Diario 65 33.9
## 6 Hombre No usa 29 15.1
## 7 Hombre Ocasional 50 26
## 8 Hombre Semanal 48 25
## 9 Mujer Diario 71 31
## 10 Mujer No usa 49 21.4
## 11 Mujer Ocasional 40 17.5
## 12 Mujer Semanal 69 30.1
enc_conocido <- enc |> filter(sexo %in% c("Hombre","Mujer"))
design <- svydesign(ids = ~1, data = enc_conocido, weights = ~1)
# Objetivo poblacional 50/50 (modificá aquí a 52/48 para el ejercicio)
post <- data.frame(sexo = c("Hombre","Mujer"), Freq = c(0.5, 0.5))
design_ps <- postStratify(design, strata = ~sexo, population = post)
# Estimar proporciones de preferencia de caja por sexo (ignora NAs)
svyby(~factor(pref_caja), ~sexo, design_ps, svymean, na.rm = TRUE)
## sexo factor(pref_caja)Banco A factor(pref_caja)Banco B
## Hombre Hombre 0.4037559 0.3802817
## Mujer Mujer 0.4148472 0.4061135
## factor(pref_caja)Banco C se.factor(pref_caja)Banco A
## Hombre 0.2159624 0.03365528
## Mujer 0.1790393 0.03259361
## se.factor(pref_caja)Banco B se.factor(pref_caja)Banco C
## Hombre 0.03329903 0.02822535
## Mujer 0.03248847 0.02536233
uso_auto
como
NA.Fin del taller