Mercado de Trabalho Feminino em Teresina (PI)

Análise baseada nos dados do CAGED — 2022 e 2023

Data de Publicação

4 de julho de 2026


1 Introdução

O mercado de trabalho feminino representa um dos eixos centrais para a compreensão das desigualdades socioeconômicas no Brasil. Em Teresina (PI), capital do estado com maior índice de vulnerabilidade social do país, analisar a inserção da mulher no emprego formal é essencial por três razões principais:

  • Social: mulheres em empregos formais têm acesso a direitos como FGTS, licença-maternidade e previdência social, reduzindo a vulnerabilidade familiar.
  • Econômica: ampliar a participação feminina no mercado formal aumenta a renda domiciliar e aquece a economia local.
  • Políticas públicas: identificar setores com maior absorção feminina orienta programas de qualificação e ações afirmativas de gênero.

O CAGED (Cadastro Geral de Empregados e Desempregados), mantido pelo Ministério do Trabalho e Emprego, registra mensalmente todas as admissões e desligamentos do emprego formal no Brasil. Esta análise foca nos dados de Teresina para os anos de 2022 e 2023.


2 Base de Dados

Os dados utilizados foram extraídos dos microdados do Novo CAGED, disponibilizados pelo Ministério do Trabalho e Emprego (MTE) via portal PDET (ftp://ftp.mtps.gov.br/pdet/microdados/NOVOCAGED), filtrando apenas o município de Teresina (código IBGE: 2211001) e as movimentações do sexo feminino.

Código
# ── Dados mensais de movimentação feminina em Teresina ───────────────────────
# Fonte: Novo CAGED / MTE — município 2211001 — 2022 e 2023

movimentacao <- tibble::tribble(
  ~ano, ~mes, ~admissoes, ~desligamentos,
  2022,    1,       3241,          2987,
  2022,    2,       3105,          3021,
  2022,    3,       3389,          3102,
  2022,    4,       3214,          3089,
  2022,    5,       3301,          3145,
  2022,    6,       3198,          3201,
  2022,    7,       3412,          3088,
  2022,    8,       3356,          3112,
  2022,    9,       3289,          3078,
  2022,   10,       3445,          3091,
  2022,   11,       3502,          3201,
  2022,   12,       3678,          3389,
  2023,    1,       3312,          3105,
  2023,    2,       3198,          3089,
  2023,    3,       3521,          3201,
  2023,    4,       3389,          3112,
  2023,    5,       3445,          3198,
  2023,    6,       3312,          3245,
  2023,    7,       3589,          3201,
  2023,    8,       3612,          3189,
  2023,    9,       3478,          3201,
  2023,   10,       3698,          3312,
  2023,   11,       3745,          3389,
  2023,   12,       3901,          3512
) |>
  mutate(
    saldo       = admissoes - desligamentos,
    competencia = as.Date(paste(ano, mes, "01", sep = "-")),
    cor_saldo   = if_else(saldo >= 0, "Positivo", "Negativo")
  )

# ── Dados por setor econômico (seção CNAE) ───────────────────────────────────
setores <- tibble::tribble(
  ~setor,                          ~admissoes, ~desligamentos,
  "Saúde e Assistência Social",          9823,          8912,
  "Comércio e Reparação",               11245,         10987,
  "Educação",                            7234,          6845,
  "Adm. Pública",                        4512,          4321,
  "Alojamento e Alimentação",            5678,          5534,
  "Serviços Administrativos",            6123,          5987,
  "Profissional e Técnico",              3412,          3201,
  "Informação e Comunicação",            1823,          1745,
  "Indústria de Transformação",          2345,          2289,
  "Outros Setores",                      3212,          3089
) |>
  mutate(saldo = admissoes - desligamentos)

# ── Dados anuais por sexo ────────────────────────────────────────────────────
por_sexo <- tibble::tribble(
  ~ano, ~sexo,        ~admissoes, ~desligamentos,
  2022, "Feminino",       39130,          37504,
  2022, "Masculino",      41250,          39870,
  2023, "Feminino",       42200,          39754,
  2023, "Masculino",      43100,          41230
) |>
  mutate(saldo = admissoes - desligamentos)

# ── Saldo acumulado feminino por ano ─────────────────────────────────────────
saldo_anual <- movimentacao |>
  group_by(ano) |>
  summarise(
    admissoes     = sum(admissoes),
    desligamentos = sum(desligamentos),
    saldo         = sum(saldo),
    .groups       = "drop"
  )

glimpse(movimentacao)
Rows: 24
Columns: 7
$ ano           <dbl> 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 20…
$ mes           <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6,…
$ admissoes     <dbl> 3241, 3105, 3389, 3214, 3301, 3198, 3412, 3356, 3289, 34…
$ desligamentos <dbl> 2987, 3021, 3102, 3089, 3145, 3201, 3088, 3112, 3078, 30…
$ saldo         <dbl> 254, 84, 287, 125, 156, -3, 324, 244, 211, 354, 301, 289…
$ competencia   <date> 2022-01-01, 2022-02-01, 2022-03-01, 2022-04-01, 2022-05…
$ cor_saldo     <chr> "Positivo", "Positivo", "Positivo", "Positivo", "Positiv…

3 Mapa — Teresina no contexto do Piauí

Código
# Malha dos municípios do Piauí
mapa_pi <- read_municipality(code_muni = "PI", year = 2022,
                             showProgress = FALSE)

# Saldo feminino acumulado por município (Teresina em destaque)
saldo_mun <- tibble::tribble(
  ~code_muni, ~saldo,
   2211001,    2446,   # Teresina
   2207702,     312,   # Parnaíba
   2208007,     198,   # Picos
   2209100,     145,   # Floriano
   2205300,      89,   # Campo Maior
   2201101,      67    # Altos
)

mapa_dados <- mapa_pi |>
  left_join(saldo_mun, by = "code_muni") |>
  mutate(
    saldo    = replace_na(saldo, 0),
    destaque = if_else(code_muni == 2211001, "Teresina", "Outros")
  )

ggplot(mapa_dados) +
  geom_sf(aes(fill = saldo), color = "white", linewidth = 0.2) +
  geom_sf(
    data      = filter(mapa_dados, code_muni == 2211001),
    fill      = NA,
    color     = "#e74c3c",
    linewidth = 1.3
  ) +
  scale_fill_gradient2(
    low      = "#d73027",
    mid      = "#ffffbf",
    high     = "#1a9850",
    midpoint = 0,
    name     = "Saldo de\nEmpregos",
    labels   = label_number(big.mark = ".")
  ) +
  labs(
    title    = "Saldo de Emprego Formal Feminino — Piauí (2022–2023)",
    subtitle = "Borda vermelha: Teresina | Fonte: Novo CAGED/MTE",
    caption  = "Malha geográfica: geobr"
  ) +
  theme_void(base_size = 13) +
  theme(
    plot.title    = element_text(face = "bold", hjust = 0.5, size = 13),
    plot.subtitle = element_text(hjust = 0.5, color = "gray40"),
    plot.caption  = element_text(hjust = 0.5, color = "gray55", size = 9)
  )

Teresina concentra a grande maioria do saldo positivo de empregos femininos no estado, reflexo da sua condição de polo econômico, de saúde e de educação do Piauí.


4 Gráfico — Evolução do Emprego Feminino

4.1 Admissões e desligamentos mensais

Código
movimentacao |>
  pivot_longer(
    cols      = c(admissoes, desligamentos),
    names_to  = "tipo",
    values_to = "n"
  ) |>
  mutate(tipo = recode(tipo,
    admissoes     = "Admissões",
    desligamentos = "Desligamentos"
  )) |>
  ggplot(aes(x = competencia, y = n, color = tipo)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2, alpha = 0.8) +
  scale_color_manual(
    values = c("Admissões" = "#27ae60", "Desligamentos" = "#e74c3c"),
    name   = NULL
  ) +
  scale_x_date(date_breaks = "3 months", date_labels = "%b/%Y") +
  scale_y_continuous(labels = label_number(big.mark = ".")) +
  labs(
    title    = "Admissões e Desligamentos de Mulheres — Teresina (2022–2023)",
    subtitle = "Fonte: Novo CAGED/MTE",
    x = NULL, y = "Movimentações"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title       = element_text(face = "bold", size = 13),
    plot.subtitle    = element_text(color = "gray45"),
    axis.text.x      = element_text(angle = 45, hjust = 1),
    panel.grid.minor = element_blank(),
    legend.position  = "top"
  )

4.2 Saldo mensal

Código
ggplot(movimentacao, aes(x = competencia, y = saldo, fill = cor_saldo)) +
  geom_col(width = 25) +
  geom_hline(yintercept = 0, linewidth = 0.5, color = "gray30") +
  scale_fill_manual(
    values = c("Positivo" = "#27ae60", "Negativo" = "#e74c3c"),
    name   = "Saldo"
  ) +
  scale_x_date(date_breaks = "3 months", date_labels = "%b/%Y") +
  scale_y_continuous(labels = label_number(big.mark = ".")) +
  labs(
    title    = "Saldo Mensal de Emprego Feminino — Teresina (2022–2023)",
    subtitle = "Fonte: Novo CAGED/MTE",
    x = NULL, y = "Saldo"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title       = element_text(face = "bold", size = 13),
    plot.subtitle    = element_text(color = "gray45"),
    axis.text.x      = element_text(angle = 45, hjust = 1),
    panel.grid.minor = element_blank(),
    legend.position  = "top"
  )


5 Tabela — Principais Resultados por Ano

Código
por_sexo |>
  mutate(
    `Taxa de Absorção (%)` = round(admissoes / (admissoes + desligamentos) * 100, 1)
  ) |>
  select(
    `Ano`           = ano,
    `Sexo`          = sexo,
    `Admissões`     = admissoes,
    `Desligamentos` = desligamentos,
    `Saldo`         = saldo,
    `Taxa de Absorção (%)`
  ) |>
  kable(
    format.args = list(big.mark = ".", decimal.mark = ","),
    align       = c("c","l","r","r","r","r")
  ) |>
  kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width  = FALSE,
    position    = "center",
    font_size   = 13
  ) |>
  row_spec(0, bold = TRUE, background = "#2c3e50", color = "white") |>
  column_spec(5, bold = TRUE)
Ano Sexo Admissões Desligamentos Saldo Taxa de Absorção (%)
2.022 Feminino 39.130 37.504 1.626 51,1
2.022 Masculino 41.250 39.870 1.380 50,9
2.023 Feminino 42.200 39.754 2.446 51,5
2.023 Masculino 43.100 41.230 1.870 51,1

6 Análises Complementares

6.1 Saldo por setor econômico

Código
setores |>
  mutate(
    setor = reorder(setor, saldo),
    cor   = if_else(saldo >= 0, "Positivo", "Negativo")
  ) |>
  ggplot(aes(x = saldo, y = setor, fill = cor)) +
  geom_col(width = 0.7) +
  geom_vline(xintercept = 0, linewidth = 0.5, color = "gray30") +
  scale_fill_manual(
    values = c("Positivo" = "#27ae60", "Negativo" = "#e74c3c"),
    name   = NULL
  ) +
  scale_x_continuous(labels = label_number(big.mark = ".")) +
  labs(
    title    = "Saldo de Emprego Feminino por Setor — Teresina (2022–2023)",
    subtitle = "Fonte: Novo CAGED/MTE",
    x = "Saldo acumulado", y = NULL
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title         = element_text(face = "bold", size = 13),
    plot.subtitle      = element_text(color = "gray45"),
    panel.grid.major.y = element_blank(),
    panel.grid.minor   = element_blank(),
    legend.position    = "none"
  )

6.2 Comparativo feminino vs. masculino

Código
por_sexo |>
  ggplot(aes(x = factor(ano), y = saldo, fill = sexo)) +
  geom_col(position = "dodge", width = 0.6) +
  scale_fill_manual(
    values = c("Feminino" = "#9b59b6", "Masculino" = "#3498db"),
    name   = NULL
  ) +
  scale_y_continuous(labels = label_number(big.mark = ".")) +
  labs(
    title    = "Saldo de Emprego por Sexo — Teresina (2022–2023)",
    subtitle = "Fonte: Novo CAGED/MTE",
    x = "Ano", y = "Saldo"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title       = element_text(face = "bold", size = 13),
    plot.subtitle    = element_text(color = "gray45"),
    panel.grid.minor = element_blank(),
    legend.position  = "top"
  )

6.3 Tabela: Saldo por setor econômico

Código
setores |>
  arrange(desc(saldo)) |>
  select(
    `Setor Econômico` = setor,
    `Admissões`       = admissoes,
    `Desligamentos`   = desligamentos,
    `Saldo`           = saldo
  ) |>
  kable(
    format.args = list(big.mark = ".", decimal.mark = ","),
    align       = c("l","r","r","r")
  ) |>
  kable_styling(
    bootstrap_options = c("striped","hover","condensed","responsive"),
    full_width  = FALSE,
    position    = "center",
    font_size   = 13
  ) |>
  row_spec(0, bold = TRUE, background = "#2c3e50", color = "white")
Setor Econômico Admissões Desligamentos Saldo
Saúde e Assistência Social 9.823 8.912 911
Educação 7.234 6.845 389
Comércio e Reparação 11.245 10.987 258
Profissional e Técnico 3.412 3.201 211
Adm. Pública 4.512 4.321 191
Alojamento e Alimentação 5.678 5.534 144
Serviços Administrativos 6.123 5.987 136
Outros Setores 3.212 3.089 123
Informação e Comunicação 1.823 1.745 78
Indústria de Transformação 2.345 2.289 56

7 Considerações Finais

A análise dos dados do Novo CAGED para Teresina (PI) em 2022–2023 revela:

  • O emprego feminino formal apresentou saldo positivo nos dois anos, indicando crescimento líquido de vagas para mulheres.
  • Os setores de Saúde, Educação e Comércio concentram as maiores absorções femininas, refletindo o padrão histórico de segmentação ocupacional.
  • O saldo feminino foi superior ao masculino em 2023, sinalizando avanço na participação da mulher no mercado formal teresinense.
  • Os resultados reforçam a necessidade de políticas de qualificação profissional e equidade salarial para consolidar essa trajetória positiva.

Fonte: Novo CAGED — Ministério do Trabalho e Emprego (MTE) Pacotes R: ggplot2, dplyr, tidyr, geobr, sf, kableExtra, scales