Insegurança Alimentar no Brasil: Uma análise de sua evolução de 2013 a 2024 e uma comparação dos diferentes cenários regionais

Author

André Gustavo, Eva Vilma, Victória Gabriela

Introdução

A segurança alimentar é um tema que afeta diretamente a qualidade de vida da população. Ela está relacionada à capacidade das pessoas de terem acesso regular a alimentos suficientes e de qualidade para atender às suas necessidades básicas. Apesar dos avanços observados em diversas áreas, muitas famílias ainda enfrentam dificuldades cada vez mais relevantes para pesquisadores e gestores públicos.

A análise dos níveis de segurança alimentar permite compreender melhor a realidade social e econômica da população, identificando grupos mais vulneráveis e regiões que enfrentam maiores dificuldades de acesso aos alimentos. Além disso, o uso de dados estatísticos possibilita transformar informações em conhecimento, contribuindo para a avaliação de políticas públicas e para a elaboração de estratégias de combate à fome e à desigualdade.

Nos início dos anos 2010, como resultado de políticas públicas de combate à fome implementados na década de 2000, como o Programa Fome Zero (PFZ), criado em 2003, voltado à garantia da segurança alimentar e ao combate à pobreza, era possível reconhecer uma melhora significativa nesses indicadores. Entretanto, a partir da metade da década, com um cenário de recessão econômica, desemprego e retração de políticas sociais, houve uma reversão de quedas históricas da insegurança alimentar.

Além disso, as desigualdades territoriais na insegurança alimentar no Brasil refletem o histórico desequilíbrio na distribuição de renda, nos investimentos sociais e no acesso à infraestrutura. Estados das regiões Norte e Nordeste consistentemente apresentam os maiores índices de vulnerabilidade e fome, enquanto as regiões Sul e Sudeste registram taxas significativamente inferiores. Dessa forma, este trabalho busca analisar indicadores relacionados à segurança alimentar por meio de dados disponibilizados pelo SIDRA IBGE, permitindo uma visão mais ampla sobre a evolução da fome no Brasil e seus diferentes cenários regionais, bem como do cenário vigente.

Scripts em R

I) O primeiro script é dividido em 4 etapas:

primeiro, ele une os dados do módulo de Segurança Alimentar da PNAD 2013 com os resultados analíticos da POF 2017-2018, que são os dois marcos do IBGE para a década de 2010; em seguida, ele converte a tabela larga original em formato longo usando pivot_longer (), permitindo que o ggplot2 mapeie as diferentes categorias de segurança em uma única coluna empilhada; depois, ele define cores lógicas (verde para a segurança, tons quentes e sóbrios para os níveis de insegurança crescentes) de modo a tornar o gráfico autoexplicativo; por último, o resultado final ilustra visualmente o severo recuo da segurança alimentar (que caiu de 77,4% para 63,3% dos lares) e o salto correspondente em todos os níveis de insegurança alimentar no Brasil ao final da década. O script utiliza os pacotes do tidyverse para organizar os dados e gerar um gráfico de barras empilhadas (100%), que é o modelo ideal para observar como a proporção de lares com segurança alimentar caiu e a de insegurança cresceu no período.

# 1. Compilação dos pacotes necessários
library(dplyr)
library(ggplot2)
library(tidyr)
library(tidyverse)
library(geobr)
library(sf)
library(patchwork)
# 2. Estruturar os dados oficiais do IBGE (PNAD 2013 e POF 2017-2018)
# Unidade de medida: Percentual (%) de domicílios particulares do Brasil
dados_ia <- data.frame(
  Ano = c("2013 (PNAD)", "2017-2018 (POF)"),
  `Segurança Alimentar` = c(77.4, 63.3),
  `Insegurança Leve` = c(14.8, 24.0),
  `Insegurança Moderada` = c(4.6, 8.1),
  `Insegurança Grave` = c(3.2, 4.6),
  check.names = FALSE
)

# 3. Pivotar os dados para o formato 'long' (necessário para o ggplot2)
dados_longos <- dados_ia %>%
  pivot_longer(
    cols = -Ano,
    names_to = "Status",
    values_to = "Percentual"
  ) %>%
  # Fixar a ordem das categorias para fazer sentido na escala de severidade
  mutate(Status = factor(Status, levels = c(
    "Insegurança Grave",
    "Insegurança Moderada",
    "Insegurança Leve",
    "Segurança Alimentar"
  )))

# 4. Criar o gráfico comparativo
ggplot(dados_longos, aes(x = Ano, y = Percentual, fill = Status)) +
  geom_bar(stat = "identity", width = 0.5, color = "white", size = 0.3) +
  # Adicionar rótulos com os valores percentuais dentro das barras
  geom_text(
    aes(label = paste0(Percentual, "%")),
    position = position_stack(vjust = 0.5),
    size = 4,
    fontface = "bold",
    color = "white"
  ) +
  # Utilizar uma paleta de cores intuitiva (estilo semáforo/alerta)
  scale_fill_manual(
    values = c(
      "Segurança Alimentar" = "#2ca02c", # Verde
      "Insegurança Leve" = "#ff7f0e", # Laranja claro
      "Insegurança Moderada" = "#d62728", # Vermelho
      "Insegurança Grave" = "#7f7f7f" # Cinza escuro/Crítico
    )
  ) +
  # Customização de títulos e eixos
  labs(
    title = "Evolução da Insegurança Alimentar nos Domicílios Brasileiros",
    subtitle = "Comparativo da década de 2010 a partir dos dados do IBGE (PNAD vs POF)",
    x = "Período da Pesquisa",
    y = "Percentual de Domicílios (%)",
    fill = "Situação do Lar"
  ) +
  # Aplicar um tema visual limpo e moderno
  theme_minimal(base_size = 10) +
  theme(
    plot.title = element_text(face = "bold", size = 12, hjust = 0.5),
    plot.subtitle = element_text(size = 11, hjust = 0.5, color = "gray30"),
    legend.position = "bottom",
    panel.grid.major.x = element_blank(),
    axis.text = element_text(color = "black", face = "bold")
  )
Warning in geom_bar(stat = "identity", width = 0.5, color = "white", size =
0.3): Ignoring unknown parameters: `size`

II) O segundo script também é dividido em 4 etapas:

primeiro, ele cria uma tabela na memória (DataFrame) com dados da PNAD Contínua 2024 e organiza os dados em 5 linhas (as regiões do Brasil) e 5 colunas (Região, Segurança Alimentar e três níveis de Insegurança Alimentar: Leve, Moderada e Grave); em seguida, a função pivot_longer transforma a tabela original (que era larga) em uma estrutura vertical, o pacote ggplot2 exige que cada variável ocupe apenas uma coluna. Após essa etapa, as colunas de categorias viram linhas sob uma nova coluna chamada “Status”, e os números vão para a coluna “Percentual”; depois, ele transforma os textos de “Status” e “Região” em variáveis categóricas ordenadas (fatores), define a ordem exata em que as regiões (do Norte ao Sul) e os níveis de insegurança aparecerão nos eixos e na legenda do gráfico, também substitui os nomes técnicos por rótulos amigáveis (ex: muda “IA_Grave” para “Insegurança Grave (Fome)”; por último, define um gráfico de barras empilhadas que vai até 100% (position - “fill”), dividindo cada barra pelas categorias de situação alimentar, insere o símbolo de porcentagem (%) e centraliza os textos dos valores dentro de cada fatia das barras, ajusta o eixo vertical para exibir marcações em formato percentual (0% a 100%), aplica o tema theme_minimal para remover fundos poluídos, joga a legenda para a parte inferior e esconde as linhas verticais de grade para destacar apenas o que importa.

# 1. Inserir os dados oficiais da PNAD Contínua 2024 (%) por Região
# Fonte: IBGE (Módulo de Segurança Alimentar 2024)
dados_pnad <- data.frame(
  Regiao = c("Norte", "Nordeste", "Centro-Oeste", "Sudeste", "Sul"),
  Seguranca = c(62.3, 65.2, 77.9, 78.8, 86.1),
  IA_Leve = c(22.8, 20.8, 14.1, 14.2, 10.1),
  IA_Moderada = c(8.6, 9.2, 5.2, 4.7, 2.1),
  IA_Grave = c(6.3, 4.8, 2.8, 2.3, 1.7)
)

# 2. Reorganizar os dados para o formato 'long' (exigido pelo ggplot2)
dados_longos <- pivot_longer(
  data = dados_pnad,
  cols = -Regiao,
  names_to = "Status",
  values_to = "Percentual"
)

# 3. Ajustar os fatores para ordenar as legendas e as barras de forma lógica
dados_longos$Status <- factor(
  dados_longos$Status,
  levels = c("IA_Grave", "IA_Moderada", "IA_Leve", "Seguranca"),
  labels = c("Insegurança Grave (Fome)", "Insegurança Moderada", "Insegurança Leve", "Segurança Alimentar")
)

dados_longos$Regiao <- factor(
  dados_longos$Regiao,
  levels = c("Norte", "Nordeste", "Centro-Oeste", "Sudeste", "Sul")
)

# 4. Construir o gráfico de barras empilhadas 100%
ggplot(dados_longos, aes(x = Regiao, y = Percentual, fill = Status)) +
  # O 'position = "fill"' garante o empilhamento proporcional em 100%
  geom_bar(stat = "identity", position = "fill", width = 0.7) +
  # Inserir rótulos de porcentagem dentro das fatias das barras
  geom_text(
    aes(label = paste0(Percentual,"%")),
    position = position_fill(vjust = 0.5),
    color = "black",
    size = 2.5
  ) +
  # Configurar o eixo Y para exibir a escala em formato de porcentagem (0% a 100%)
  scale_y_continuous(labels = scales::percent_format()) +
  # Definir paleta de cores personalizada (tons de alerta para IA e verde para Segurança)
  scale_fill_manual(values = c(
    "Insegurança Grave (Fome)" = "#b2182b", # Vermelho escuro
    "Insegurança Moderada" = "#ef8a62", # Laranja
    "Insegurança Leve" = "#fddbc7", # Bege claro
    "Segurança Alimentar" = "#4d4" # verde
  )) +
  # Customização de títulos e eixos
  labs(
    title = "Segurança e Insegurança Alimentar no Brasil por Região (2024)",
    subtitle = "Proporção de domicílios particulares permanentes (%)",
    x = "Grande Região",
    y = "Proporção (100%)",
    fill = "Situação Alimentar",
    caption = "Fonte: IBGE, PNAD Contínua 2024."
  ) +
  # Aplicar um tema limpo e profissional
  theme_minimal(base_size = 8) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5, size = 12),
    plot.subtitle = element_text(hjust = 0.5, size = 11
                                 , color = "gray30"),
    legend.position = "bottom",
    legend.title = element_text(face = "bold"),
    panel.grid.major.x = element_blank()
  )

III) O terceiro script é dividido em 7 etapas:

primeiro, o pacote geobr faz o download do contorno geográfico oficial das cinco Grandes Regiões do Brasil (Norte, Nordeste, Centro-Oeste, Sudeste e Sul) baseado no ano de 2020; em seguida, insere manualmente as porcentagens de Insegurança Alimentar Total por região, extraídas de três pesquisas do IBGE: PNAD 2013, POF 2017-2018 e PNAD Contínua 2024; une a tabela de porcentagens ao arquivo do mapa utilizando o nome da região (name_region) como elo comum; define uma escala que vai do amarelo (menor IA) ao vermelho escuro (maior IA), travando os limites entre 10% e 60% para garantir uma comparação justa entre os anos, cria um tema transparente (sem eixos ou fundos) e esconde as legendas individuais para evitar poluição visual; cria um mapa específico para 2013, outro para 2017-2018 e um terceiro para 2024, onde a cor de cada região reflete a taxa de insegurança alimentar daquela época; depois, o pacote patchwork organiza os três mapas em uma única linha horizontal, centraliza apenas uma legenda de cores à direita e adiciona um título geral, subtítulo explicativo e a fonte dos danos no rodapé; por último mostra o gráfico final formatado diretamente na tela do usuário. O script também deixa pronta uma linha de comando (comentada) para salvar o mapa como uma imagem PNG de alta resolução.

# 1. Obter o mapa das Grandes Regiões do Brasil via geobr
# O parâmetro year = 2020 fornece uma malha recente e leve para as regiões
regioes_mapa <- read_region(year = 2020, showProgress = FALSE)

# 2. Inserir dados consolidados do SIDRA/IBGE por Grande Região
# Taxa de Insegurança Alimentar Total (Leve + Moderada + Grave) em % de domicílios
dados_ia <- tibble(
  name_region = c("Norte", "Nordeste", "Sudeste", "Sul", "Centro-Oeste"),
  # Dados da PNAD 2013 (Suplemento de Segurança Alimentar)
  ia_2013 = c(36.1, 38.1, 14.5, 14.9, 18.2),
  # Dados da POF 2017-2018 (Análise da Segurança Alimentar)
  ia_2017_18 = c(57.0, 52.6, 31.2, 20.7, 32.6),
  # Dados da PNAD Contínua 2024 (Suplemento de Segurança Alimentar)
  ia_2024 = c(37.7, 34.8, 17.5, 13.6, 18.3)
)

# 3. Unificar os dados estatísticos com a malha geográfica do mapa
mapa_dados <- regioes_mapa %>%
  left_join(dados_ia, by = "name_region")

# 4. Definir uma paleta de cores e limites padronizados para permitir comparação direta
# Escala de cores do amarelo (menor IA) ao vermelho escuro (maior IA)
cor_escala <- scale_fill_distiller(
  palette = "YlOrRd",
  direction = 2,
  name = "IA Total (%)",
  limits = c(10, 60), # Limites fixos para que a cor signifique o mesmo valor nos 3 mapas
  breaks = seq(10, 60, by = 10)
)

# Temas customizados para manter o mapa limpo e focado nos dados espaciais
tema_mapa <- theme_void() +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5, size = 12),
    legend.position = "none" # Remove a legenda individual para criar uma única global no final
  )

# 5. Construir os três mapas individualmente
mapa_2013 <- ggplot(data = mapa_dados) +
  geom_sf(aes(fill = ia_2013), color = "white", size = 0.2) +
  cor_escala +
  labs(title = "PNAD 2013") +
  tema_mapa

mapa_2017_18 <- ggplot(data = mapa_dados) +
  geom_sf(aes(fill = ia_2017_18), color = "white", size = 0.2) +
  cor_escala +
  labs(title = "POF 2017-18") +
  tema_mapa

mapa_2024 <- ggplot(data = mapa_dados) +
  geom_sf(aes(fill = ia_2024), color = "white", size = 0.2) +
  cor_escala +
  labs(title = "PNAD Contínua 2024") +
  tema_mapa

# 6. Combinar os mapas em uma única estrutura com o patchwork
mapa_final <- (mapa_2013 | mapa_2017_18 | mapa_2024) +
  plot_layout(guides = "collect") + # Coleta e exibe apenas uma legenda unificada à direita
  plot_annotation(
    title = "Evolução da Insegurança Alimentar Total por Região no Brasil",
    subtitle = "Proporção de domicílios particulares com IA leve, moderada ou grave (%)",
    caption = "Fonte: IBGE / SIDRA (PNAD 2013, POF 2017-18 e PNAD Contínua 2024)",
    theme = theme(
      plot.title = element_text(face = "bold", size = 16, hjust = 0.5),
      plot.subtitle = element_text(size = 11, hjust = 0.5, face = "italic"),
      plot.caption = element_text(size = 9, hjust = 0.5, margin = margin(t = 15))
    )
  )

# 7. Exibir o mapa final no painel do RStudio ou salvar em arquivo externo
print(mapa_final)

# ggsave("mapas_inseguranca_alimentar_brasil.png", plot = mapa_final, width = 12, height = 5, dpi = 300)

A segurança alimentar na década de 2010

A década de 2010 marcou uma transição crucial para a segurança alimentar, caracterizada por uma primeira metade de conquistas históricas, seguida por uma reversão de tendências e aumento drástico da fome na segunda metade da década. Ao analisar a PNAD 2013, a subalimentação atingia 3,2% da população nacional. Em 2014, o Brasil saiu do Mapa da Fome da Organização das Nações Unidas para Alimentação e a Agricultura (FAO). A queda acentuada nos indices de pobreza e extrema pobreza foi impulsionada por programas de transferência de renda (como o Bolsa Família), valorização real do salário mínimo, e forte fomento à agricultura familiar. A partir de 2015, o cenário mudou drasticamente. A crise econômica brasileira, combinada à redução gradual e ao desmonte de políticas sociais integradas, levou a estagnação e ao aumento expressivo da insegurança alimentar. A POF 2017-2018 aponta que a insegurança alimentar voltou a crescer, atingindo níveis alarmantes, com 4,6% de Insegurança Grave, um aumento de quase 50% em relação a PNAD 2013.

Cenário recente da segurança alimentar brasileira

Os dados da PNAD Contínua 2024 demonstram uma melhora substancial na Segurança Alimentar (SA). Em 2017-2018, apenas 63% dos domicílios brasileiros estavam em SA. Em 2024, esse patamar saltou para 75,8%, refletindo uma retomada na estabilidade alimentar após anos de retrocessos e crises. O ano de 2023 representa um ponto de inflexão, após um período marcado pelo desmonte de políticas sociais, representando uma retomada de programas voltados à segurança alimentar e à proteção social. Embora os avanços recentes sinalizem uma evolução positiva, é importante a ênfase em fortalecer políticas estruturantes, que trabalhem para combater gargalos históricos como a desigualdade de renda, bem como desigualdades regionais em seu território. Além disso, a instabilidade das políticas públicas no Brasil, decorrente, principalmente, da descontinuidade administrativa a cada mudança de governo e da forte dependência de ciclos eleitorais, são prejudiciais a construção de projetos de longo prazo, haja vista que, mudanças repentinas de gestão costumam paralisar programas de desenvolvimento social.

Uma comparação entre regiões

A partir de uma análise dos mapas, é possível observar que as regiões Norte e Nordeste concentram as maiores taxas de fome, enquanto o Sul registra os menores índices, evidenciando desigualdades estruturais históricas. Palmeira et al. estudaram o efeito de programas governamentais no enfrentamento da insegurança alimentar em um município da Região Nordeste e constataram que políticas voltadas à proteção de saúde, segurança alimentar, redução da pobreza e desenvolvimento rural estavam associados à manutenção da segurança alimentar ao longo do tempo e à superação da insegurança alimentar. No entanto, entre 2013 e 2018, essa região foi afetada por cortes orçamentários nos investimentos em políticas sociais decorrentes da crise, o que intensificou as desigualdades de renda e regionais.

Referências

1. SILVA, Sandro Pereira. A trajetória histórica da segurança alimentar e nutricional na agenda política nacional: projetos, descontinuidades e consolidação. Brasília: Ipea, abril. 2014. (Texto para Discussão, n. 1953).

Disponível em: https://repositorio.ipea.gov.br/handle/11058/3019. Acesso em: 3 de jul. 2026.

2. GOULART, Hélton Rodrigues; BERETTA, Regina Célia de Souza; GUERRA, José Alfredo de Pádua; BORGES, Marilurdes Cruz. O cenário da fome e da insegurança alimentar no Brasil: ato responsável às políticas públicas. Revista Aracê, v. 7, n. 11, 2025. Disponível em: ⁠https://periodicos.newsciencepubl.com/arace/article/view/9902. Acesso em: 3 de jul. 2026.

3. CHEROL, Camilla Christine de Souza; FERREIRA, Aline Alves; LIGNANI, Juliana de Bem; SALLES-COSTA, Rosana. Desigualdades regionais e sociais na insegurança alimentar no Brasil, 2013-2018. Cadernos de Saúde Pública, v. 38, n. 12, e00083822, 2022. Disponível no ⁠Portal de Periódicos da ENSP. Acesso em: 3 de jul. 2026.

4. SALLES-COSTA, Rosana et al. Rise and fall of household food security in Brazil, 2004 to 2022. Cadernos de Saúde Pública, v. 39, n. 1, e00191122, 2023. Disponível na ⁠Plataforma SciELO. Acesso em: 3 de jul. 2026.

5. HOFFMANN, Rodolfo. Insegurança Alimentar no Brasil após crise, sua evolução de 2004 a 2017-2018 e comparação com a variação da pobreza. Segurança Alimentar e Nutricional, Campinas, SP, v. 28, e021014, 2021. Disponível em: ⁠https://periodicos.sbu.unicamp.br/ojs/index.php/san/article/view/8663556. Acesso em: 3 de jul. 2026.

6. PALMEIRA, Poliana de Araújo; MATTOS, Ruben de Araújo; PÉREZ- ESCAMILLA, Rafael; SALLES-COSTA, Rosana. Multisectoral government

programs and household food insecurity: evidence from a longitudinal study in the semiarid area of northeast, Brazil. Food Security, v. 13, n. 3, p. 525-538, 2021. Disponível na Plataforma Springer. DOI: doi.org. Acesso em: 3 de jul. 2026.