# Vetor contendo todos os pacotes utilizados no projeto
pacotes <- c(
"readxl",
"janitor",
"dplyr",
"tidyr",
"stringr",
"stringi",
"purrr",
"forcats",
"tibble",
"ggplot2",
"scales",
"patchwork",
"flextable",
"officer",
"gtsummary",
"gt",
"broom",
"broom.helpers",
"DescTools",
"rstatix",
"car",
"MASS",
"ordinal",
"nnet",
"brant",
"FactoMineR",
"factoextra",
"cluster",
"missMDA",
"skimr",
"performance",
"parameters",
"effectsize",
"see",
"writexl",
"openxlsx",
"here",
"fs"
)
# Verifica se existem pacotes ausentes
pacotes_faltantes <-
setdiff(
pacotes,
rownames(installed.packages())
)
# Caso existam, interrompe a execução
if (length(pacotes_faltantes) > 0) {
stop(
paste(
"Instale previamente os seguintes pacotes:",
paste(pacotes_faltantes, collapse = ", ")
)
)
}
# Carrega todos os pacotes
invisible(
lapply(
pacotes,
library,
character.only = TRUE
)
)
rm(pacotes)
rm(pacotes_faltantes)Compreensão dos consumidores brasileiros em relação à rotulagem nutricional em sucos mistos de jabuticaba e morango com adição de probióticos
Relatório estatístico
1 Introdução
Este relatório apresenta uma análise estatística completa dos dados provenientes do questionário online denominado “Compreensão dos consumidores brasileiros em relação à rotulagem nutricional em sucos mistos de jabuticaba e morango com adição de probióticos”.
Os dados foram obtidos por meio de questionário eletrônico enviado para diferentes estados brasileiros, utilizando amostragem não probabilística, por conveniência e adesão voluntária.
Assim, todas as interpretações deste relatório referem-se exclusivamente aos respondentes do questionário online, não sendo apropriada a extrapolação direta dos resultados para a população brasileira.
O documento foi desenvolvido em Quarto utilizando a linguagem R, permitindo completa reprodutibilidade das análises.
As análises contemplam:
- caracterização da amostra;
- estatística descritiva;
- gráficos acadêmicos;
- testes de associação;
- regressão logística binária;
- regressão logística ordinal;
- regressão multinomial;
- análise de correspondência múltipla;
- análise de clusters;
- exportação automática de tabelas e gráficos.
Todas as metodologias empregadas respeitam a natureza estatística das variáveis, evitando a utilização de métodos inadequados para variáveis qualitativas.
2 1 Carregamento dos pacotes
3 2 Organização do projeto
#------------------------------------------------------------
# Criação automática das pastas do projeto
#------------------------------------------------------------
pastas <- c(
"dados",
"graficos",
"tabelas",
"modelos",
"objetos",
"resultados",
"logs"
)
purrr::walk(
pastas,
fs::dir_create
)
rm(pastas)4 3 Configurações globais
options(
scipen = 999,
digits = 4,
dplyr.summarise.inform = FALSE
)
theme_set(
ggplot2::theme_minimal(base_size = 13)
)
set.seed(1234)5 4 Importação da base de dados
#------------------------------------------------------------
# Caminho da planilha
#------------------------------------------------------------
arquivo_dados <-
here::here(
"dados",
"consumidores_probioticos.xlsx"
)
#------------------------------------------------------------
# Verificação da existência do arquivo
#------------------------------------------------------------
if (!file.exists(arquivo_dados)) {
stop(
paste0(
"Arquivo não encontrado:\n",
arquivo_dados,
"\n\n",
"Coloque a planilha dentro da pasta 'dados'."
)
)
}
#------------------------------------------------------------
# Leitura da planilha
#------------------------------------------------------------
banco <-
readxl::read_excel(
arquivo_dados
) |>
janitor::clean_names()
rm(arquivo_dados)6 5 Dimensões da base
cat(
"Número de respondentes:",
nrow(banco),
"\n"
)Número de respondentes: 447
cat(
"Número de variáveis:",
ncol(banco),
"\n"
)Número de variáveis: 42
7 6 Estrutura da base
glimpse(banco)Rows: 447
Columns: 42
$ carimbo_de_data_hora <dttm> …
$ apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceita_participar_da_pesquisa <dbl> …
$ sexo <dbl> …
$ faixa_etaria <dbl> …
$ renda_familiar_mensal <dbl> …
$ escolaridade <dbl> …
$ cor_da_pele <dbl> …
$ estado_civil <dbl> …
$ qual_o_seu_estado <dbl> …
$ voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao <dbl> …
$ voce_consome_suco_de_frutas <dbl> …
$ se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_12 <dbl> …
$ voce_consome_bebida_alcoolica <dbl> …
$ voce_fuma <dbl> …
$ voce_pratica_alguma_atividade_fisica_regularmente <dbl> …
$ se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_16 <dbl> …
$ se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_pode_marcar_mais_de_uma_opcao <chr> …
$ voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal <dbl> …
$ se_voce_respondeu_sim_na_pergunta_anterior_qual_doenca_foi_diagnosticado_a <chr> …
$ se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mais_de_uma_opcao <chr> …
$ os_sintomas_gastrointestinais_interferem_nas_suas_atividades_diarias <dbl> …
$ voce_esta_em_tratamento_medico_atualmente_para_algum_problema_gastrointestinal <dbl> …
$ voce_sabe_o_que_sao_probioticos <dbl> …
$ se_respondeu_sim_como_ficou_sabendo <dbl> …
$ leia_o_texto_abaixo_sobre_probioticos_microrganismos_probioticos_sao_definidos_como_organismos_vivos_que_quando_consumidos_em_quantidades_adequadas_promovem_beneficios_a_saude_do_hospedeiro_por_essa_razao_podem_ser_incorporados_aos_alimentos_com_o_objetivo_de_desenvolver_produtos_com_propriedades_funcionais_contribuindo_para_o_equilibrio_da_microbiota_intestinal_e_a_melhoria_do_bem_estar_geral_fonte_hill_colin_et_al_the_international_scientific_association_for_probiotics_and_prebiotics_consensus_statement_on_the_scope_and_appropriate_use_of_the_term_probiotic_nature_reviews_gastroenterology_hepatology_s_l_v_11_n_8_p_506_514_10_jun_2014_springer_science_and_business_media_llc_http_dx_doi_org_10_1038_nrgastro_2014_66 <chr> …
$ apos_a_leitura_do_texto_acima_voce_acredita_que_o_consumo_de_probioticos_traz_beneficios_a_saude <chr> …
$ voce_se_sentiria_mais_motivado_a_a_consumir_probioticos_se_soubesse_que_eles_ajudam_a_equilibrar_a_flora_intestinal <dbl> …
$ voce_consome_alimentos_ou_bebidas_com_probioticos <dbl> …
$ se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_mais_de_uma_opcao <chr> …
$ se_consome_algum_dos_produtos_citados_acima_com_que_frequencia <dbl> …
$ se_um_produto_destacar_contem_probioticos_no_rotulo_isso_influenciaria_sua_compra <dbl> …
$ com_que_frequencia_voce_le_os_rotulos_dos_produtos <chr> …
$ quais_informacoes_no_rotulo_mais_chamam_sua_atencao_pode_marcar_mais_de_uma_opcao <chr> …
$ o_que_mais_te_incomoda_ao_ler_rotulos_pode_marcar_mais_de_uma_opcao <chr> …
$ quais_fatores_influenciam_sua_escolha_ao_comprar_um_suco_pode_marcar_mais_de_uma_opcao <chr> …
$ voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos <dbl> …
$ observe_os_rotulos_abaixo_de_um_suco_misto_de_jabuticaba_e_morango_e_responda_as_proximas_questoes <chr> …
$ qual_dos_tres_rotulos_te_chamou_mais_atencao <dbl> …
$ o_que_mais_chamou_sua_atencao_nos_rotulos_acima <dbl> …
$ voce_ja_viu_ou_consumiu_sucos_com_probioticos <dbl> …
$ o_que_te_faria_confiar_mais_em_um_suco_com_probioticos_pode_marcar_mais_de_uma_opcao <chr> …
$ qual_o_valor_voce_estaria_disposto_a_a_pagar_por_uma_garrafa_300_m_l_deste_suco <dbl> …
8 7 Primeiras observações
head(
banco,
10
)# A tibble: 10 × 42
carimbo_de_data_hora apos_ler_o_termo_de_consentimento_l…¹ sexo faixa_etaria
<dttm> <dbl> <dbl> <dbl>
1 2025-07-09 16:36:06 1 2 3
2 2025-07-09 16:44:25 1 2 3
3 2025-07-17 09:21:39 1 2 5
4 2025-07-17 09:22:11 1 1 2
5 2025-07-17 09:23:47 1 1 5
6 2025-07-17 09:36:18 1 2 5
7 2025-07-17 10:18:48 1 1 2
8 2025-07-17 10:32:46 1 1 2
9 2025-07-17 10:33:52 1 1 1
10 2025-07-17 10:34:27 1 1 2
# ℹ abbreviated name:
# ¹apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceita_participar_da_pesquisa
# ℹ 38 more variables: renda_familiar_mensal <dbl>, escolaridade <dbl>,
# cor_da_pele <dbl>, estado_civil <dbl>, qual_o_seu_estado <dbl>,
# voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao <dbl>,
# voce_consome_suco_de_frutas <dbl>,
# se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_12 <dbl>, …
9 8 Tipos das variáveis
tipos_variaveis <-
tibble(
variavel = names(banco),
classe =
purrr::map_chr(
banco,
~class(.x)[1]
)
)
tipos_variaveis# A tibble: 42 × 2
variavel classe
<chr> <chr>
1 carimbo_de_data_hora POSIX…
2 apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceit… numer…
3 sexo numer…
4 faixa_etaria numer…
5 renda_familiar_mensal numer…
6 escolaridade numer…
7 cor_da_pele numer…
8 estado_civil numer…
9 qual_o_seu_estado numer…
10 voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao numer…
# ℹ 32 more rows
10 9 Percentual de dados ausentes
dados_ausentes <-
banco |>
summarise(
across(
everything(),
~mean(is.na(.x))*100
)
) |>
pivot_longer(
everything(),
names_to = "variavel",
values_to = "percentual"
) |>
arrange(
desc(percentual)
)
dados_ausentes# A tibble: 42 × 2
variavel percentual
<chr> <dbl>
1 observe_os_rotulos_abaixo_de_um_suco_misto_de_jabuticaba_e_morang… 98.2
2 leia_o_texto_abaixo_sobre_probioticos_microrganismos_probioticos_… 97.1
3 se_voce_respondeu_sim_na_pergunta_anterior_qual_doenca_foi_diagno… 80.5
4 se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mais_de_u… 75.6
5 os_sintomas_gastrointestinais_interferem_nas_suas_atividades_diar… 52.8
6 se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_16 26.2
7 voce_esta_em_tratamento_medico_atualmente_para_algum_problema_gas… 25.5
8 se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_… 23.3
9 se_respondeu_sim_como_ficou_sabendo 19.9
10 se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_mais_d… 6.71
# ℹ 32 more rows
11 10 Diagnóstico geral da base
diagnostico <-
tibble(
indicador = c(
"Número de respondentes",
"Número de variáveis",
"Número de células",
"Valores ausentes"
),
valor = c(
nrow(banco),
ncol(banco),
nrow(banco) * ncol(banco),
sum(is.na(banco))
)
)
diagnostico# A tibble: 4 × 2
indicador valor
<chr> <int>
1 Número de respondentes 447
2 Número de variáveis 42
3 Número de células 18774
4 Valores ausentes 2304
12 11 Sumário geral da base
skimr::skim(
banco
)| Name | banco |
| Number of rows | 447 |
| Number of columns | 42 |
| _______________________ | |
| Column type frequency: | |
| character | 12 |
| numeric | 29 |
| POSIXct | 1 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_pode_marcar_mais_de_uma_opcao | 104 | 0.77 | 4 | 82 | 0 | 69 | 0 |
| se_voce_respondeu_sim_na_pergunta_anterior_qual_doenca_foi_diagnosticado_a | 360 | 0.19 | 1 | 157 | 0 | 58 | 0 |
| se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mais_de_uma_opcao | 338 | 0.24 | 4 | 118 | 0 | 50 | 0 |
| leia_o_texto_abaixo_sobre_probioticos_microrganismos_probioticos_sao_definidos_como_organismos_vivos_que_quando_consumidos_em_quantidades_adequadas_promovem_beneficios_a_saude_do_hospedeiro_por_essa_razao_podem_ser_incorporados_aos_alimentos_com_o_objetivo_de_desenvolver_produtos_com_propriedades_funcionais_contribuindo_para_o_equilibrio_da_microbiota_intestinal_e_a_melhoria_do_bem_estar_geral_fonte_hill_colin_et_al_the_international_scientific_association_for_probiotics_and_prebiotics_consensus_statement_on_the_scope_and_appropriate_use_of_the_term_probiotic_nature_reviews_gastroenterology_hepatology_s_l_v_11_n_8_p_506_514_10_jun_2014_springer_science_and_business_media_llc_http_dx_doi_org_10_1038_nrgastro_2014_66 | 434 | 0.03 | 1 | 112 | 0 | 10 | 0 |
| apos_a_leitura_do_texto_acima_voce_acredita_que_o_consumo_de_probioticos_traz_beneficios_a_saude | 0 | 1.00 | 1 | 11 | 0 | 2 | 0 |
| se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_mais_de_uma_opcao | 30 | 0.93 | 3 | 76 | 0 | 37 | 0 |
| com_que_frequencia_voce_le_os_rotulos_dos_produtos | 0 | 1.00 | 5 | 14 | 0 | 5 | 0 |
| quais_informacoes_no_rotulo_mais_chamam_sua_atencao_pode_marcar_mais_de_uma_opcao | 0 | 1.00 | 21 | 180 | 0 | 41 | 0 |
| o_que_mais_te_incomoda_ao_ler_rotulos_pode_marcar_mais_de_uma_opcao | 0 | 1.00 | 21 | 165 | 0 | 16 | 0 |
| quais_fatores_influenciam_sua_escolha_ao_comprar_um_suco_pode_marcar_mais_de_uma_opcao | 0 | 1.00 | 5 | 50 | 0 | 29 | 0 |
| observe_os_rotulos_abaixo_de_um_suco_misto_de_jabuticaba_e_morango_e_responda_as_proximas_questoes | 439 | 0.02 | 1 | 8 | 0 | 6 | 0 |
| o_que_te_faria_confiar_mais_em_um_suco_com_probioticos_pode_marcar_mais_de_uma_opcao | 0 | 1.00 | 26 | 144 | 0 | 15 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceita_participar_da_pesquisa | 0 | 1.00 | 1.00 | 0.05 | 1 | 1 | 1 | 1 | 2 | ▇▁▁▁▁ |
| sexo | 0 | 1.00 | 1.31 | 0.47 | 1 | 1 | 1 | 2 | 3 | ▇▁▃▁▁ |
| faixa_etaria | 0 | 1.00 | 2.43 | 1.39 | 1 | 1 | 2 | 3 | 6 | ▇▃▂▁▁ |
| renda_familiar_mensal | 0 | 1.00 | 3.03 | 1.41 | 1 | 2 | 3 | 4 | 6 | ▇▅▃▂▂ |
| escolaridade | 0 | 1.00 | 6.02 | 1.54 | 2 | 5 | 6 | 8 | 8 | ▁▃▇▃▇ |
| cor_da_pele | 0 | 1.00 | 2.66 | 0.84 | 1 | 2 | 2 | 3 | 6 | ▇▅▂▁▁ |
| estado_civil | 0 | 1.00 | 1.59 | 1.09 | 1 | 1 | 1 | 2 | 5 | ▇▃▁▁▁ |
| qual_o_seu_estado | 0 | 1.00 | 14.22 | 3.94 | 1 | 13 | 13 | 13 | 26 | ▁▁▇▁▁ |
| voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao | 0 | 1.00 | 1.60 | 0.55 | 1 | 1 | 2 | 2 | 3 | ▆▁▇▁▁ |
| voce_consome_suco_de_frutas | 0 | 1.00 | 1.06 | 0.24 | 1 | 1 | 1 | 1 | 2 | ▇▁▁▁▁ |
| se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_12 | 22 | 0.95 | 2.22 | 0.65 | 1 | 2 | 2 | 3 | 3 | ▂▁▇▁▅ |
| voce_consome_bebida_alcoolica | 0 | 1.00 | 2.09 | 0.58 | 1 | 2 | 2 | 2 | 3 | ▂▁▇▁▃ |
| voce_fuma | 0 | 1.00 | 1.85 | 0.36 | 1 | 2 | 2 | 2 | 2 | ▂▁▁▁▇ |
| voce_pratica_alguma_atividade_fisica_regularmente | 0 | 1.00 | 1.27 | 0.45 | 1 | 1 | 1 | 2 | 2 | ▇▁▁▁▃ |
| se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_16 | 117 | 0.74 | 2.02 | 0.73 | 1 | 1 | 2 | 3 | 3 | ▅▁▇▁▅ |
| voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal | 0 | 1.00 | 1.80 | 0.40 | 1 | 2 | 2 | 2 | 2 | ▂▁▁▁▇ |
| os_sintomas_gastrointestinais_interferem_nas_suas_atividades_diarias | 236 | 0.47 | 1.68 | 0.47 | 1 | 1 | 2 | 2 | 2 | ▃▁▁▁▇ |
| voce_esta_em_tratamento_medico_atualmente_para_algum_problema_gastrointestinal | 114 | 0.74 | 1.90 | 0.30 | 1 | 2 | 2 | 2 | 2 | ▁▁▁▁▇ |
| voce_sabe_o_que_sao_probioticos | 0 | 1.00 | 1.21 | 0.40 | 1 | 1 | 1 | 1 | 2 | ▇▁▁▁▂ |
| se_respondeu_sim_como_ficou_sabendo | 89 | 0.80 | 2.29 | 0.89 | 1 | 2 | 2 | 3 | 4 | ▂▇▁▂▂ |
| voce_se_sentiria_mais_motivado_a_a_consumir_probioticos_se_soubesse_que_eles_ajudam_a_equilibrar_a_flora_intestinal | 0 | 1.00 | 1.23 | 0.46 | 1 | 1 | 1 | 1 | 3 | ▇▁▂▁▁ |
| voce_consome_alimentos_ou_bebidas_com_probioticos | 0 | 1.00 | 1.80 | 0.49 | 1 | 2 | 2 | 2 | 3 | ▂▁▇▁▁ |
| se_consome_algum_dos_produtos_citados_acima_com_que_frequencia | 21 | 0.95 | 2.19 | 0.66 | 1 | 2 | 2 | 3 | 3 | ▂▁▇▁▅ |
| se_um_produto_destacar_contem_probioticos_no_rotulo_isso_influenciaria_sua_compra | 0 | 1.00 | 1.69 | 0.72 | 1 | 1 | 2 | 2 | 3 | ▇▁▆▁▂ |
| voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos | 0 | 1.00 | 1.10 | 0.30 | 1 | 1 | 1 | 1 | 2 | ▇▁▁▁▁ |
| qual_dos_tres_rotulos_te_chamou_mais_atencao | 0 | 1.00 | 2.68 | 0.58 | 1 | 2 | 3 | 3 | 3 | ▁▁▂▁▇ |
| o_que_mais_chamou_sua_atencao_nos_rotulos_acima | 0 | 1.00 | 1.84 | 0.94 | 1 | 1 | 1 | 3 | 4 | ▇▂▁▅▁ |
| voce_ja_viu_ou_consumiu_sucos_com_probioticos | 0 | 1.00 | 1.77 | 0.42 | 1 | 2 | 2 | 2 | 2 | ▂▁▁▁▇ |
| qual_o_valor_voce_estaria_disposto_a_a_pagar_por_uma_garrafa_300_m_l_deste_suco | 0 | 1.00 | 1.49 | 0.63 | 1 | 1 | 1 | 2 | 4 | ▇▅▁▁▁ |
Variable type: POSIXct
| skim_variable | n_missing | complete_rate | min | max | median | n_unique |
|---|---|---|---|---|---|---|
| carimbo_de_data_hora | 0 | 1 | 2025-07-09 16:36:06 | 2025-11-24 21:11:33 | 2025-10-01 17:23:50 | 447 |
13 12 Nomes das variáveis
nomes_variaveis <-
tibble(
ordem = seq_along(names(banco)),
nome_original = names(banco)
)
nomes_variaveis# A tibble: 42 × 2
ordem nome_original
<int> <chr>
1 1 carimbo_de_data_hora
2 2 apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceita…
3 3 sexo
4 4 faixa_etaria
5 5 renda_familiar_mensal
6 6 escolaridade
7 7 cor_da_pele
8 8 estado_civil
9 9 qual_o_seu_estado
10 10 voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao
# ℹ 32 more rows
14 Diagnóstico inicial
Nesta etapa foi realizada a inspeção estrutural da base de dados.
Foram verificados:
- número de respondentes;
- número de variáveis;
- estrutura das colunas;
- tipos das variáveis;
- percentual de dados ausentes;
- consistência da importação.
Essas verificações antecedem qualquer procedimento estatístico e têm como objetivo garantir a integridade do banco de dados antes da recodificação das variáveis.
Os resultados apresentados neste relatório referem-se exclusivamente aos respondentes do questionário online, considerando que a amostra foi obtida por conveniência e adesão voluntária.
15 13 Verificação da qualidade da base
#------------------------------------------------------------
# Quantidade de valores únicos por variável
#------------------------------------------------------------
qualidade_base <-
tibble(
variavel = names(banco),
classe = purrr::map_chr(banco, ~ class(.x)[1]),
n_ausentes = purrr::map_int(banco, ~ sum(is.na(.x))),
perc_ausentes = purrr::map_dbl(
banco,
~ mean(is.na(.x)) * 100
),
n_categorias = purrr::map_int(
banco,
~ dplyr::n_distinct(.x, na.rm = TRUE)
)
)
qualidade_base# A tibble: 42 × 5
variavel classe n_ausentes perc_ausentes n_categorias
<chr> <chr> <int> <dbl> <int>
1 carimbo_de_data_hora POSIX… 0 0 447
2 apos_ler_o_termo_de_consentimen… numer… 0 0 2
3 sexo numer… 0 0 3
4 faixa_etaria numer… 0 0 6
5 renda_familiar_mensal numer… 0 0 6
6 escolaridade numer… 0 0 7
7 cor_da_pele numer… 0 0 6
8 estado_civil numer… 0 0 5
9 qual_o_seu_estado numer… 0 0 18
10 voce_se_considera_uma_pessoa_pr… numer… 0 0 3
# ℹ 32 more rows
16 14 Variáveis com maior quantidade de dados ausentes
qualidade_base |>
ggplot(
aes(
x = reorder(
variavel,
perc_ausentes
),
y = perc_ausentes
)
) +
geom_col(
fill = "#3B6FB6"
) +
coord_flip() +
labs(
x = NULL,
y = "Percentual (%)",
title = "Percentual de dados ausentes por variável"
)17 15 Distribuição das classes das variáveis
qualidade_base |>
count(
classe
)# A tibble: 3 × 2
classe n
<chr> <int>
1 POSIXct 1
2 character 12
3 numeric 29
18 16 Variáveis candidatas à recodificação
variaveis_categoricas <-
qualidade_base |>
filter(
classe %in% c(
"numeric",
"character"
)
)
variaveis_categoricas# A tibble: 41 × 5
variavel classe n_ausentes perc_ausentes n_categorias
<chr> <chr> <int> <dbl> <int>
1 apos_ler_o_termo_de_consentimen… numer… 0 0 2
2 sexo numer… 0 0 3
3 faixa_etaria numer… 0 0 6
4 renda_familiar_mensal numer… 0 0 6
5 escolaridade numer… 0 0 7
6 cor_da_pele numer… 0 0 6
7 estado_civil numer… 0 0 5
8 qual_o_seu_estado numer… 0 0 18
9 voce_se_considera_uma_pessoa_pr… numer… 0 0 3
10 voce_consome_suco_de_frutas numer… 0 0 2
# ℹ 31 more rows
19 17 Valores observados em cada variável
explorar_variavel <-
function(nome){
cat(
"\n=====================================\n"
)
cat(
nome,
"\n"
)
print(
sort(
unique(
banco[[nome]]
)
)
)
}
purrr::walk(
names(banco),
explorar_variavel
)
=====================================
carimbo_de_data_hora
[1] "2025-07-09 16:36:06 UTC" "2025-07-09 16:44:25 UTC"
[3] "2025-07-17 09:21:39 UTC" "2025-07-17 09:22:11 UTC"
[5] "2025-07-17 09:23:47 UTC" "2025-07-17 09:36:18 UTC"
[7] "2025-07-17 10:18:48 UTC" "2025-07-17 10:32:46 UTC"
[9] "2025-07-17 10:33:52 UTC" "2025-07-17 10:34:27 UTC"
[11] "2025-07-17 10:37:08 UTC" "2025-07-17 10:39:12 UTC"
[13] "2025-07-17 11:00:48 UTC" "2025-07-17 11:31:42 UTC"
[15] "2025-07-17 12:05:58 UTC" "2025-07-17 12:07:26 UTC"
[17] "2025-07-17 12:53:52 UTC" "2025-07-17 13:03:54 UTC"
[19] "2025-07-17 13:12:02 UTC" "2025-07-17 13:41:26 UTC"
[21] "2025-07-17 13:51:32 UTC" "2025-07-17 14:11:57 UTC"
[23] "2025-07-17 16:23:20 UTC" "2025-07-17 16:30:33 UTC"
[25] "2025-07-21 18:16:11 UTC" "2025-08-07 03:26:12 UTC"
[27] "2025-08-07 06:14:20 UTC" "2025-08-14 10:50:16 UTC"
[29] "2025-08-14 13:14:28 UTC" "2025-08-18 14:13:21 UTC"
[31] "2025-08-18 14:13:25 UTC" "2025-08-18 14:20:05 UTC"
[33] "2025-08-18 14:21:42 UTC" "2025-08-18 14:22:27 UTC"
[35] "2025-08-18 14:32:45 UTC" "2025-08-18 14:36:32 UTC"
[37] "2025-08-18 14:41:36 UTC" "2025-08-18 15:02:17 UTC"
[39] "2025-08-18 15:03:44 UTC" "2025-08-18 15:11:15 UTC"
[41] "2025-08-18 15:17:08 UTC" "2025-08-18 15:33:55 UTC"
[43] "2025-08-18 16:05:34 UTC" "2025-08-18 16:26:12 UTC"
[45] "2025-08-18 16:37:16 UTC" "2025-08-18 17:01:50 UTC"
[47] "2025-08-18 17:04:25 UTC" "2025-08-18 17:39:56 UTC"
[49] "2025-08-18 17:54:24 UTC" "2025-08-18 19:25:53 UTC"
[51] "2025-08-18 20:05:45 UTC" "2025-08-18 20:18:35 UTC"
[53] "2025-08-18 20:19:11 UTC" "2025-08-18 21:08:58 UTC"
[55] "2025-08-18 21:39:20 UTC" "2025-08-18 21:44:46 UTC"
[57] "2025-08-19 04:36:05 UTC" "2025-08-19 05:32:17 UTC"
[59] "2025-08-19 08:38:26 UTC" "2025-08-19 10:16:41 UTC"
[61] "2025-08-19 12:19:16 UTC" "2025-08-19 21:14:41 UTC"
[63] "2025-08-20 16:42:47 UTC" "2025-08-20 16:46:44 UTC"
[65] "2025-08-21 07:14:26 UTC" "2025-08-21 11:16:30 UTC"
[67] "2025-08-21 15:06:58 UTC" "2025-08-21 19:15:00 UTC"
[69] "2025-08-25 10:01:14 UTC" "2025-08-25 11:40:27 UTC"
[71] "2025-08-25 12:59:19 UTC" "2025-08-25 13:36:30 UTC"
[73] "2025-08-25 14:19:52 UTC" "2025-08-25 14:34:30 UTC"
[75] "2025-08-25 15:20:55 UTC" "2025-08-25 22:08:12 UTC"
[77] "2025-08-26 16:39:16 UTC" "2025-08-26 21:15:46 UTC"
[79] "2025-08-26 21:55:01 UTC" "2025-08-27 07:22:11 UTC"
[81] "2025-08-27 08:54:56 UTC" "2025-08-27 10:10:05 UTC"
[83] "2025-08-27 10:48:52 UTC" "2025-08-27 10:58:50 UTC"
[85] "2025-09-27 17:37:01 UTC" "2025-09-27 17:49:35 UTC"
[87] "2025-09-27 19:36:00 UTC" "2025-09-27 19:38:19 UTC"
[89] "2025-09-27 20:08:53 UTC" "2025-09-27 21:34:59 UTC"
[91] "2025-09-27 22:07:38 UTC" "2025-09-27 22:08:15 UTC"
[93] "2025-09-27 22:22:53 UTC" "2025-09-27 22:46:36 UTC"
[95] "2025-09-27 23:02:34 UTC" "2025-09-27 23:32:52 UTC"
[97] "2025-09-28 00:01:15 UTC" "2025-09-28 01:21:15 UTC"
[99] "2025-09-28 01:56:07 UTC" "2025-09-28 05:58:47 UTC"
[101] "2025-09-28 07:07:33 UTC" "2025-09-28 07:14:16 UTC"
[103] "2025-09-28 08:40:51 UTC" "2025-09-28 09:03:25 UTC"
[105] "2025-09-28 09:25:41 UTC" "2025-09-28 09:27:07 UTC"
[107] "2025-09-28 09:29:47 UTC" "2025-09-28 09:47:06 UTC"
[109] "2025-09-28 09:54:05 UTC" "2025-09-28 10:05:03 UTC"
[111] "2025-09-28 10:50:59 UTC" "2025-09-28 10:56:09 UTC"
[113] "2025-09-28 11:12:17 UTC" "2025-09-28 11:34:06 UTC"
[115] "2025-09-28 11:36:37 UTC" "2025-09-28 11:54:28 UTC"
[117] "2025-09-28 13:23:18 UTC" "2025-09-28 13:42:13 UTC"
[119] "2025-09-28 13:48:08 UTC" "2025-09-28 14:23:16 UTC"
[121] "2025-09-28 16:11:45 UTC" "2025-09-28 17:41:16 UTC"
[123] "2025-09-28 17:50:21 UTC" "2025-09-28 18:24:26 UTC"
[125] "2025-09-28 18:33:49 UTC" "2025-09-28 19:06:36 UTC"
[127] "2025-09-28 19:24:51 UTC" "2025-09-28 19:27:03 UTC"
[129] "2025-09-28 19:28:18 UTC" "2025-09-28 19:52:35 UTC"
[131] "2025-09-28 20:16:55 UTC" "2025-09-28 20:20:27 UTC"
[133] "2025-09-28 20:25:27 UTC" "2025-09-28 20:34:28 UTC"
[135] "2025-09-28 20:53:57 UTC" "2025-09-28 20:56:38 UTC"
[137] "2025-09-28 21:14:36 UTC" "2025-09-28 21:36:20 UTC"
[139] "2025-09-28 22:15:15 UTC" "2025-09-28 23:07:11 UTC"
[141] "2025-09-29 05:57:18 UTC" "2025-09-29 06:53:04 UTC"
[143] "2025-09-29 10:07:12 UTC" "2025-09-29 11:35:42 UTC"
[145] "2025-09-29 13:47:10 UTC" "2025-09-29 13:58:31 UTC"
[147] "2025-09-29 15:58:04 UTC" "2025-09-29 16:39:03 UTC"
[149] "2025-09-29 20:29:55 UTC" "2025-09-29 20:39:41 UTC"
[151] "2025-09-29 21:19:11 UTC" "2025-09-29 22:33:22 UTC"
[153] "2025-09-30 07:37:44 UTC" "2025-09-30 07:48:01 UTC"
[155] "2025-09-30 10:22:01 UTC" "2025-09-30 11:36:50 UTC"
[157] "2025-09-30 13:07:32 UTC" "2025-09-30 13:28:37 UTC"
[159] "2025-09-30 16:59:48 UTC" "2025-09-30 21:38:09 UTC"
[161] "2025-10-01 08:09:22 UTC" "2025-10-01 08:27:53 UTC"
[163] "2025-10-01 08:37:36 UTC" "2025-10-01 12:08:16 UTC"
[165] "2025-10-01 14:14:27 UTC" "2025-10-01 14:19:21 UTC"
[167] "2025-10-01 14:21:59 UTC" "2025-10-01 14:23:04 UTC"
[169] "2025-10-01 14:27:03 UTC" "2025-10-01 14:28:44 UTC"
[171] "2025-10-01 14:29:35 UTC" "2025-10-01 14:30:19 UTC"
[173] "2025-10-01 14:30:28 UTC" "2025-10-01 14:34:14 UTC"
[175] "2025-10-01 14:35:11 UTC" "2025-10-01 14:35:56 UTC"
[177] "2025-10-01 14:36:38 UTC" "2025-10-01 14:38:10 UTC"
[179] "2025-10-01 14:42:47 UTC" "2025-10-01 14:43:23 UTC"
[181] "2025-10-01 14:44:46 UTC" "2025-10-01 14:45:03 UTC"
[183] "2025-10-01 14:46:49 UTC" "2025-10-01 14:49:43 UTC"
[185] "2025-10-01 14:53:34 UTC" "2025-10-01 14:53:59 UTC"
[187] "2025-10-01 14:56:44 UTC" "2025-10-01 14:58:30 UTC"
[189] "2025-10-01 15:02:03 UTC" "2025-10-01 15:02:20 UTC"
[191] "2025-10-01 15:02:21 UTC" "2025-10-01 15:03:15 UTC"
[193] "2025-10-01 15:05:52 UTC" "2025-10-01 15:08:03 UTC"
[195] "2025-10-01 15:09:10 UTC" "2025-10-01 15:09:41 UTC"
[197] "2025-10-01 15:10:28 UTC" "2025-10-01 15:12:55 UTC"
[199] "2025-10-01 15:12:56 UTC" "2025-10-01 15:13:49 UTC"
[201] "2025-10-01 15:16:50 UTC" "2025-10-01 15:21:31 UTC"
[203] "2025-10-01 15:21:44 UTC" "2025-10-01 15:27:09 UTC"
[205] "2025-10-01 15:28:23 UTC" "2025-10-01 15:31:35 UTC"
[207] "2025-10-01 15:36:59 UTC" "2025-10-01 15:43:29 UTC"
[209] "2025-10-01 15:45:38 UTC" "2025-10-01 15:48:19 UTC"
[211] "2025-10-01 15:49:19 UTC" "2025-10-01 15:59:22 UTC"
[213] "2025-10-01 16:11:51 UTC" "2025-10-01 16:22:31 UTC"
[215] "2025-10-01 16:24:38 UTC" "2025-10-01 16:38:26 UTC"
[217] "2025-10-01 16:46:44 UTC" "2025-10-01 16:48:28 UTC"
[219] "2025-10-01 16:53:46 UTC" "2025-10-01 16:54:14 UTC"
[221] "2025-10-01 16:57:42 UTC" "2025-10-01 16:59:52 UTC"
[223] "2025-10-01 17:16:51 UTC" "2025-10-01 17:23:50 UTC"
[225] "2025-10-01 17:26:36 UTC" "2025-10-01 17:33:39 UTC"
[227] "2025-10-01 17:35:32 UTC" "2025-10-01 17:52:55 UTC"
[229] "2025-10-01 18:30:45 UTC" "2025-10-01 18:31:13 UTC"
[231] "2025-10-01 18:34:32 UTC" "2025-10-01 18:42:37 UTC"
[233] "2025-10-01 18:44:24 UTC" "2025-10-01 18:46:07 UTC"
[235] "2025-10-01 18:47:31 UTC" "2025-10-01 18:51:11 UTC"
[237] "2025-10-01 19:37:24 UTC" "2025-10-01 19:48:25 UTC"
[239] "2025-10-01 20:09:08 UTC" "2025-10-01 21:49:04 UTC"
[241] "2025-10-01 21:57:08 UTC" "2025-10-01 22:02:17 UTC"
[243] "2025-10-01 22:06:45 UTC" "2025-10-01 22:22:02 UTC"
[245] "2025-10-01 22:50:17 UTC" "2025-10-01 23:01:12 UTC"
[247] "2025-10-01 23:10:08 UTC" "2025-10-02 00:38:30 UTC"
[249] "2025-10-02 01:04:22 UTC" "2025-10-02 07:12:07 UTC"
[251] "2025-10-02 07:31:48 UTC" "2025-10-02 07:51:08 UTC"
[253] "2025-10-02 07:58:25 UTC" "2025-10-02 09:50:07 UTC"
[255] "2025-10-02 09:50:26 UTC" "2025-10-02 09:57:42 UTC"
[257] "2025-10-02 10:15:18 UTC" "2025-10-02 10:36:42 UTC"
[259] "2025-10-02 10:49:29 UTC" "2025-10-02 11:51:17 UTC"
[261] "2025-10-02 12:11:15 UTC" "2025-10-02 12:46:21 UTC"
[263] "2025-10-02 15:38:57 UTC" "2025-10-02 16:26:08 UTC"
[265] "2025-10-02 16:34:41 UTC" "2025-10-02 16:45:00 UTC"
[267] "2025-10-02 18:34:57 UTC" "2025-10-02 18:49:46 UTC"
[269] "2025-10-02 20:41:51 UTC" "2025-10-02 20:55:13 UTC"
[271] "2025-10-02 21:07:35 UTC" "2025-10-03 07:36:32 UTC"
[273] "2025-10-03 10:18:03 UTC" "2025-10-03 17:32:14 UTC"
[275] "2025-10-04 09:30:07 UTC" "2025-10-04 09:33:56 UTC"
[277] "2025-10-04 10:04:28 UTC" "2025-10-04 11:34:20 UTC"
[279] "2025-10-04 11:52:47 UTC" "2025-10-04 12:15:32 UTC"
[281] "2025-10-04 12:17:32 UTC" "2025-10-04 12:38:26 UTC"
[283] "2025-10-04 12:56:12 UTC" "2025-10-04 18:17:13 UTC"
[285] "2025-10-05 08:20:58 UTC" "2025-10-05 08:29:13 UTC"
[287] "2025-10-05 08:39:32 UTC" "2025-10-05 09:20:14 UTC"
[289] "2025-10-05 09:39:24 UTC" "2025-10-05 10:22:09 UTC"
[291] "2025-10-05 10:33:20 UTC" "2025-10-05 10:40:03 UTC"
[293] "2025-10-05 11:14:39 UTC" "2025-10-05 12:32:12 UTC"
[295] "2025-10-05 13:25:09 UTC" "2025-10-05 16:34:23 UTC"
[297] "2025-10-05 16:38:02 UTC" "2025-10-05 16:45:30 UTC"
[299] "2025-10-05 16:56:47 UTC" "2025-10-05 19:18:36 UTC"
[301] "2025-10-05 21:46:19 UTC" "2025-10-05 22:29:05 UTC"
[303] "2025-10-06 09:34:57 UTC" "2025-10-06 09:42:48 UTC"
[305] "2025-10-06 10:01:12 UTC" "2025-10-06 10:13:41 UTC"
[307] "2025-10-06 10:23:57 UTC" "2025-10-06 10:35:16 UTC"
[309] "2025-10-06 11:01:57 UTC" "2025-10-06 11:23:42 UTC"
[311] "2025-10-06 11:27:34 UTC" "2025-10-06 11:27:59 UTC"
[313] "2025-10-06 11:48:57 UTC" "2025-10-06 12:11:32 UTC"
[315] "2025-10-06 13:29:36 UTC" "2025-10-06 13:29:38 UTC"
[317] "2025-10-06 13:30:32 UTC" "2025-10-06 13:40:03 UTC"
[319] "2025-10-06 14:31:39 UTC" "2025-10-06 15:55:44 UTC"
[321] "2025-10-06 16:09:25 UTC" "2025-10-06 16:15:36 UTC"
[323] "2025-10-06 16:22:09 UTC" "2025-10-06 16:54:38 UTC"
[325] "2025-10-06 17:13:54 UTC" "2025-10-06 17:21:02 UTC"
[327] "2025-10-06 18:02:15 UTC" "2025-10-06 18:56:40 UTC"
[329] "2025-10-06 18:58:36 UTC" "2025-10-06 19:02:53 UTC"
[331] "2025-10-06 20:02:52 UTC" "2025-10-06 20:39:14 UTC"
[333] "2025-10-06 21:02:32 UTC" "2025-10-07 00:37:33 UTC"
[335] "2025-10-07 05:49:30 UTC" "2025-10-07 08:38:26 UTC"
[337] "2025-10-07 08:45:50 UTC" "2025-10-07 10:09:19 UTC"
[339] "2025-10-07 10:17:42 UTC" "2025-10-07 12:55:59 UTC"
[341] "2025-10-07 15:25:27 UTC" "2025-10-07 18:27:31 UTC"
[343] "2025-10-07 22:26:03 UTC" "2025-10-08 09:39:35 UTC"
[345] "2025-10-08 09:40:40 UTC" "2025-10-08 11:33:29 UTC"
[347] "2025-10-08 13:40:14 UTC" "2025-10-09 10:15:57 UTC"
[349] "2025-10-09 11:11:45 UTC" "2025-10-09 13:27:17 UTC"
[351] "2025-10-09 15:26:02 UTC" "2025-10-09 15:37:04 UTC"
[353] "2025-10-09 15:52:19 UTC" "2025-10-09 16:02:24 UTC"
[355] "2025-10-09 16:17:09 UTC" "2025-10-09 16:45:00 UTC"
[357] "2025-10-09 17:00:59 UTC" "2025-10-09 18:47:31 UTC"
[359] "2025-10-09 21:45:23 UTC" "2025-10-09 23:41:15 UTC"
[361] "2025-10-10 00:48:51 UTC" "2025-10-10 10:50:47 UTC"
[363] "2025-10-10 10:51:13 UTC" "2025-10-10 10:53:00 UTC"
[365] "2025-10-10 10:53:38 UTC" "2025-10-10 10:59:26 UTC"
[367] "2025-10-10 11:00:17 UTC" "2025-10-10 11:00:42 UTC"
[369] "2025-10-10 11:19:10 UTC" "2025-10-10 11:30:59 UTC"
[371] "2025-10-10 11:32:21 UTC" "2025-10-10 11:32:48 UTC"
[373] "2025-10-10 11:32:58 UTC" "2025-10-10 11:36:40 UTC"
[375] "2025-10-10 11:39:58 UTC" "2025-10-10 11:42:15 UTC"
[377] "2025-10-10 11:43:04 UTC" "2025-10-10 11:45:44 UTC"
[379] "2025-10-10 11:49:30 UTC" "2025-10-10 11:51:41 UTC"
[381] "2025-10-10 12:01:33 UTC" "2025-10-10 12:05:27 UTC"
[383] "2025-10-10 12:11:03 UTC" "2025-10-10 12:18:30 UTC"
[385] "2025-10-10 12:20:49 UTC" "2025-10-10 12:21:42 UTC"
[387] "2025-10-10 12:30:02 UTC" "2025-10-10 13:58:41 UTC"
[389] "2025-10-10 14:03:34 UTC" "2025-10-10 14:04:33 UTC"
[391] "2025-10-10 14:05:16 UTC" "2025-10-10 14:05:59 UTC"
[393] "2025-10-10 14:06:43 UTC" "2025-10-10 14:08:31 UTC"
[395] "2025-10-10 14:09:05 UTC" "2025-10-10 14:09:45 UTC"
[397] "2025-10-10 14:15:59 UTC" "2025-10-10 14:17:06 UTC"
[399] "2025-10-10 14:19:51 UTC" "2025-10-10 14:20:43 UTC"
[401] "2025-10-10 14:23:39 UTC" "2025-10-10 14:23:57 UTC"
[403] "2025-10-10 14:26:00 UTC" "2025-10-10 14:36:06 UTC"
[405] "2025-10-10 14:37:00 UTC" "2025-10-10 14:39:47 UTC"
[407] "2025-10-10 14:45:58 UTC" "2025-10-10 14:58:22 UTC"
[409] "2025-10-10 14:59:18 UTC" "2025-10-10 15:01:13 UTC"
[411] "2025-10-10 15:02:35 UTC" "2025-10-10 15:05:42 UTC"
[413] "2025-10-10 15:23:01 UTC" "2025-10-10 15:33:59 UTC"
[415] "2025-10-10 15:35:09 UTC" "2025-10-10 15:35:17 UTC"
[417] "2025-10-10 15:36:20 UTC" "2025-10-10 15:36:35 UTC"
[419] "2025-10-10 15:37:19 UTC" "2025-10-10 20:13:59 UTC"
[421] "2025-10-10 20:14:58 UTC" "2025-10-10 20:33:32 UTC"
[423] "2025-10-11 02:12:05 UTC" "2025-10-11 02:19:11 UTC"
[425] "2025-10-11 10:54:31 UTC" "2025-10-11 14:03:44 UTC"
[427] "2025-10-11 16:53:49 UTC" "2025-10-11 17:08:13 UTC"
[429] "2025-10-11 22:38:55 UTC" "2025-10-11 23:54:24 UTC"
[431] "2025-10-12 04:00:15 UTC" "2025-10-12 22:52:14 UTC"
[433] "2025-10-13 09:33:44 UTC" "2025-10-14 07:05:13 UTC"
[435] "2025-10-15 08:44:40 UTC" "2025-10-16 11:02:20 UTC"
[437] "2025-10-16 14:31:50 UTC" "2025-10-16 14:56:37 UTC"
[439] "2025-10-17 19:35:54 UTC" "2025-10-17 19:38:39 UTC"
[441] "2025-10-22 15:45:52 UTC" "2025-10-24 18:12:53 UTC"
[443] "2025-10-30 09:21:03 UTC" "2025-10-30 21:31:03 UTC"
[445] "2025-11-05 07:23:29 UTC" "2025-11-07 15:27:37 UTC"
[447] "2025-11-24 21:11:33 UTC"
=====================================
apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceita_participar_da_pesquisa
[1] 1 2
=====================================
sexo
[1] 1 2 3
=====================================
faixa_etaria
[1] 1 2 3 4 5 6
=====================================
renda_familiar_mensal
[1] 1 2 3 4 5 6
=====================================
escolaridade
[1] 2 3 4 5 6 7 8
=====================================
cor_da_pele
[1] 1 2 3 4 5 6
=====================================
estado_civil
[1] 1 2 3 4 5
=====================================
qual_o_seu_estado
[1] 1 5 6 7 8 9 10 11 13 14 15 16 17 19 21 22 25 26
=====================================
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao
[1] 1 2 3
=====================================
voce_consome_suco_de_frutas
[1] 1 2
=====================================
se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_12
[1] 1 2 3
=====================================
voce_consome_bebida_alcoolica
[1] 1 2 3
=====================================
voce_fuma
[1] 1 2
=====================================
voce_pratica_alguma_atividade_fisica_regularmente
[1] 1 2
=====================================
se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_16
[1] 1 2 3
=====================================
se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_pode_marcar_mais_de_uma_opcao
[1] "Aula de dança"
[2] "Beach tenis (2 horas / 2 dias da semana)"
[3] "Bike"
[4] "Bike, escalada"
[5] "Calistenia"
[6] "Caminhada"
[7] "Caminhada,"
[8] "Caminhada, Corrida"
[9] "Caminhada, Corrida, cros fit"
[10] "Caminhada, Corrida, Esportes coletivos (futebol, vôlei, etc.)"
[11] "Caminhada, Corrida, Musculação"
[12] "Caminhada, Corrida, Musculação, Esportes coletivos (futebol, vôlei, etc.)"
[13] "Caminhada, Corrida, Musculação, Esportes coletivos (futebol, vôlei, etc.), Natação"
[14] "Caminhada, Corrida, Musculação, Yoga/Pilates"
[15] "Caminhada, Corrida, Yoga/Pilates"
[16] "Caminhada, Crossfit"
[17] "Caminhada, Esportes coletivos (futebol, vôlei, etc.)"
[18] "Caminhada, Esportes coletivos (futebol, vôlei, etc.),"
[19] "Caminhada, Luta"
[20] "Caminhada, Musculação"
[21] "Caminhada, musculação e bicicleta ergométrica"
[22] "Caminhada, Musculação, Dança"
[23] "Caminhada, Musculação, Esportes coletivos (futebol, vôlei, etc.)"
[24] "Caminhada, Musculação, Hidroginástica"
[25] "Caminhada, Yoga/Pilates"
[26] "Cardio"
[27] "Ciclismo"
[28] "Corrida"
[29] "Corrida, Esportes coletivos (futebol, vôlei, etc.)"
[30] "Corrida, Exercícios em casa com o peso do corpo."
[31] "Corrida, Jiu-jitsu"
[32] "Corrida, Musculação"
[33] "Corrida, Musculação, Aulas coletivas"
[34] "Corrida, Musculação, Crossfit"
[35] "Corrida, Musculação, Esportes coletivos (futebol, vôlei, etc.)"
[36] "Corrida, Musculação, Esportes coletivos (futebol, vôlei, etc.), Yoga/Pilates"
[37] "Corrida, Tênis"
[38] "Crosfit"
[39] "Crossfit"
[40] "Esportes coletivos (futebol, vôlei, etc.)"
[41] "Esportes coletivos (futebol, vôlei, etc.), Yoga/Pilates"
[42] "Faço caminhada, futebol e academia"
[43] "Funcional"
[44] "Funcional com musculação"
[45] "Funcional e musculação"
[46] "Futebol"
[47] "Musculação"
[48] "Musculação,"
[49] "Musculação, Crossfit"
[50] "Musculação, Dança"
[51] "Musculação, Esportes coletivos (futebol, vôlei, etc.)"
[52] "Musculação, Esportes coletivos (futebol, vôlei, etc.), Artes marciais"
[53] "Musculação, Esportes coletivos (futebol, vôlei, etc.), Natação"
[54] "Musculação, Esportes coletivos (futebol, vôlei, etc.), Yoga/Pilates"
[55] "Musculação, muai thay"
[56] "Musculação, Natação"
[57] "Musculação, Natação, Hidroginástica"
[58] "Musculação, Ritbox"
[59] "Musculação, Tênis"
[60] "Musculação, Yoga/Pilates"
[61] "Musculação, Yoga/Pilates, Dança"
[62] "Musculação, Zumba"
[63] "Não prático"
[64] "Natação"
[65] "Spinning"
[66] "Taí Chi Chuan"
[67] "Yoga/Pilates"
[68] "Yoga/Pilates,"
[69] "Yoga/Pilates, Pular corda"
=====================================
voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal
[1] 1 2
=====================================
se_voce_respondeu_sim_na_pergunta_anterior_qual_doenca_foi_diagnosticado_a
[1] "."
[2] "Ainda não descobri o que é, está sendo investigado"
[3] "Antrite crônica leve e Sindrome do intestino irritável"
[4] "Azia"
[5] "Celíaca"
[6] "Clostridium Difficile"
[7] "Colelitíase"
[8] "Cólica intestinal"
[9] "Constipação"
[10] "Disbiose"
[11] "distensao do megacolon"
[12] "Doença de Crohn"
[13] "Dor de barriga"
[14] "Esofagite"
[15] "Esofagite e gastrite"
[16] "esofagite herpética"
[17] "Gastrite"
[18] "Gastrite antral"
[19] "Gastrite e intolerância à lactose"
[20] "Gastrite Erosiva"
[21] "Gastrite fraca"
[22] "gastrite nervosa"
[23] "Gastrite nervosa"
[24] "Gastrite, refluxo, sensibilidade não celíaca ao glúten, intolerância a lactose"
[25] "Gastrite,hpilory"
[26] "gastrointerite"
[27] "Gastrointerite"
[28] "H. Pilory e Disbiose"
[29] "H.pylori"
[30] "Hashimoto, que é uma doença que ataca a tireóide mas afeta o intestino"
[31] "Hérnia de Hiato e Esofagite"
[32] "Intolerância a lactose"
[33] "Intolerância a Lactose"
[34] "Intolerância à lactose"
[35] "Intolerância a lactose / gastrite"
[36] "Intolerância lactose"
[37] "Intolerante"
[38] "Já tive pólipo no intestino, gastrite, sou intolerante a lactose"
[39] "Pangastrite"
[40] "Pólipo no intestino"
[41] "Refluxo"
[42] "Refluxo e gastrite"
[43] "Refluxo gástrico"
[44] "refluxo gastroesofágico"
[45] "Refluxo gastroesofágico"
[46] "Refluxo, gastrite nervosa"
[47] "Refluxo. Síndrome do Intestino Irritável."
[48] "Retocolite Ulcerativa"
[49] "sem nomes técnicos e cinéticos mas no comum e cotidiano (bactéria no estomago e a ferida na parede do estomago, que é própria gastrite ) fora os refluxos..."
[50] "SII"
[51] "Síndrome do intestino auto irritável"
[52] "Síndrome do intestino irritável"
[53] "Síndrome do intestino irritável com foodmap positivo pra lactose, maçã"
[54] "Síndrome do intestino nervoso"
[55] "sisdrome do estômago irritável"
[56] "Úlcera"
[57] "Úlcera duodenal e gastrite"
[58] "Úlcera gástrica e duodenal (já tratadas)."
=====================================
se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mais_de_uma_opcao
[1] "Azia"
[2] "Azia, Gases em excesso"
[3] "Azia, Gases em excesso, Diarreia"
[4] "Azia, Gases em excesso, Prisão de ventre (constipação)"
[5] "Azia, Inchaço abdominal"
[6] "Azia, Inchaço abdominal, Gases em excesso"
[7] "Azia, Inchaço abdominal, Gases em excesso, Diarreia"
[8] "Azia, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação)"
[9] "Azia, Inchaço abdominal, Prisão de ventre (constipação)"
[10] "Azia, Náuseas ou vômitos"
[11] "Azia, Náuseas ou vômitos, Inchaço abdominal, Gases em excesso"
[12] "Diarreia"
[13] "Dor abdominal"
[14] "Dor abdominal, Azia"
[15] "Dor abdominal, Azia, Gases em excesso"
[16] "Dor abdominal, Azia, Inchaço abdominal"
[17] "Dor abdominal, Azia, Inchaço abdominal, Gases em excesso"
[18] "Dor abdominal, Azia, Inchaço abdominal, Gases em excesso, Diarreia"
[19] "Dor abdominal, Azia, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação)"
[20] "Dor abdominal, Azia, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação), Diarreia"
[21] "Dor abdominal, Azia, Inchaço abdominal, Prisão de ventre (constipação)"
[22] "Dor abdominal, Azia, Náuseas ou vômitos"
[23] "Dor abdominal, Azia, Náuseas ou vômitos, Diarreia"
[24] "Dor abdominal, Azia, Náuseas ou vômitos, Gases em excesso"
[25] "Dor abdominal, Azia, Náuseas ou vômitos, Gases em excesso, Prisão de ventre (constipação)"
[26] "Dor abdominal, Azia, Náuseas ou vômitos, Inchaço abdominal, Gases em excesso"
[27] "Dor abdominal, Azia, Náuseas ou vômitos, Inchaço abdominal, Gases em excesso, Diarreia"
[28] "Dor abdominal, Azia, Náuseas ou vômitos, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação)"
[29] "Dor abdominal, Azia, Náuseas ou vômitos, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação), Diarreia"
[30] "Dor abdominal, Azia, Náuseas ou vômitos, Prisão de ventre (constipação)"
[31] "Dor abdominal, Inchaço abdominal, Gases em excesso"
[32] "Dor abdominal, Inchaço abdominal, Gases em excesso, Diarreia"
[33] "Dor abdominal, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação)"
[34] "Dor abdominal, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação), Diarreia"
[35] "Dor abdominal, Inchaço abdominal, Prisão de ventre (constipação)"
[36] "Dor abdominal, Náuseas ou vômitos"
[37] "Dor abdominal, Náuseas ou vômitos, Inchaço abdominal, Diarreia"
[38] "Dor abdominal, Náuseas ou vômitos, Inchaço abdominal, Gases em excesso, Diarreia"
[39] "Dor abdominal, Náuseas ou vômitos, Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação), Diarreia"
[40] "Gases em excesso"
[41] "Gases em excesso, Diarreia"
[42] "Gases em excesso, Prisão de ventre (constipação)"
[43] "Inchaço abdominal"
[44] "Inchaço abdominal, Gases em excesso"
[45] "Inchaço abdominal, Gases em excesso, Diarreia"
[46] "Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação)"
[47] "Inchaço abdominal, Gases em excesso, Prisão de ventre (constipação), Diarreia"
[48] "Náuseas ou vômitos"
[49] "Náuseas ou vômitos, Inchaço abdominal, Gases em excesso"
[50] "Prisão de ventre (constipação)"
=====================================
os_sintomas_gastrointestinais_interferem_nas_suas_atividades_diarias
[1] 1 2
=====================================
voce_esta_em_tratamento_medico_atualmente_para_algum_problema_gastrointestinal
[1] 1 2
=====================================
voce_sabe_o_que_sao_probioticos
[1] 1 2
=====================================
se_respondeu_sim_como_ficou_sabendo
[1] 1 2 3 4
=====================================
leia_o_texto_abaixo_sobre_probioticos_microrganismos_probioticos_sao_definidos_como_organismos_vivos_que_quando_consumidos_em_quantidades_adequadas_promovem_beneficios_a_saude_do_hospedeiro_por_essa_razao_podem_ser_incorporados_aos_alimentos_com_o_objetivo_de_desenvolver_produtos_com_propriedades_funcionais_contribuindo_para_o_equilibrio_da_microbiota_intestinal_e_a_melhoria_do_bem_estar_geral_fonte_hill_colin_et_al_the_international_scientific_association_for_probiotics_and_prebiotics_consensus_statement_on_the_scope_and_appropriate_use_of_the_term_probiotic_nature_reviews_gastroenterology_hepatology_s_l_v_11_n_8_p_506_514_10_jun_2014_springer_science_and_business_media_llc_http_dx_doi_org_10_1038_nrgastro_2014_66
[1] "A pergunta anterior poderia ter outra forma de responder"
[2] "Já fiz pesquisas na internet sobre probióticos. Nenhuma opção na pergunta anterior corresponde a minha resposta."
[3] "Lido"
[4] "Muito bom"
[5] "ok"
[6] "Ok"
[7] "Ok - na resposta acima não tem a opção correta para mim. Conheço pq estudei e sou da área de alimentos"
[8] "S"
[9] "Sim"
[10] "Sou nutricionista"
=====================================
apos_a_leitura_do_texto_acima_voce_acredita_que_o_consumo_de_probioticos_traz_beneficios_a_saude
[1] "1" "2 sei dizer"
=====================================
voce_se_sentiria_mais_motivado_a_a_consumir_probioticos_se_soubesse_que_eles_ajudam_a_equilibrar_a_flora_intestinal
[1] 1 2 3
=====================================
voce_consome_alimentos_ou_bebidas_com_probioticos
[1] 1 2 3
=====================================
se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_mais_de_uma_opcao
[1] "Cápsulas ou em pó"
[2] "Cápsulas ou em pó, Kefir, Kombucha, Leites fermentados"
[3] "Cápsulas ou em pó, Leites fermentados"
[4] "iogurte e missô"
[5] "Iogurtes e bebidas lácteas"
[6] "Iogurtes e bebidas lácteas, Cápsulas ou em pó"
[7] "Iogurtes e bebidas lácteas, Cápsulas ou em pó, Kombucha"
[8] "Iogurtes e bebidas lácteas, Cápsulas ou em pó, Leites fermentados"
[9] "Iogurtes e bebidas lácteas, Kefir"
[10] "Iogurtes e bebidas lácteas, Kefir, Kombucha"
[11] "Iogurtes e bebidas lácteas, Kefir, Kombucha, Leites fermentados"
[12] "Iogurtes e bebidas lácteas, Kefir, Leites fermentados"
[13] "Iogurtes e bebidas lácteas, Kimchi"
[14] "Iogurtes e bebidas lácteas, Kombucha"
[15] "Iogurtes e bebidas lácteas, Kombucha, Leites fermentados"
[16] "Iogurtes e bebidas lácteas, Leites fermentados"
[17] "Iogurtes e bebidas lácteas, Leites fermentados,"
[18] "Iogurtes e bebidas lácteas, Nattō"
[19] "Iogurtes e bebidas lácteas, Suplementos"
[20] "Iogurtes e bebidas lácteas, Suplementos, Cápsulas ou em pó"
[21] "Iogurtes e bebidas lácteas, Suplementos, Cápsulas ou em pó, Kombucha"
[22] "Iogurtes e bebidas lácteas, Suplementos, Kefir, Kombucha, Leites fermentados"
[23] "Iogurtes e bebidas lácteas, Suplementos, Kombucha"
[24] "Iogurtes e bebidas lácteas, Suplementos, Kombucha, Leites fermentados"
[25] "Iogurtes e bebidas lácteas, Suplementos, Leites fermentados"
[26] "Kefir"
[27] "Kefir, Leites fermentados"
[28] "Kombucha"
[29] "Kombucha, Leites fermentados"
[30] "Leites fermentados"
[31] "Não"
[32] "Suplementos"
[33] "Suplementos, Cápsulas ou em pó, Leites fermentados"
[34] "Suplementos, Kefir"
[35] "Suplementos, Kefir, Leites fermentados"
[36] "Suplementos, Kombucha"
[37] "Suplementos, Leites fermentados"
=====================================
se_consome_algum_dos_produtos_citados_acima_com_que_frequencia
[1] 1 2 3
=====================================
se_um_produto_destacar_contem_probioticos_no_rotulo_isso_influenciaria_sua_compra
[1] 1 2 3
=====================================
com_que_frequencia_voce_le_os_rotulos_dos_produtos
[1] "Às vezes" "Frequentemente" "Nunca" "Raramente"
[5] "Sempre"
=====================================
quais_informacoes_no_rotulo_mais_chamam_sua_atencao_pode_marcar_mais_de_uma_opcao
[1] "Calorias e valor nutricional"
[2] "Calorias e valor nutricional, Certificações (orgânico, natural, sem glúten, etc.)"
[3] "Calorias e valor nutricional, Presença de conservantes ou aditivos"
[4] "Certificações (orgânico, natural, sem glúten, etc.)"
[5] "Certificações (orgânico, natural, sem glúten, etc.),"
[6] "Lista de ingredientes"
[7] "Lista de ingredientes, Calorias e valor nutricional"
[8] "Lista de ingredientes, Calorias e valor nutricional, Certificações (orgânico, natural, sem glúten, etc.)"
[9] "Lista de ingredientes, Calorias e valor nutricional, Presença de conservantes ou aditivos"
[10] "Lista de ingredientes, Calorias e valor nutricional, Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.)"
[11] "Lista de ingredientes, Certificações (orgânico, natural, sem glúten, etc.)"
[12] "Lista de ingredientes, Presença de conservantes ou aditivos"
[13] "Lista de ingredientes, Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.)"
[14] "Lista de ingredientes, Quantidade de açúcares"
[15] "Lista de ingredientes, Quantidade de açúcares, Calorias e valor nutricional"
[16] "Lista de ingredientes, Quantidade de açúcares, Calorias e valor nutricional, Certificações (orgânico, natural, sem glúten, etc.)"
[17] "Lista de ingredientes, Quantidade de açúcares, Calorias e valor nutricional, Presença de conservantes ou aditivos"
[18] "Lista de ingredientes, Quantidade de açúcares, Calorias e valor nutricional, Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.)"
[19] "Lista de ingredientes, Quantidade de açúcares, Calorias e valor nutricional, Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.), O fabricante"
[20] "Lista de ingredientes, Quantidade de açúcares, Certificações (orgânico, natural, sem glúten, etc.)"
[21] "Lista de ingredientes, Quantidade de açúcares, Data de validade"
[22] "Lista de ingredientes, Quantidade de açúcares, Presença de conservantes ou aditivos"
[23] "Lista de ingredientes, Quantidade de açúcares, Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.)"
[24] "Lista de ingredientes, Quantidade de açúcares, Presença de conservantes ou aditivos, Data de validade"
[25] "Lista de ingredientes, Quantidade de sódio"
[26] "Lista de ingredientes, Sem lactose"
[27] "Nao olho nenhuma dessas informações"
[28] "Presença de conservantes ou aditivos"
[29] "Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.)"
[30] "Presença de conservantes ou aditivos, Preço"
[31] "Quantidade de açúcares"
[32] "Quantidade de açúcares, Calorias e valor nutricional"
[33] "Quantidade de açúcares, Calorias e valor nutricional, Certificações (orgânico, natural, sem glúten, etc.)"
[34] "Quantidade de açúcares, Calorias e valor nutricional, Presença de conservantes ou aditivos"
[35] "Quantidade de açúcares, Calorias e valor nutricional, Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.)"
[36] "Quantidade de açúcares, Certificações (orgânico, natural, sem glúten, etc.)"
[37] "Quantidade de açúcares, Data de validade"
[38] "Quantidade de açúcares, Presença de conservantes ou aditivos"
[39] "Quantidade de açúcares, Presença de conservantes ou aditivos,"
[40] "Quantidade de açúcares, Presença de conservantes ou aditivos, Certificações (orgânico, natural, sem glúten, etc.)"
[41] "Quantidade de açúcares, Sal"
=====================================
o_que_mais_te_incomoda_ao_ler_rotulos_pode_marcar_mais_de_uma_opcao
[1] "Falta de transparência sobre os ingredientes e benefícios"
[2] "Falta de transparência sobre os ingredientes e benefícios, Uso de termos técnicos sem explicação"
[3] "Informações confusas ou difíceis de entender"
[4] "Informações confusas ou difíceis de entender, Falta de transparência sobre os ingredientes e benefícios"
[5] "Informações confusas ou difíceis de entender, Falta de transparência sobre os ingredientes e benefícios, Uso de termos técnicos sem explicação"
[6] "Informações confusas ou difíceis de entender, Letras muito pequenas"
[7] "Informações confusas ou difíceis de entender, Letras muito pequenas, Falta de transparência sobre os ingredientes e benefícios"
[8] "Informações confusas ou difíceis de entender, Letras muito pequenas, Falta de transparência sobre os ingredientes e benefícios, Uso de termos técnicos sem explicação"
[9] "Informações confusas ou difíceis de entender, Letras muito pequenas, Uso de termos técnicos sem explicação"
[10] "Informações confusas ou difíceis de entender, Uso de termos técnicos sem explicação"
[11] "Letras muito pequenas"
[12] "Letras muito pequenas, Falta de transparência sobre os ingredientes e benefícios"
[13] "Letras muito pequenas, Falta de transparência sobre os ingredientes e benefícios, Uso de termos técnicos sem explicação"
[14] "Letras muito pequenas, Uso de termos técnicos sem explicação"
[15] "Nenhuma das opções me incomoda"
[16] "Uso de termos técnicos sem explicação"
=====================================
quais_fatores_influenciam_sua_escolha_ao_comprar_um_suco_pode_marcar_mais_de_uma_opcao
[1] "Benefícios à saúde"
[2] "Benefícios à saúde, Preço"
[3] "Benefícios à saúde, Rotulagem"
[4] "Marca"
[5] "Marca, Benefícios à saúde"
[6] "Marca, Benefícios à saúde, Preço"
[7] "Marca, Benefícios à saúde, Rotulagem"
[8] "Marca, Benefícios à saúde, Rotulagem, Preço"
[9] "Marca, Preço"
[10] "Marca, Rotulagem"
[11] "Preço"
[12] "Rotulagem"
[13] "Rotulagem, Preço"
[14] "Sabor"
[15] "Sabor, Benefícios à saúde"
[16] "Sabor, Benefícios à saúde, Preço"
[17] "Sabor, Benefícios à saúde, Rotulagem"
[18] "Sabor, Benefícios à saúde, Rotulagem, Preço"
[19] "Sabor, Marca"
[20] "Sabor, Marca, Benefícios à saúde"
[21] "Sabor, Marca, Benefícios à saúde, Preço"
[22] "Sabor, Marca, Benefícios à saúde, Rotulagem"
[23] "Sabor, Marca, Benefícios à saúde, Rotulagem, Preço"
[24] "Sabor, Marca, Preço"
[25] "Sabor, Marca, Rotulagem"
[26] "Sabor, Marca, Rotulagem, Preço"
[27] "Sabor, Preço"
[28] "Sabor, Rotulagem"
[29] "Sabor, Rotulagem, Preço"
=====================================
voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos
[1] 1 2
=====================================
observe_os_rotulos_abaixo_de_um_suco_misto_de_jabuticaba_e_morango_e_responda_as_proximas_questoes
[1] "4" "Ok" "Rótulo 3" "S" "Sim" "Vi"
=====================================
qual_dos_tres_rotulos_te_chamou_mais_atencao
[1] 1 2 3
=====================================
o_que_mais_chamou_sua_atencao_nos_rotulos_acima
[1] 1 2 3 4
=====================================
voce_ja_viu_ou_consumiu_sucos_com_probioticos
[1] 1 2
=====================================
o_que_te_faria_confiar_mais_em_um_suco_com_probioticos_pode_marcar_mais_de_uma_opcao
[1] "Aprovação de especialistas"
[2] "Aprovação de especialistas, Depoimentos de outros consumidores"
[3] "Aprovação de especialistas, Estudos científicos comprovando os benefícios"
[4] "Aprovação de especialistas, Estudos científicos comprovando os benefícios, Depoimentos de outros consumidores"
[5] "Aprovação de especialistas, Estudos científicos comprovando os benefícios, Rótulo informativo e transparente"
[6] "Aprovação de especialistas, Estudos científicos comprovando os benefícios, Rótulo informativo e transparente, Depoimentos de outros consumidores"
[7] "Aprovação de especialistas, Rótulo informativo e transparente"
[8] "Aprovação de especialistas, Rótulo informativo e transparente, Depoimentos de outros consumidores"
[9] "Depoimentos de outros consumidores"
[10] "Estudos científicos comprovando os benefícios"
[11] "Estudos científicos comprovando os benefícios, Depoimentos de outros consumidores"
[12] "Estudos científicos comprovando os benefícios, Rótulo informativo e transparente"
[13] "Estudos científicos comprovando os benefícios, Rótulo informativo e transparente, Depoimentos de outros consumidores"
[14] "Rótulo informativo e transparente"
[15] "Rótulo informativo e transparente, Depoimentos de outros consumidores"
=====================================
qual_o_valor_voce_estaria_disposto_a_a_pagar_por_uma_garrafa_300_m_l_deste_suco
[1] 1 2 3 4
20 Comentário metodológico
A inspeção das categorias observadas permite verificar se os códigos existentes na base são compatíveis com a legenda do questionário.
Antes da recodificação definitiva serão avaliados:
- categorias inexistentes;
- categorias vazias;
- erros de digitação;
- inconsistências entre códigos e legenda;
- categorias raras que poderão ser agrupadas nas análises inferenciais.
21 18 Dicionário preliminar da base
dicionario <-
tibble(
ordem = seq_along(names(banco)),
nome_original = names(banco),
classe_r = purrr::map_chr(
banco,
~class(.x)[1]
),
n_ausentes = purrr::map_int(
banco,
~sum(is.na(.x))
),
categorias = purrr::map_int(
banco,
~dplyr::n_distinct(.x, na.rm = TRUE)
)
)
dicionario# A tibble: 42 × 5
ordem nome_original classe_r n_ausentes categorias
<int> <chr> <chr> <int> <int>
1 1 carimbo_de_data_hora POSIXct 0 447
2 2 apos_ler_o_termo_de_consentimento_livre… numeric 0 2
3 3 sexo numeric 0 3
4 4 faixa_etaria numeric 0 6
5 5 renda_familiar_mensal numeric 0 6
6 6 escolaridade numeric 0 7
7 7 cor_da_pele numeric 0 6
8 8 estado_civil numeric 0 5
9 9 qual_o_seu_estado numeric 0 18
10 10 voce_se_considera_uma_pessoa_preocupada… numeric 0 3
# ℹ 32 more rows
22 19 Exportação do dicionário
openxlsx::write.xlsx(
dicionario,
file = "resultados/dicionario_preliminar.xlsx",
overwrite = TRUE
)23 20 Objetos do ambiente
ls()[1] "banco" "dados_ausentes" "diagnostico"
[4] "dicionario" "explorar_variavel" "nomes_variaveis"
[7] "qualidade_base" "tipos_variaveis" "variaveis_categoricas"
24 21 Memória utilizada
utils::object.size(
banco
)196408 bytes
25 22 Salvando objeto principal
saveRDS(
banco,
"objetos/banco_limpo.rds"
)26 23 Verificação final do módulo
cat(
"Respondentes:",
nrow(banco),
"\n"
)Respondentes: 447
cat(
"Variáveis:",
ncol(banco),
"\n"
)Variáveis: 42
cat(
"Valores ausentes:",
sum(is.na(banco)),
"\n"
)Valores ausentes: 2304
27 Encerramento do Módulo 1
Ao final deste módulo foram concluídas as seguintes etapas:
- importação da planilha;
- inspeção estrutural da base;
- identificação de dados ausentes;
- verificação das classes das variáveis;
- exploração das categorias observadas;
- construção do dicionário preliminar;
- exportação do dicionário;
- armazenamento da base em formato
.rds.
A partir deste ponto, a base encontra-se preparada para a recodificação sistemática das variáveis conforme a legenda do questionário.
28 2 Dicionário estatístico das variáveis
28.1 2.1 Construção automática do dicionário
#------------------------------------------------------------
# Classificação das variáveis segundo sua natureza estatística
#------------------------------------------------------------
dicionario <-
tibble(
ordem = 1:42,
variavel = names(banco),
descricao = c(
"Carimbo de data e hora",
"Aceite do TCLE",
"Sexo",
"Faixa etária",
"Renda familiar mensal",
"Escolaridade",
"Cor da pele",
"Estado civil",
"Estado brasileiro",
"Preocupação com saúde",
"Consumo de suco",
"Frequência de consumo de suco",
"Consumo de bebida alcoólica",
"Tabagismo",
"Prática de atividade física",
"Frequência da atividade física",
"Tipo de atividade física",
"Diagnóstico gastrointestinal",
"Doença gastrointestinal",
"Sintomas gastrointestinais",
"Interferência dos sintomas",
"Tratamento gastrointestinal",
"Conhecimento sobre probióticos",
"Fonte de conhecimento",
"Texto informativo",
"Acredita nos benefícios",
"Motivação para consumir",
"Consumo de probióticos",
"Produtos consumidos",
"Frequência de consumo",
"Influência do rótulo",
"Leitura dos rótulos",
"Informações mais observadas",
"Dificuldades na leitura",
"Fatores de compra",
"Compraria o suco",
"Avaliação dos rótulos",
"Rótulo preferido",
"Aspecto mais atrativo",
"Já consumiu",
"Fatores de confiança",
"Disposição a pagar"
),
natureza = c(
"Data",
"Binária",
"Nominal",
"Ordinal",
"Ordinal",
"Ordinal",
"Nominal",
"Nominal",
"Nominal",
"Ordinal",
"Binária",
"Ordinal",
"Ordinal",
"Binária",
"Binária",
"Ordinal",
"Múltipla resposta",
"Binária",
"Texto",
"Múltipla resposta",
"Binária",
"Binária",
"Binária",
"Nominal",
"Texto",
"Ordinal",
"Ordinal",
"Ordinal",
"Múltipla resposta",
"Ordinal",
"Ordinal",
"Ordinal",
"Múltipla resposta",
"Múltipla resposta",
"Múltipla resposta",
"Binária",
"Imagem",
"Nominal",
"Nominal",
"Binária",
"Múltipla resposta",
"Ordinal"
)
)
dicionario# A tibble: 42 × 4
ordem variavel descricao natureza
<int> <chr> <chr> <chr>
1 1 carimbo_de_data_hora Carimbo … Data
2 2 apos_ler_o_termo_de_consentimento_livre_e_esclareci… Aceite d… Binária
3 3 sexo Sexo Nominal
4 4 faixa_etaria Faixa et… Ordinal
5 5 renda_familiar_mensal Renda fa… Ordinal
6 6 escolaridade Escolari… Ordinal
7 7 cor_da_pele Cor da p… Nominal
8 8 estado_civil Estado c… Nominal
9 9 qual_o_seu_estado Estado b… Nominal
10 10 voce_se_considera_uma_pessoa_preocupada_com_a_saude… Preocupa… Ordinal
# ℹ 32 more rows
29 2.2 Conferência do dicionário
stopifnot(
nrow(dicionario) == ncol(banco)
)30 2.3 Resumo das naturezas das variáveis
dicionario |>
count(
natureza,
sort = TRUE
)# A tibble: 7 × 2
natureza n
<chr> <int>
1 Ordinal 14
2 Binária 10
3 Múltipla resposta 7
4 Nominal 7
5 Texto 2
6 Data 1
7 Imagem 1
31 2.4 Distribuição gráfica
dicionario |>
count(
natureza
) |>
ggplot(
aes(
x = reorder(
natureza,
n
),
y = n
)
) +
geom_col(
fill = "#3366CC"
) +
coord_flip() +
labs(
x = "",
y = "Número de variáveis",
title = "Natureza estatística das variáveis"
)32 2.5 Variáveis múltiplas respostas
dicionario |>
filter(
natureza == "Múltipla resposta"
)# A tibble: 7 × 4
ordem variavel descricao natureza
<int> <chr> <chr> <chr>
1 17 se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_… Tipo de … Múltipl…
2 20 se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_mar… Sintomas… Múltipl…
3 29 se_consome_quais_voce_tem_o_habito_de_consumir_pode_… Produtos… Múltipl…
4 33 quais_informacoes_no_rotulo_mais_chamam_sua_atencao_… Informaç… Múltipl…
5 34 o_que_mais_te_incomoda_ao_ler_rotulos_pode_marcar_ma… Dificuld… Múltipl…
6 35 quais_fatores_influenciam_sua_escolha_ao_comprar_um_… Fatores … Múltipl…
7 41 o_que_te_faria_confiar_mais_em_um_suco_com_probiotic… Fatores … Múltipl…
33 2.6 Variáveis ordinais
dicionario |>
filter(
natureza == "Ordinal"
)# A tibble: 14 × 4
ordem variavel descricao natureza
<int> <chr> <chr> <chr>
1 4 faixa_etaria Faixa et… Ordinal
2 5 renda_familiar_mensal Renda fa… Ordinal
3 6 escolaridade Escolari… Ordinal
4 10 voce_se_considera_uma_pessoa_preocupada_com_a_saude… Preocupa… Ordinal
5 12 se_voce_marcou_sim_na_resposta_anterior_com_qual_fr… Frequênc… Ordinal
6 13 voce_consome_bebida_alcoolica Consumo … Ordinal
7 16 se_voce_marcou_sim_na_resposta_anterior_com_qual_fr… Frequênc… Ordinal
8 26 apos_a_leitura_do_texto_acima_voce_acredita_que_o_c… Acredita… Ordinal
9 27 voce_se_sentiria_mais_motivado_a_a_consumir_probiot… Motivaçã… Ordinal
10 28 voce_consome_alimentos_ou_bebidas_com_probioticos Consumo … Ordinal
11 30 se_consome_algum_dos_produtos_citados_acima_com_que… Frequênc… Ordinal
12 31 se_um_produto_destacar_contem_probioticos_no_rotulo… Influênc… Ordinal
13 32 com_que_frequencia_voce_le_os_rotulos_dos_produtos Leitura … Ordinal
14 42 qual_o_valor_voce_estaria_disposto_a_a_pagar_por_um… Disposiç… Ordinal
34 2.7 Variáveis nominais
dicionario |>
filter(
natureza == "Nominal"
)# A tibble: 7 × 4
ordem variavel descricao natureza
<int> <chr> <chr> <chr>
1 3 sexo Sexo Nominal
2 7 cor_da_pele Cor da pele Nominal
3 8 estado_civil Estado civil Nominal
4 9 qual_o_seu_estado Estado brasile… Nominal
5 24 se_respondeu_sim_como_ficou_sabendo Fonte de conhe… Nominal
6 38 qual_dos_tres_rotulos_te_chamou_mais_atencao Rótulo preferi… Nominal
7 39 o_que_mais_chamou_sua_atencao_nos_rotulos_acima Aspecto mais a… Nominal
35 2.8 Variáveis binárias
dicionario |>
filter(
natureza == "Binária"
)# A tibble: 10 × 4
ordem variavel descricao natureza
<int> <chr> <chr> <chr>
1 2 apos_ler_o_termo_de_consentimento_livre_e_esclareci… Aceite d… Binária
2 11 voce_consome_suco_de_frutas Consumo … Binária
3 14 voce_fuma Tabagismo Binária
4 15 voce_pratica_alguma_atividade_fisica_regularmente Prática … Binária
5 18 voce_ja_foi_diagnosticado_com_alguma_doenca_gastroi… Diagnóst… Binária
6 21 os_sintomas_gastrointestinais_interferem_nas_suas_a… Interfer… Binária
7 22 voce_esta_em_tratamento_medico_atualmente_para_algu… Tratamen… Binária
8 23 voce_sabe_o_que_sao_probioticos Conhecim… Binária
9 36 voce_compraria_um_suco_misto_de_jabuticaba_e_morang… Comprari… Binária
10 40 voce_ja_viu_ou_consumiu_sucos_com_probioticos Já consu… Binária
36 Comentário metodológico
O dicionário estatístico representa a estrutura conceitual do banco de dados.
Cada variável foi classificada conforme sua natureza estatística, respeitando o delineamento do questionário e a legenda fornecida.
Essa classificação será utilizada automaticamente nas etapas seguintes para definir:
- tipo de tabela;
- tipo de gráfico;
- teste estatístico apropriado;
- modelo de regressão adequado;
- forma de apresentação dos resultados.
Dessa forma, evita-se o tratamento inadequado de variáveis ordinais como quantitativas e garante-se consistência metodológica em todo o relatório.
37 2.9 Funções gerais de recodificação
#===========================================================
# FUNÇÃO PARA VARIÁVEIS NOMINAIS
#===========================================================
recodificar_nominal <- function(x, labels){
factor(
x,
levels = seq_along(labels),
labels = labels
)
}
#===========================================================
# FUNÇÃO PARA VARIÁVEIS ORDINAIS
#===========================================================
recodificar_ordinal <- function(x, labels){
ordered(
x,
levels = seq_along(labels),
labels = labels
)
}
#===========================================================
# FUNÇÃO PARA VARIÁVEIS BINÁRIAS
#===========================================================
recodificar_binaria <- function(x, labels){
factor(
x,
levels = c(1,2),
labels = labels
)
}38 2.10 Recodificação das variáveis sociodemográficas
banco <- banco |>
mutate(
sexo =
recodificar_nominal(
sexo,
c(
"Masculino",
"Feminino",
"Prefiro não identificar"
)
),
faixa_etaria =
recodificar_ordinal(
faixa_etaria,
c(
"18 a 25 anos",
"26 a 31 anos",
"32 a 39 anos",
"40 a 47 anos",
"48 a 55 anos",
"Acima de 55 anos"
)
),
renda_familiar_mensal =
recodificar_ordinal(
renda_familiar_mensal,
c(
"Até 1 salário mínimo",
"2 a 3 salários",
"3 a 5 salários",
"5 a 10 salários",
"Mais de 10 salários",
"Prefiro não declarar"
)
),
escolaridade =
recodificar_ordinal(
escolaridade,
c(
"Fundamental incompleto",
"Fundamental completo",
"Médio incompleto",
"Médio completo",
"Superior incompleto",
"Superior completo",
"Pós-graduação incompleta",
"Pós-graduação completa"
)
),
cor_da_pele =
recodificar_nominal(
cor_da_pele,
c(
"Amarela",
"Branca",
"Parda",
"Preta",
"Indígena",
"Prefiro não declarar"
)
),
estado_civil =
recodificar_nominal(
estado_civil,
c(
"Solteiro(a)",
"Casado(a)",
"Viúvo(a)",
"Divorciado(a)",
"União estável"
)
)
)39 2.11 Recodificação da variável Estado
estados <- c(
"Acre",
"Alagoas",
"Amapá",
"Amazonas",
"Bahia",
"Ceará",
"Distrito Federal",
"Espírito Santo",
"Goiás",
"Maranhão",
"Mato Grosso",
"Mato Grosso do Sul",
"Minas Gerais",
"Pará",
"Paraíba",
"Paraná",
"Pernambuco",
"Piauí",
"Rio de Janeiro",
"Rio Grande do Norte",
"Rio Grande do Sul",
"Rondônia",
"Roraima",
"Santa Catarina",
"São Paulo",
"Sergipe",
"Tocantins"
)
banco <- banco |>
mutate(
qual_o_seu_estado =
recodificar_nominal(
qual_o_seu_estado,
estados
)
)
rm(estados)40 2.12 Construção da variável Região
banco <- banco |>
mutate(
regiao = case_when(
qual_o_seu_estado %in%
c(
"Acre",
"Amazonas",
"Amapá",
"Pará",
"Rondônia",
"Roraima",
"Tocantins"
) ~ "Norte",
qual_o_seu_estado %in%
c(
"Alagoas",
"Bahia",
"Ceará",
"Maranhão",
"Paraíba",
"Pernambuco",
"Piauí",
"Rio Grande do Norte",
"Sergipe"
) ~ "Nordeste",
qual_o_seu_estado %in%
c(
"Distrito Federal",
"Goiás",
"Mato Grosso",
"Mato Grosso do Sul"
) ~ "Centro-Oeste",
qual_o_seu_estado %in%
c(
"Espírito Santo",
"Minas Gerais",
"Rio de Janeiro",
"São Paulo"
) ~ "Sudeste",
qual_o_seu_estado %in%
c(
"Paraná",
"Rio Grande do Sul",
"Santa Catarina"
) ~ "Sul"
)
)
banco$regiao <-
factor(
banco$regiao,
levels = c(
"Norte",
"Nordeste",
"Centro-Oeste",
"Sudeste",
"Sul"
)
)41 2.13 Conferência
glimpse(
banco
)Rows: 447
Columns: 43
$ carimbo_de_data_hora <dttm> …
$ apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceita_participar_da_pesquisa <dbl> …
$ sexo <fct> …
$ faixa_etaria <ord> …
$ renda_familiar_mensal <ord> …
$ escolaridade <ord> …
$ cor_da_pele <fct> …
$ estado_civil <fct> …
$ qual_o_seu_estado <fct> …
$ voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao <dbl> …
$ voce_consome_suco_de_frutas <dbl> …
$ se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_12 <dbl> …
$ voce_consome_bebida_alcoolica <dbl> …
$ voce_fuma <dbl> …
$ voce_pratica_alguma_atividade_fisica_regularmente <dbl> …
$ se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_16 <dbl> …
$ se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_pode_marcar_mais_de_uma_opcao <chr> …
$ voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal <dbl> …
$ se_voce_respondeu_sim_na_pergunta_anterior_qual_doenca_foi_diagnosticado_a <chr> …
$ se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mais_de_uma_opcao <chr> …
$ os_sintomas_gastrointestinais_interferem_nas_suas_atividades_diarias <dbl> …
$ voce_esta_em_tratamento_medico_atualmente_para_algum_problema_gastrointestinal <dbl> …
$ voce_sabe_o_que_sao_probioticos <dbl> …
$ se_respondeu_sim_como_ficou_sabendo <dbl> …
$ leia_o_texto_abaixo_sobre_probioticos_microrganismos_probioticos_sao_definidos_como_organismos_vivos_que_quando_consumidos_em_quantidades_adequadas_promovem_beneficios_a_saude_do_hospedeiro_por_essa_razao_podem_ser_incorporados_aos_alimentos_com_o_objetivo_de_desenvolver_produtos_com_propriedades_funcionais_contribuindo_para_o_equilibrio_da_microbiota_intestinal_e_a_melhoria_do_bem_estar_geral_fonte_hill_colin_et_al_the_international_scientific_association_for_probiotics_and_prebiotics_consensus_statement_on_the_scope_and_appropriate_use_of_the_term_probiotic_nature_reviews_gastroenterology_hepatology_s_l_v_11_n_8_p_506_514_10_jun_2014_springer_science_and_business_media_llc_http_dx_doi_org_10_1038_nrgastro_2014_66 <chr> …
$ apos_a_leitura_do_texto_acima_voce_acredita_que_o_consumo_de_probioticos_traz_beneficios_a_saude <chr> …
$ voce_se_sentiria_mais_motivado_a_a_consumir_probioticos_se_soubesse_que_eles_ajudam_a_equilibrar_a_flora_intestinal <dbl> …
$ voce_consome_alimentos_ou_bebidas_com_probioticos <dbl> …
$ se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_mais_de_uma_opcao <chr> …
$ se_consome_algum_dos_produtos_citados_acima_com_que_frequencia <dbl> …
$ se_um_produto_destacar_contem_probioticos_no_rotulo_isso_influenciaria_sua_compra <dbl> …
$ com_que_frequencia_voce_le_os_rotulos_dos_produtos <chr> …
$ quais_informacoes_no_rotulo_mais_chamam_sua_atencao_pode_marcar_mais_de_uma_opcao <chr> …
$ o_que_mais_te_incomoda_ao_ler_rotulos_pode_marcar_mais_de_uma_opcao <chr> …
$ quais_fatores_influenciam_sua_escolha_ao_comprar_um_suco_pode_marcar_mais_de_uma_opcao <chr> …
$ voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos <dbl> …
$ observe_os_rotulos_abaixo_de_um_suco_misto_de_jabuticaba_e_morango_e_responda_as_proximas_questoes <chr> …
$ qual_dos_tres_rotulos_te_chamou_mais_atencao <dbl> …
$ o_que_mais_chamou_sua_atencao_nos_rotulos_acima <dbl> …
$ voce_ja_viu_ou_consumiu_sucos_com_probioticos <dbl> …
$ o_que_te_faria_confiar_mais_em_um_suco_com_probioticos_pode_marcar_mais_de_uma_opcao <chr> …
$ qual_o_valor_voce_estaria_disposto_a_a_pagar_por_uma_garrafa_300_m_l_deste_suco <dbl> …
$ regiao <fct> …
42 2.14 Frequências das variáveis recodificadas
table(
banco$sexo,
useNA="ifany"
)
Masculino Feminino Prefiro não identificar
312 133 2
table(
banco$faixa_etaria,
useNA="ifany"
)
18 a 25 anos 26 a 31 anos 32 a 39 anos 40 a 47 anos
152 103 98 52
48 a 55 anos Acima de 55 anos
27 15
table(
banco$escolaridade,
useNA="ifany"
)
Fundamental incompleto Fundamental completo Médio incompleto
0 6 2
Médio completo Superior incompleto Superior completo
59 138 80
Pós-graduação incompleta Pós-graduação completa
28 134
table(
banco$qual_o_seu_estado,
useNA="ifany"
)
Acre Alagoas Amapá Amazonas
2 0 0 0
Bahia Ceará Distrito Federal Espírito Santo
1 1 1 5
Goiás Maranhão Mato Grosso Mato Grosso do Sul
3 1 1 0
Minas Gerais Pará Paraíba Paraná
357 13 2 6
Pernambuco Piauí Rio de Janeiro Rio Grande do Norte
1 0 6 0
Rio Grande do Sul Rondônia Roraima Santa Catarina
1 1 0 0
São Paulo Sergipe Tocantins
44 1 0
table(
banco$regiao,
useNA="ifany"
)
Norte Nordeste Centro-Oeste Sudeste Sul
16 7 5 412 7
43 Comentário metodológico
As variáveis sociodemográficas foram recodificadas utilizando fatores nominais e fatores ordenados, respeitando a estrutura do questionário.
A criação da variável Região permitirá análises geográficas em níveis agregados, aumentando a estabilidade das análises inferenciais quando houver baixa frequência em alguns estados.
44 2.15 Questões de múltipla resposta
As perguntas de múltipla resposta exigem tratamento estatístico específico, uma vez que um mesmo participante pode selecionar mais de uma alternativa.
Essas variáveis não serão tratadas como fatores simples.
Para cada questão serão construídas tabelas de frequência, gráficos e bases auxiliares.
#====================================================
# Função geral para questões de múltipla resposta
#====================================================
tabular_multiplas <- function(
dados,
variavel,
separador = ","
) {
dados |>
dplyr::select(dplyr::all_of(variavel)) |>
tidyr::separate_rows(
dplyr::all_of(variavel),
sep = separador
) |>
dplyr::mutate(
!!variavel := stringr::str_trim(.data[[variavel]])
) |>
dplyr::filter(
!is.na(.data[[variavel]])
) |>
dplyr::count(
.data[[variavel]],
sort = TRUE
) |>
dplyr::mutate(
percentual = round(100 * n / sum(n), 1)
)
}45 2.16 Identificação das perguntas múltiplas
variaveis_multiplas <- c(
"se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_pode_marcar_mais_de_uma_opcao",
"se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mais_de_uma_opcao",
"se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_mais_de_uma_opcao",
"quais_informacoes_no_rotulo_mais_chamam_sua_atencao_pode_marcar_mais_de_uma_opcao",
"o_que_mais_te_incomoda_ao_ler_rotulos_pode_marcar_mais_de_uma_opcao",
"quais_fatores_influenciam_sua_escolha_ao_comprar_um_suco_pode_marcar_mais_de_uma_opcao",
"o_que_te_faria_confiar_mais_em_um_suco_com_probioticos_pode_marcar_mais_de_uma_opcao"
)
variaveis_multiplas[1] "se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_pode_marcar_mais_de_uma_opcao"
[2] "se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mais_de_uma_opcao"
[3] "se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_mais_de_uma_opcao"
[4] "quais_informacoes_no_rotulo_mais_chamam_sua_atencao_pode_marcar_mais_de_uma_opcao"
[5] "o_que_mais_te_incomoda_ao_ler_rotulos_pode_marcar_mais_de_uma_opcao"
[6] "quais_fatores_influenciam_sua_escolha_ao_comprar_um_suco_pode_marcar_mais_de_uma_opcao"
[7] "o_que_te_faria_confiar_mais_em_um_suco_com_probioticos_pode_marcar_mais_de_uma_opcao"
46 2.17 Frequências das questões múltiplas
resultado_multiplas <-
purrr::map(
variaveis_multiplas,
~ tabular_multiplas(
dados = banco,
variavel = .x
)
)
names(resultado_multiplas) <-
variaveis_multiplas47 2.18 Exemplo da primeira tabela
resultado_multiplas[[1]]# A tibble: 41 × 3
se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_ati…¹ n percentual
<chr> <int> <dbl>
1 "Musculação" 212 31.6
2 "Caminhada" 123 18.3
3 "Corrida" 76 11.3
4 "Esportes coletivos (futebol" 58 8.6
5 "etc.)" 58 8.6
6 "vôlei" 58 8.6
7 "Yoga/Pilates" 32 4.8
8 "Natação" 7 1
9 "Crossfit" 5 0.7
10 "" 4 0.6
# ℹ 31 more rows
# ℹ abbreviated name:
# ¹se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_atividade_pode_marcar_mais_de_uma_opcao
48 2.19 Função para gráfico
grafico_multipla <- function(tab){
tab |>
ggplot(
aes(
x=reorder(
!!sym(names(tab)[1]),
n
),
y=n
)
)+
geom_col(
fill="#2C7FB8"
)+
coord_flip()+
labs(
x="",
y="Frequência"
)
}49 2.20 Exemplo de gráfico
grafico_multipla(
resultado_multiplas[[1]]
)50 Comentário metodológico
Nas questões de múltipla resposta, as frequências representam o número de vezes que cada alternativa foi selecionada e não o número de participantes.
Assim, a soma dos percentuais pode ultrapassar 100%, característica inerente a esse tipo de variável.
51 2.21 Tratamento das perguntas condicionais
Em questionários eletrônicos é comum que algumas perguntas sejam exibidas apenas quando determinadas respostas são selecionadas.
Nesses casos, a ausência de resposta não representa dado perdido, mas sim uma resposta estruturalmente inexistente (Not Applicable).
Antes das análises estatísticas serão criadas variáveis de elegibilidade para identificar corretamente quais participantes deveriam responder cada questão.
#-------------------------------------------------------
# Elegibilidade das perguntas condicionais
#-------------------------------------------------------
banco <- banco |>
mutate(
elegivel_freq_suco =
voce_consome_suco_de_frutas == 1,
elegivel_freq_atividade =
voce_pratica_alguma_atividade_fisica_regularmente == 1,
elegivel_tipo_atividade =
voce_pratica_alguma_atividade_fisica_regularmente == 1,
elegivel_doenca =
voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal == 1,
elegivel_sintomas =
voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal == 1,
elegivel_fonte_conhecimento =
voce_sabe_o_que_sao_probioticos == 1,
elegivel_produtos =
voce_consome_alimentos_ou_bebidas_com_probioticos %in%
c(1,2,3),
elegivel_frequencia_produtos =
voce_consome_alimentos_ou_bebidas_com_probioticos %in%
c(1,2,3)
)52 2.22 Conferência dos indicadores
banco |>
summarise(
across(
starts_with("elegivel"),
~sum(.x, na.rm = TRUE)
)
)# A tibble: 1 × 8
elegivel_freq_suco elegivel_freq_atividade elegivel_tipo_atividade
<int> <int> <int>
1 419 325 325
# ℹ 5 more variables: elegivel_doenca <int>, elegivel_sintomas <int>,
# elegivel_fonte_conhecimento <int>, elegivel_produtos <int>,
# elegivel_frequencia_produtos <int>
53 2.23 Percentual de participantes elegíveis
percentual_elegiveis <-
banco |>
summarise(
across(
starts_with("elegivel"),
~mean(.x, na.rm = TRUE) * 100
)
) |>
pivot_longer(
everything(),
names_to = "variavel",
values_to = "percentual"
)
percentual_elegiveis# A tibble: 8 × 2
variavel percentual
<chr> <dbl>
1 elegivel_freq_suco 93.7
2 elegivel_freq_atividade 72.7
3 elegivel_tipo_atividade 72.7
4 elegivel_doenca 20.4
5 elegivel_sintomas 20.4
6 elegivel_fonte_conhecimento 79.4
7 elegivel_produtos 100
8 elegivel_frequencia_produtos 100
54 2.24 Variáveis “Não Aplicável”
banco <- banco |>
mutate(
se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_12 =
ifelse(
elegivel_freq_suco,
se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_12,
NA
),
se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_16 =
ifelse(
elegivel_freq_atividade,
se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia_16,
NA
)
)55 2.25 Diagnóstico das perguntas condicionais
diagnostico_skip <-
tibble(
pergunta = c(
"Frequência de consumo de suco",
"Frequência da atividade física",
"Tipo de atividade",
"Doença gastrointestinal",
"Sintomas",
"Fonte de conhecimento",
"Produtos consumidos"
),
elegiveis = c(
sum(banco$elegivel_freq_suco),
sum(banco$elegivel_freq_atividade),
sum(banco$elegivel_tipo_atividade),
sum(banco$elegivel_doenca),
sum(banco$elegivel_sintomas),
sum(banco$elegivel_fonte_conhecimento),
sum(banco$elegivel_produtos)
)
)
diagnostico_skip# A tibble: 7 × 2
pergunta elegiveis
<chr> <int>
1 Frequência de consumo de suco 419
2 Frequência da atividade física 325
3 Tipo de atividade 325
4 Doença gastrointestinal 91
5 Sintomas 91
6 Fonte de conhecimento 355
7 Produtos consumidos 447
56 2.26 Verificação automática
stopifnot(
all(
banco$elegivel_freq_suco %in%
c(TRUE,FALSE)
)
)57 Comentário metodológico
As perguntas condicionais foram tratadas respeitando o fluxo original do questionário.
Os participantes que não eram elegíveis para determinada pergunta permaneceram classificados como Não Aplicável (NA estrutural).
Essa abordagem evita interpretar respostas inexistentes como perdas de informação, reduzindo vieses nas análises descritivas e inferenciais.
58 3 Biblioteca de Funções Estatísticas
58.1 3.1 Tabelas de Frequência
#==========================================================
# Frequência absoluta e percentual
#==========================================================
tabela_frequencia <- function(
dados,
variavel,
ordenar = TRUE
) {
resultado <-
dados |>
dplyr::count(
{{ variavel }},
name = "n"
) |>
dplyr::mutate(
percentual = round(100 * n / sum(n), 1)
)
if (ordenar) {
resultado <-
resultado |>
dplyr::arrange(dplyr::desc(n))
}
resultado
}
#==========================================================
# Frequência incluindo NA
#==========================================================
tabela_frequencia_na <- function(
dados,
variavel
) {
dados |>
dplyr::mutate(
{{ variavel }} := forcats::fct_explicit_na(
as.factor({{ variavel }}),
na_level = "NA"
)
) |>
dplyr::count(
{{ variavel }},
name = "n"
)
}
#==========================================================
# Proporções
#==========================================================
proporcao <- function(
dados,
variavel
){
dados |>
count(
{{variavel}}
) |>
mutate(
prop=n/sum(n)
)
}59 3.9 Auditoria Estatística da Base
Este capítulo verifica automaticamente a integridade do banco de dados antes da aplicação dos modelos estatísticos.
As verificações incluem:
- dimensões da base;
- classes das variáveis;
- fatores;
- níveis;
- valores ausentes;
- variáveis constantes;
- categorias raras;
- duplicatas;
- variáveis totalmente vazias;
- variáveis com apenas um nível;
- consistência dos fatores.
59.1 Dimensões
cat(
"Número de linhas:",
nrow(banco),
"\n"
)Número de linhas: 447
cat(
"Número de colunas:",
ncol(banco),
"\n"
)Número de colunas: 51
59.2 Classes das variáveis
auditoria_classes <-
tibble(
variavel=
names(banco),
classe=
purrr::map_chr(
banco,
~class(.x)[1]
)
)
auditoria_classes# A tibble: 51 × 2
variavel classe
<chr> <chr>
1 carimbo_de_data_hora POSIX…
2 apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceit… numer…
3 sexo factor
4 faixa_etaria order…
5 renda_familiar_mensal order…
6 escolaridade order…
7 cor_da_pele factor
8 estado_civil factor
9 qual_o_seu_estado factor
10 voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao numer…
# ℹ 41 more rows
59.3 Número de níveis
auditoria_niveis <-
tibble(
variavel=
names(banco),
niveis=
purrr::map_int(
banco,
function(x){
if(
is.factor(x)|
is.ordered(x)
)
nlevels(x)
else
NA_integer_
}
)
)
auditoria_niveis# A tibble: 51 × 2
variavel niveis
<chr> <int>
1 carimbo_de_data_hora NA
2 apos_ler_o_termo_de_consentimento_livre_e_esclarecido_tcle_voce_aceit… NA
3 sexo 3
4 faixa_etaria 6
5 renda_familiar_mensal 6
6 escolaridade 8
7 cor_da_pele 6
8 estado_civil 5
9 qual_o_seu_estado 27
10 voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao NA
# ℹ 41 more rows
59.4 Valores ausentes
auditoria_na <-
tibble(
variavel=
names(banco),
na=
purrr::map_int(
banco,
~sum(is.na(.x))
),
percentual=
purrr::map_dbl(
banco,
~100*mean(is.na(.x))
)
)
arrange(
auditoria_na,
desc(percentual)
)# A tibble: 51 × 3
variavel na percentual
<chr> <int> <dbl>
1 observe_os_rotulos_abaixo_de_um_suco_misto_de_jabuticaba_e_… 439 98.2
2 leia_o_texto_abaixo_sobre_probioticos_microrganismos_probio… 434 97.1
3 se_voce_respondeu_sim_na_pergunta_anterior_qual_doenca_foi_… 360 80.5
4 se_sim_quais_dos_sintomas_abaixo_voce_sente_pode_marcar_mai… 338 75.6
5 os_sintomas_gastrointestinais_interferem_nas_suas_atividade… 236 52.8
6 se_voce_marcou_sim_na_resposta_anterior_com_qual_frequencia… 123 27.5
7 voce_esta_em_tratamento_medico_atualmente_para_algum_proble… 114 25.5
8 se_voce_pratica_alguma_atividade_fisica_qual_o_tipo_de_ativ… 104 23.3
9 se_respondeu_sim_como_ficou_sabendo 89 19.9
10 se_consome_quais_voce_tem_o_habito_de_consumir_pode_marcar_… 30 6.71
# ℹ 41 more rows
59.5 Variáveis constantes
variaveis_constantes <-
names(
banco
)[
purrr::map_lgl(
banco,
~dplyr::n_distinct(
na.omit(.x)
)==1
)
]
variaveis_constantes[1] "elegivel_produtos" "elegivel_frequencia_produtos"
59.6 Variáveis totalmente vazias
variaveis_vazias <-
names(
banco
)[
purrr::map_lgl(
banco,
~all(
is.na(.x)
)
)
]
variaveis_vaziascharacter(0)
59.7 Categorias raras
categorias_raras <-
function(x){
if(
!is.factor(x)
){
return(NULL)
}
tab<-
table(x)
tab[
tab<5
]
}
resultado_raras <-
purrr::map(
banco,
categorias_raras
)
names(
resultado_raras
)<-
names(
banco
)59.8 Duplicatas
sum(
duplicated(
banco
)
)[1] 0
59.9 Linhas incompletas
sum(
!complete.cases(
banco
)
)[1] 445
59.10 Resumo Geral
resumo_auditoria <-
tibble(
Indicador=c(
"Respondentes",
"Variáveis",
"Duplicatas",
"Linhas incompletas",
"Variáveis constantes",
"Variáveis vazias"
),
Valor=c(
nrow(banco),
ncol(banco),
sum(
duplicated(banco)
),
sum(
!complete.cases(banco)
),
length(
variaveis_constantes
),
length(
variaveis_vazias
)
)
)
resumo_auditoria# A tibble: 6 × 2
Indicador Valor
<chr> <int>
1 Respondentes 447
2 Variáveis 51
3 Duplicatas 0
4 Linhas incompletas 445
5 Variáveis constantes 2
6 Variáveis vazias 0
59.11 Salvando relatório
write.csv(
resumo_auditoria,
"resultados/auditoria_base.csv",
row.names=FALSE
)60 Comentário metodológico
A auditoria da base constitui etapa obrigatória antes do ajuste de qualquer modelo estatístico.
Essa etapa permite identificar inconsistências estruturais que poderiam comprometer os resultados inferenciais.
61 3.2 Estatística descritiva
resumo_numerico <- function(
x
){
tibble(
n=sum(!is.na(x)),
media=mean(x,na.rm=TRUE),
desvio=sd(x,na.rm=TRUE),
mediana=median(x,na.rm=TRUE),
q1=quantile(x,.25,na.rm=TRUE),
q3=quantile(x,.75,na.rm=TRUE),
min=min(x,na.rm=TRUE),
max=max(x,na.rm=TRUE)
)
}62 3.3 Gráfico de barras
grafico_barras <- function(
dados,
variavel,
titulo=NULL
){
dados |>
count(
{{variavel}}
)|>
ggplot(
aes(
x=reorder(
{{variavel}},
n
),
y=n
)
)+
geom_col(
fill="#3B6FB6"
)+
coord_flip()+
labs(
x="",
y="Frequência",
title=titulo
)+
theme_minimal()
}63 3.4 Gráfico percentual
grafico_percentual <- function(
dados,
variavel,
titulo=NULL
){
dados |>
count(
{{variavel}}
)|>
mutate(
perc=100*n/sum(n)
)|>
ggplot(
aes(
x=reorder(
{{variavel}},
perc
),
y=perc
)
)+
geom_col(
fill="#0E8A16"
)+
coord_flip()+
labs(
x="",
y="Percentual",
title=titulo
)
}64 3.5 Gráfico de setores
grafico_pizza <- function(
dados,
variavel,
titulo=NULL
){
dados |>
count(
{{variavel}}
)|>
mutate(
perc=n/sum(n)
)|>
ggplot(
aes(
x="",
y=perc,
fill={{variavel}}
)
)+
geom_col(
width=1
)+
coord_polar(
theta="y"
)+
labs(
title=titulo,
fill=""
)
}65 3.6 Verificação de normalidade
teste_normalidade <- function(x){
if(length(na.omit(x))<3){
return(NULL)
}
shapiro.test(
na.omit(x)
)
}66 3.7 Exportação de tabelas
salvar_csv <- function(
tabela,
nome
){
write.csv(
tabela,
paste0(
"resultados/",
nome,
".csv"
),
row.names=FALSE
)
}67 Comentário metodológico
Todas as análises subsequentes utilizarão funções padronizadas.
Essa abordagem reduz repetição de código, melhora a legibilidade do relatório e facilita a manutenção do projeto.
68 4 Estatística Descritiva
Este capítulo apresenta a caracterização da amostra por meio de tabelas e gráficos produzidos automaticamente conforme a natureza estatística de cada variável.
68.1 4.1 Variáveis sociodemográficas
variaveis_sociodemograficas <- c(
"sexo",
"faixa_etaria",
"renda_familiar_mensal",
"escolaridade",
"cor_da_pele",
"estado_civil",
"qual_o_seu_estado",
"regiao"
)
variaveis_sociodemograficas[1] "sexo" "faixa_etaria" "renda_familiar_mensal"
[4] "escolaridade" "cor_da_pele" "estado_civil"
[7] "qual_o_seu_estado" "regiao"
68.2 4.2 Tabelas de frequência
tabelas_socio <-
purrr::map(
variaveis_sociodemograficas,
~tabela_frequencia(
banco,
!!rlang::sym(.x)
)
)
names(tabelas_socio) <-
variaveis_sociodemograficas68.3 4.3 Visualização das tabelas
purrr::iwalk(
tabelas_socio,
function(tab, nome){
cat(
"\n\n=====================================\n"
)
cat(
toupper(nome),
"\n"
)
print(tab)
}
)
=====================================
SEXO
# A tibble: 3 × 3
sexo n percentual
<fct> <int> <dbl>
1 Masculino 312 69.8
2 Feminino 133 29.8
3 Prefiro não identificar 2 0.4
=====================================
FAIXA_ETARIA
# A tibble: 6 × 3
faixa_etaria n percentual
<ord> <int> <dbl>
1 18 a 25 anos 152 34
2 26 a 31 anos 103 23
3 32 a 39 anos 98 21.9
4 40 a 47 anos 52 11.6
5 48 a 55 anos 27 6
6 Acima de 55 anos 15 3.4
=====================================
RENDA_FAMILIAR_MENSAL
# A tibble: 6 × 3
renda_familiar_mensal n percentual
<ord> <int> <dbl>
1 2 a 3 salários 133 29.8
2 3 a 5 salários 102 22.8
3 5 a 10 salários 85 19
4 Até 1 salário mínimo 56 12.5
5 Mais de 10 salários 39 8.7
6 Prefiro não declarar 32 7.2
=====================================
ESCOLARIDADE
# A tibble: 7 × 3
escolaridade n percentual
<ord> <int> <dbl>
1 Superior incompleto 138 30.9
2 Pós-graduação completa 134 30
3 Superior completo 80 17.9
4 Médio completo 59 13.2
5 Pós-graduação incompleta 28 6.3
6 Fundamental completo 6 1.3
7 Médio incompleto 2 0.4
=====================================
COR_DA_PELE
# A tibble: 6 × 3
cor_da_pele n percentual
<fct> <int> <dbl>
1 Branca 216 48.3
2 Parda 150 33.6
3 Preta 66 14.8
4 Amarela 9 2
5 Prefiro não declarar 5 1.1
6 Indígena 1 0.2
=====================================
ESTADO_CIVIL
# A tibble: 5 × 3
estado_civil n percentual
<fct> <int> <dbl>
1 Solteiro(a) 299 66.9
2 Casado(a) 103 23
3 União estável 27 6
4 Divorciado(a) 15 3.4
5 Viúvo(a) 3 0.7
=====================================
QUAL_O_SEU_ESTADO
# A tibble: 18 × 3
qual_o_seu_estado n percentual
<fct> <int> <dbl>
1 Minas Gerais 357 79.9
2 São Paulo 44 9.8
3 Pará 13 2.9
4 Paraná 6 1.3
5 Rio de Janeiro 6 1.3
6 Espírito Santo 5 1.1
7 Goiás 3 0.7
8 Acre 2 0.4
9 Paraíba 2 0.4
10 Bahia 1 0.2
11 Ceará 1 0.2
12 Distrito Federal 1 0.2
13 Maranhão 1 0.2
14 Mato Grosso 1 0.2
15 Pernambuco 1 0.2
16 Rio Grande do Sul 1 0.2
17 Rondônia 1 0.2
18 Sergipe 1 0.2
=====================================
REGIAO
# A tibble: 5 × 3
regiao n percentual
<fct> <int> <dbl>
1 Sudeste 412 92.2
2 Norte 16 3.6
3 Nordeste 7 1.6
4 Sul 7 1.6
5 Centro-Oeste 5 1.1
68.4 4.4 Exportação das tabelas
purrr::iwalk(
tabelas_socio,
function(tab, nome){
salvar_csv(
tab,
paste0(
"tabela_",
nome
)
)
}
)68.5 4.5 Gráficos automáticos
graficos_socio <-
purrr::map(
variaveis_sociodemograficas,
~grafico_percentual(
banco,
!!rlang::sym(.x),
titulo=.x
)
)
names(graficos_socio) <-
variaveis_sociodemograficas68.6 4.6 Exibição dos gráficos
purrr::walk(
graficos_socio,
print
)68.7 4.7 Salvando figuras
purrr::iwalk(
graficos_socio,
function(fig,nome){
ggplot2::ggsave(
filename=
paste0(
"graficos/",
nome,
".png"
),
plot=fig,
width=8,
height=6,
dpi=300
)
}
)68.8 4.8 Resumo automático
cat(
"Foram analisadas ",
length(
variaveis_sociodemograficas
),
" variáveis sociodemográficas."
)Foram analisadas 8 variáveis sociodemográficas.
69 Comentário metodológico
As distribuições apresentadas neste capítulo foram obtidas por meio de frequências absolutas e relativas.
Para variáveis qualitativas nominais e ordinais foram utilizados gráficos de barras com percentuais.
As análises referem-se exclusivamente aos participantes que responderam ao questionário.
70 5 Associação entre variáveis categóricas
Neste capítulo são avaliadas as associações entre variáveis qualitativas.
O procedimento estatístico é escolhido automaticamente conforme os pressupostos do teste.
70.1 5.1 Função geral
#===========================================================
# Associação entre duas variáveis qualitativas
#===========================================================
teste_associacao <- function(
dados,
var1,
var2
){
tabela <-
table(
dados[[var1]],
dados[[var2]]
)
qui <-
suppressWarnings(
chisq.test(
tabela,
correct = FALSE
)
)
esperado <-
qui$expected
usar_fisher <-
any(
esperado < 5
)
if(usar_fisher){
teste <-
fisher.test(
tabela
)
metodo <-
"Teste Exato de Fisher"
estatistica <-
NA
}else{
teste <- qui
metodo <-
"Qui-quadrado"
estatistica <-
unname(
teste$statistic
)
}
cramers_v <-
DescTools::CramerV(
tabela
)
tibble(
variavel_1 = var1,
variavel_2 = var2,
metodo = metodo,
estatistica = estatistica,
gl =
ifelse(
usar_fisher,
NA,
unname(
teste$parameter
)
),
p_valor = teste$p.value,
cramers_v = cramers_v
)
}70.2 5.2 Função para interpretação
interpretar_p <- function(p){
if(is.na(p)){
return("Não calculado")
}
if(p<0.001){
return("Associação altamente significativa")
}
if(p<0.05){
return("Associação significativa")
}
"Sem evidência de associação"
}70.3 5.3 Função para interpretar Cramér
interpretar_cramer <- function(v){
if(is.na(v)){
return(NA)
}
case_when(
v<0.10 ~ "Desprezível",
v<0.30 ~ "Pequena",
v<0.50 ~ "Moderada",
TRUE ~ "Forte"
)
}70.4 5.4 Organização do resultado
organizar_resultado <- function(resultado){
resultado |>
mutate(
interpretacao =
interpretar_p(
p_valor
),
forca =
interpretar_cramer(
cramers_v
)
)
}70.5 5.5 Exemplo
resultado_exemplo <-
teste_associacao(
dados = banco,
var1 = "sexo",
var2 = "voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos"
)
organizar_resultado(
resultado_exemplo
)# A tibble: 1 × 9
variavel_1 variavel_2 metodo estatistica gl p_valor cramers_v interpretacao
<chr> <chr> <chr> <lgl> <lgl> <dbl> <dbl> <chr>
1 sexo voce_comp… Teste… NA NA 0.0917 0.104 Sem evidênci…
# ℹ 1 more variable: forca <chr>
70.6 Comentário metodológico
Para todas as análises bivariadas será adotado:
- Qui-quadrado quando os pressupostos forem satisfeitos;
- Teste Exato de Fisher quando houver frequências esperadas inferiores a cinco;
- V de Cramér como medida do tamanho do efeito;
- nível de significância de 5%.
71 5.6 Sistema Automático de Associações
#==========================================================
# Variáveis candidatas às análises bivariadas
#==========================================================
variaveis_associacao <- c(
"sexo",
"faixa_etaria",
"renda_familiar_mensal",
"escolaridade",
"cor_da_pele",
"estado_civil",
"regiao",
"voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao",
"voce_consome_suco_de_frutas",
"voce_consome_bebida_alcoolica",
"voce_fuma",
"voce_pratica_alguma_atividade_fisica_regularmente",
"voce_sabe_o_que_sao_probioticos",
"voce_consome_alimentos_ou_bebidas_com_probioticos",
"voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos"
)71.1 Variável resposta principal
desfecho <-
"voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos"71.2 Execução automática
resultado_associacoes <-
purrr::map_dfr(
variaveis_associacao,
function(x){
if(x==desfecho){
return(NULL)
}
teste_associacao(
dados=banco,
var1=x,
var2=desfecho
)
}
)71.3 Organização
resultado_associacoes <-
resultado_associacoes |>
mutate(
interpretacao=
purrr::map_chr(
p_valor,
interpretar_p
),
forca=
purrr::map_chr(
cramers_v,
interpretar_cramer
)
)71.4 Ajuste para múltiplos testes
resultado_associacoes <-
resultado_associacoes |>
mutate(
p_ajustado=
p.adjust(
p_valor,
method="BH"
)
)71.5 Ordenação
resultado_associacoes <-
resultado_associacoes |>
arrange(
p_valor
)
resultado_associacoes# A tibble: 14 × 10
variavel_1 variavel_2 metodo estatistica gl p_valor cramers_v
<chr> <chr> <chr> <dbl> <int> <dbl> <dbl>
1 voce_consome_suco_de_f… voce_comp… Teste… NA NA 0.0134 1.32e-1
2 voce_consome_bebida_al… voce_comp… Qui-q… 7.13 2 0.0283 1.26e-1
3 voce_se_considera_uma_… voce_comp… Teste… NA NA 0.0309 1.28e-1
4 sexo voce_comp… Teste… NA NA 0.0917 1.04e-1
5 voce_fuma voce_comp… Qui-q… 0.620 1 0.431 3.72e-2
6 escolaridade voce_comp… Teste… NA NA 0.440 NaN
7 regiao voce_comp… Teste… NA NA 0.569 6.05e-2
8 estado_civil voce_comp… Teste… NA NA 0.590 8.01e-2
9 renda_familiar_mensal voce_comp… Teste… NA NA 0.599 8.35e-2
10 cor_da_pele voce_comp… Teste… NA NA 0.721 6.87e-2
11 faixa_etaria voce_comp… Teste… NA NA 0.757 7.66e-2
12 voce_consome_alimentos… voce_comp… Teste… NA NA 0.907 1.43e-2
13 voce_sabe_o_que_sao_pr… voce_comp… Qui-q… 0.000482 1 0.982 1.04e-3
14 voce_pratica_alguma_at… voce_comp… Qui-q… 0.0000102 1 0.997 1.51e-4
# ℹ 3 more variables: interpretacao <chr>, forca <chr>, p_ajustado <dbl>
71.6 Variáveis candidatas à regressão
variaveis_modelo <-
resultado_associacoes |>
filter(
p_valor < 0.20
)
variaveis_modelo# A tibble: 4 × 10
variavel_1 variavel_2 metodo estatistica gl p_valor cramers_v interpretacao
<chr> <chr> <chr> <dbl> <int> <dbl> <dbl> <chr>
1 voce_cons… voce_comp… Teste… NA NA 0.0134 0.132 Associação s…
2 voce_cons… voce_comp… Qui-q… 7.13 2 0.0283 0.126 Associação s…
3 voce_se_c… voce_comp… Teste… NA NA 0.0309 0.128 Associação s…
4 sexo voce_comp… Teste… NA NA 0.0917 0.104 Sem evidênci…
# ℹ 2 more variables: forca <chr>, p_ajustado <dbl>
71.7 Exportação
write.csv(
resultado_associacoes,
file=
"resultados/associacoes_bivariadas.csv",
row.names=FALSE
)71.8 Resumo
cat(
"Número de associações avaliadas:",
nrow(
resultado_associacoes
),
"\n"
)Número de associações avaliadas: 14
cat(
"Variáveis com p < 0,20:",
sum(
resultado_associacoes$p_valor<0.20,
na.rm=TRUE
),
"\n"
)Variáveis com p < 0,20: 4
72 Comentário metodológico
Todas as associações entre variáveis categóricas foram avaliadas automaticamente.
O teste estatístico foi escolhido conforme os pressupostos:
- Qui-quadrado quando as frequências esperadas foram adequadas;
- Teste Exato de Fisher quando necessário.
Além do valor de p, foi calculado o V de Cramér, permitindo interpretar a magnitude da associação.
Como diversas comparações foram realizadas, também foi calculado o valor de p ajustado pelo método de Benjamini–Hochberg (FDR), reduzindo o risco de falsos positivos.
As variáveis com p < 0,20 foram identificadas como candidatas aos modelos de regressão, seguindo uma estratégia frequentemente utilizada na modelagem multivariada.
OBS: A literatura recomenda que a seleção considere simultaneamente: significância estatística; plausibilidade biológica; fundamentação teórica; possibilidade de confundimento. Sendo assim, não vou eliminar automaticamente variáveis apenas porque apresentaram p > 0,20 na análise bivariada.
73 6. Regressão Logística Binária
A regressão logística binária foi utilizada para identificar fatores associados à intenção de compra de um suco misto de jabuticaba e morango contendo probióticos.
Inicialmente foram ajustados modelos logísticos univariados para cada variável explicativa. Em seguida, foi construído um modelo múltiplo contendo as variáveis selecionadas com base na análise univariada e na plausibilidade teórica.
Os resultados são apresentados como Odds Ratios (OR), intervalos de confiança de 95% (IC95%) e valores de p.
#==========================================================
# Construção da variável resposta
#==========================================================
banco <-
banco |>
dplyr::mutate(
desfecho_binario = dplyr::case_when(
voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos == 1 ~ 1,
voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos == 2 ~ 0,
TRUE ~ NA_real_
)
)
table(
banco$desfecho_binario,
useNA = "ifany"
)
0 1
44 403
#==========================================================
# Base específica para a regressão logística
#==========================================================
banco_log <-
banco |>
dplyr::mutate(
sexo = factor(sexo),
faixa_etaria = factor(faixa_etaria),
renda_familiar_mensal = factor(renda_familiar_mensal),
escolaridade = factor(escolaridade),
cor_da_pele = factor(cor_da_pele),
estado_civil = factor(estado_civil),
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao =
factor(voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao),
voce_consome_suco_de_frutas =
factor(voce_consome_suco_de_frutas),
voce_pratica_alguma_atividade_fisica_regularmente =
factor(voce_pratica_alguma_atividade_fisica_regularmente),
voce_sabe_o_que_sao_probioticos =
factor(voce_sabe_o_que_sao_probioticos),
voce_consome_alimentos_ou_bebidas_com_probioticos =
factor(voce_consome_alimentos_ou_bebidas_com_probioticos),
com_que_frequencia_voce_le_os_rotulos_dos_produtos =
factor(com_que_frequencia_voce_le_os_rotulos_dos_produtos)
)
cat("Número de observações:", nrow(banco_log), "\n")Número de observações: 447
cat("Número de variáveis:", ncol(banco_log), "\n")Número de variáveis: 52
banco_log <-
banco_log |>
dplyr::filter(
sexo != 3,
estado_civil != 3
) |>
droplevels()
table(banco_log$sexo)
Masculino Feminino Prefiro não identificar
312 133 2
table(banco_log$estado_civil)
Solteiro(a) Casado(a) Viúvo(a) Divorciado(a) União estável
299 103 3 15 27
#==========================================================
# Variáveis explicativas candidatas
#==========================================================
variaveis_modelo <-
c(
"sexo",
"faixa_etaria",
"renda_familiar_mensal",
"escolaridade",
"cor_da_pele",
"estado_civil",
"voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao",
"voce_consome_suco_de_frutas",
"voce_pratica_alguma_atividade_fisica_regularmente",
"voce_sabe_o_que_sao_probioticos",
"voce_consome_alimentos_ou_bebidas_com_probioticos",
"com_que_frequencia_voce_le_os_rotulos_dos_produtos"
)
variaveis_modelo [1] "sexo"
[2] "faixa_etaria"
[3] "renda_familiar_mensal"
[4] "escolaridade"
[5] "cor_da_pele"
[6] "estado_civil"
[7] "voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao"
[8] "voce_consome_suco_de_frutas"
[9] "voce_pratica_alguma_atividade_fisica_regularmente"
[10] "voce_sabe_o_que_sao_probioticos"
[11] "voce_consome_alimentos_ou_bebidas_com_probioticos"
[12] "com_que_frequencia_voce_le_os_rotulos_dos_produtos"
#==========================================================
# Regressões logísticas univariadas
#==========================================================
library(purrr)
library(broom)
library(dplyr)
library(tidyr)
resultado_univariado <-
purrr::map_dfr(
variaveis_modelo,
function(var){
dados_modelo <-
banco_log |>
dplyr::select(
desfecho_binario,
all_of(var)
) |>
tidyr::drop_na()
if(nrow(dados_modelo) == 0){
return(NULL)
}
if(dplyr::n_distinct(dados_modelo[[var]]) < 2){
return(NULL)
}
modelo <-
glm(
reformulate(
var,
response = "desfecho_binario"
),
data = dados_modelo,
family = binomial()
)
broom::tidy(
modelo,
exponentiate = TRUE,
conf.int = TRUE
) |>
dplyr::filter(term != "(Intercept)") |>
dplyr::mutate(
variavel = var,
.before = 1
)
}
)
resultado_univariado# A tibble: 38 × 8
variavel term estimate std.error statistic p.value conf.low conf.high
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 sexo sexo… 0.693 0.334 -1.10 0.272 0.364 1.36
2 sexo sexo… 0.0947 1.43 -1.65 0.0990 0.00368 2.44
3 faixa_etaria faix… 0.969 0.567 -0.0562 0.955 0.350 3.48
4 faixa_etaria faix… 0.780 0.528 -0.470 0.639 0.290 2.50
5 faixa_etaria faix… 0.551 0.544 -1.09 0.274 0.172 1.58
6 faixa_etaria faix… 1.13 0.529 0.239 0.811 0.348 3.02
7 faixa_etaria faix… 0.885 0.469 -0.261 0.794 0.349 2.31
8 renda_familiar… rend… 0.593 0.447 -1.17 0.242 0.247 1.46
9 renda_familiar… rend… 0.727 0.418 -0.761 0.447 0.328 1.72
10 renda_familiar… rend… 1.26 0.418 0.556 0.578 0.545 2.85
# ℹ 28 more rows
resultado_univariado_final <-
resultado_univariado |>
dplyr::select(
Variável = variavel,
Categoria = term,
OR = estimate,
IC95_inf = conf.low,
IC95_sup = conf.high,
p = p.value
) |>
dplyr::arrange(p)
resultado_univariado_final# A tibble: 38 × 6
Variável Categoria OR IC95_inf IC95_sup p
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 voce_consome_suco_de_frutas voce_con… 0.291 0.120 0.778 0.00843
2 voce_se_considera_uma_pessoa_preo… voce_se_… 0.194 0.0565 0.778 0.0122
3 escolaridade escolari… 5.13 0.659 32.4 0.0776
4 sexo sexoPref… 0.0947 0.00368 2.44 0.0990
5 escolaridade escolari… 0.282 0.0460 1.51 0.126
6 estado_civil estado_c… 0.455 0.170 1.44 0.140
7 escolaridade escolari… 0.310 0.0456 1.73 0.182
8 voce_se_considera_uma_pessoa_preo… voce_se_… 0.637 0.315 1.24 0.193
9 com_que_frequencia_voce_le_os_rot… com_que_… 0.459 0.135 1.83 0.230
10 renda_familiar_mensal renda_fa… 0.593 0.247 1.46 0.242
# ℹ 28 more rows
Variável | Categoria | OR | IC95_inf | IC95_sup | p |
|---|---|---|---|---|---|
voce_consome_suco_de_frutas | voce_consome_suco_de_frutas2 | 0.2905759162 | 0.1204611785875765728182074099095189012587070465087890625000000000000000000000000000000000000000000000000000000000000000000 | 0.7779 | 0.008434 |
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao | voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao3 | 0.1944444444 | 0.0564879855156141807981384772574529051780700683593750000000000000000000000000000000000000000000000000000000000000000000000 | 0.7784 | 0.012206 |
escolaridade | escolaridade.L | 5.1257432871 | 0.6587174621546486585899060628435108810663223266601562500000000000000000000000000000000000000000000000000000000000000000000 | 32.3609 | 0.077597 |
sexo | sexoPrefiro não identificar | 0.0947368421 | 0.0036763693193468819156444205020761728519573807716369628906250000000000000000000000000000000000000000000000000000000000000 | 2.4403 | 0.098991 |
escolaridade | escolaridade^5 | 0.2819755022 | 0.0459652672221001409869067799718322930857539176940917968750000000000000000000000000000000000000000000000000000000000000000 | 1.5119 | 0.125614 |
estado_civil | estado_civilUnião estável | 0.4546125461 | 0.1703271067213500411519078170385910198092460632324218750000000000000000000000000000000000000000000000000000000000000000000 | 1.4388 | 0.139674 |
escolaridade | escolaridade.C | 0.3103136043 | 0.0455826256235911594916210276551282731816172599792480468750000000000000000000000000000000000000000000000000000000000000000 | 1.7337 | 0.182456 |
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao | voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao2 | 0.6371794872 | 0.3150937436182928430561389632202917709946632385253906250000000000000000000000000000000000000000000000000000000000000000000 | 1.2391 | 0.193495 |
com_que_frequencia_voce_le_os_rotulos_dos_produtos | com_que_frequencia_voce_le_os_rotulos_dos_produtosNunca | 0.4591836735 | 0.1345950796032809870794721973652485758066177368164062500000000000000000000000000000000000000000000000000000000000000000000 | 1.8260 | 0.230499 |
renda_familiar_mensal | renda_familiar_mensal.L | 0.5929034191 | 0.2469340874879662195429119719847221858799457550048828125000000000000000000000000000000000000000000000000000000000000000000 | 1.4583 | 0.241877 |
sexo | sexoFeminino | 0.6927631579 | 0.3635672200218057481535538499883841723203659057617187500000000000000000000000000000000000000000000000000000000000000000000 | 1.3586 | 0.271846 |
com_que_frequencia_voce_le_os_rotulos_dos_produtos | com_que_frequencia_voce_le_os_rotulos_dos_produtosFrequentemente | 0.6212484994 | 0.2545056280184518349152256178058451041579246520996093750000000000000000000000000000000000000000000000000000000000000000000 | 1.4262 | 0.273324 |
faixa_etaria | faixa_etaria.C | 0.5510334751 | 0.1715859881294559963205159647259279154241085052490234375000000000000000000000000000000000000000000000000000000000000000000 | 1.5847 | 0.273557 |
renda_familiar_mensal | renda_familiar_mensal.Q | 0.7273648224 | 0.3284503811896887781607290435204049572348594665527343750000000000000000000000000000000000000000000000000000000000000000000 | 1.7202 | 0.446741 |
renda_familiar_mensal | renda_familiar_mensal.C | 1.2614760308 | 0.5447156356022599954513907505315728485584259033203125000000000000000000000000000000000000000000000000000000000000000000000 | 2.8486 | 0.578327 |
com_que_frequencia_voce_le_os_rotulos_dos_produtos | com_que_frequencia_voce_le_os_rotulos_dos_produtosSempre | 1.3061224489 | 0.4924659185276596407021543200244195759296417236328125000000000000000000000000000000000000000000000000000000000000000000000 | 3.4648 | 0.585843 |
renda_familiar_mensal | renda_familiar_mensal^4 | 0.8110996867 | 0.3553203696414246604007303176331333816051483154296875000000000000000000000000000000000000000000000000000000000000000000000 | 1.7378 | 0.601561 |
escolaridade | escolaridade^4 | 1.6524309926 | 0.1684389496252845785928542454712442122399806976318359375000000000000000000000000000000000000000000000000000000000000000000 | 13.7342 | 0.626144 |
faixa_etaria | faixa_etaria.Q | 0.7802756426 | 0.2903035586992338545897496260295156389474868774414062500000000000000000000000000000000000000000000000000000000000000000000 | 2.4961 | 0.638581 |
com_que_frequencia_voce_le_os_rotulos_dos_produtos | com_que_frequencia_voce_le_os_rotulos_dos_produtosRaramente | 0.7714285714 | 0.2507198047062127455042457313538761809468269348144531250000000000000000000000000000000000000000000000000000000000000000000 | 2.6367 | 0.658676 |
escolaridade | escolaridade.Q | 0.7646177447 | 0.2439900646502465575427009980558068491518497467041015625000000000000000000000000000000000000000000000000000000000000000000 | 4.0767 | 0.682659 |
renda_familiar_mensal | renda_familiar_mensal^5 | 1.1515374043 | 0.5644033845550318062578298849985003471374511718750000000000000000000000000000000000000000000000000000000000000000000000000 | 2.3438 | 0.695073 |
estado_civil | estado_civilDivorciado(a) | 1.4464944649 | 0.2746146401558191563196942297508940100669860839843750000000000000000000000000000000000000000000000000000000000000000000000 | 26.6949 | 0.726156 |
voce_consome_alimentos_ou_bebidas_com_probioticos | voce_consome_alimentos_ou_bebidas_com_probioticos3 | 0.7812500410 | 0.1821603952095029177460361324847326613962650299072265625000000000000000000000000000000000000000000000000000000000000000000 | 5.4040 | 0.764165 |
faixa_etaria | faixa_etaria^5 | 0.8847675106 | 0.3490781814259646398390657395793823525309562683105468750000000000000000000000000000000000000000000000000000000000000000000 | 2.3089 | 0.794267 |
faixa_etaria | faixa_etaria^4 | 1.1345632823 | 0.3481753701417201196655071271379711106419563293457031250000000000000000000000000000000000000000000000000000000000000000000 | 3.0154 | 0.811400 |
voce_consome_alimentos_ou_bebidas_com_probioticos | voce_consome_alimentos_ou_bebidas_com_probioticos2 | 0.9505208628 | 0.4295638371050056747435519355349242687225341796875000000000000000000000000000000000000000000000000000000000000000000000000 | 1.9414 | 0.894004 |
escolaridade | escolaridade^6 | 1.0622734278 | 0.3964866320214955330847317327425116673111915588378906250000000000000000000000000000000000000000000000000000000000000000000 | 2.7612 | 0.899699 |
estado_civil | estado_civilCasado(a) | 0.9608856089 | 0.4631243155762583274537291799788363277912139892578125000000000000000000000000000000000000000000000000000000000000000000000 | 2.1485 | 0.917989 |
faixa_etaria | faixa_etaria.L | 0.9686296280 | 0.3503785510403378822275044512934982776641845703125000000000000000000000000000000000000000000000000000000000000000000000000 | 3.4811 | 0.955191 |
voce_sabe_o_que_sao_probioticos | voce_sabe_o_que_sao_probioticos2 | 1.0086805517 | 0.4851042765499380404747853390290401875972747802734375000000000000000000000000000000000000000000000000000000000000000000000 | 2.3085 | 0.982475 |
cor_da_pele | cor_da_pelePrefiro não declarar | 0.0000002556 | 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131 | 914,591,996.8828 | 0.984858 |
cor_da_pele | cor_da_peleBranca | 0.0000005361 | 4,331,496,309,354,552,885,248.0000 | 0.985597 | |
cor_da_pele | cor_da_pelePreta | 0.0000005385 | 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080187 | 2,615,534,516.1576 | 0.985602 |
cor_da_pele | cor_da_peleParda | 0.0000006733 | 3,919,975,157,636,875,681,792.0000 | 0.985825 | |
estado_civil | estado_civilViúvo(a) | 594,903.1737882132 | 0.0000000000000000000000000000000000000000015576484032542699143686956932820428870329665502936488076686465299270846690275642 | 0.987375 | |
voce_pratica_alguma_atividade_fisica_regularmente | voce_pratica_alguma_atividade_fisica_regularmente2 | 1.0011376559 | 0.5099844281936086742845759545161854475736618041992187500000000000000000000000000000000000000000000000000000000000000000000 | 2.0875 | 0.997455 |
cor_da_pele | cor_da_peleIndígena | 0.9999999990 | 0.0000000000000000000096489822721767206364029744058047490025369823467222981066681447570587693007837515324354171752929687500 | 103,637,872,863,760,695,296.0000 | 1.000000 |
#==========================================================
# Seleção das variáveis para o modelo múltiplo
#==========================================================
variaveis_selecionadas <-
resultado_univariado |>
dplyr::filter(
p.value < 0.20
) |>
dplyr::distinct(
variavel
) |>
dplyr::pull()
variaveis_selecionadas[1] "sexo"
[2] "escolaridade"
[3] "estado_civil"
[4] "voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao"
[5] "voce_consome_suco_de_frutas"
#==========================================================
# Fórmula do modelo múltiplo
#==========================================================
formula_modelo <-
reformulate(
variaveis_selecionadas,
response = "desfecho_binario"
)
formula_modelodesfecho_binario ~ sexo + escolaridade + estado_civil + voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao +
voce_consome_suco_de_frutas
modelo_logistico <-
glm(
formula_modelo,
data = banco_log,
family = binomial()
)
summary(modelo_logistico)
Call:
glm(formula = formula_modelo, family = binomial(), data = banco_log)
Coefficients:
Estimate
(Intercept) 2.599
sexoFeminino -0.282
sexoPrefiro não identificar -2.384
escolaridade.L 2.175
escolaridade.Q -0.435
escolaridade.C -1.316
escolaridade^4 0.927
escolaridade^5 -1.536
escolaridade^6 0.107
estado_civilCasado(a) -0.200
estado_civilViúvo(a) 14.102
estado_civilDivorciado(a) 0.884
estado_civilUnião estável -0.863
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao2 -0.653
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao3 -1.938
voce_consome_suco_de_frutas2 -1.663
Std. Error
(Intercept) 0.470
sexoFeminino 0.359
sexoPrefiro não identificar 1.567
escolaridade.L 0.996
escolaridade.Q 0.718
escolaridade.C 0.943
escolaridade^4 1.101
escolaridade^5 0.883
escolaridade^6 0.505
estado_civilCasado(a) 0.438
estado_civilViúvo(a) 816.879
estado_civilDivorciado(a) 1.315
estado_civilUnião estável 0.606
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao2 0.383
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao3 0.713
voce_consome_suco_de_frutas2 0.521
z value
(Intercept) 5.53
sexoFeminino -0.79
sexoPrefiro não identificar -1.52
escolaridade.L 2.18
escolaridade.Q -0.61
escolaridade.C -1.40
escolaridade^4 0.84
escolaridade^5 -1.74
escolaridade^6 0.21
estado_civilCasado(a) -0.46
estado_civilViúvo(a) 0.02
estado_civilDivorciado(a) 0.67
estado_civilUnião estável -1.42
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao2 -1.70
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao3 -2.72
voce_consome_suco_de_frutas2 -3.19
Pr(>|z|)
(Intercept) 0.000000032
sexoFeminino 0.4324
sexoPrefiro não identificar 0.1282
escolaridade.L 0.0290
escolaridade.Q 0.5446
escolaridade.C 0.1627
escolaridade^4 0.4000
escolaridade^5 0.0822
escolaridade^6 0.8325
estado_civilCasado(a) 0.6484
estado_civilViúvo(a) 0.9862
estado_civilDivorciado(a) 0.5015
estado_civilUnião estável 0.1542
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao2 0.0883
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao3 0.0065
voce_consome_suco_de_frutas2 0.0014
(Intercept) ***
sexoFeminino
sexoPrefiro não identificar
escolaridade.L *
escolaridade.Q
escolaridade.C
escolaridade^4
escolaridade^5 .
escolaridade^6
estado_civilCasado(a)
estado_civilViúvo(a)
estado_civilDivorciado(a)
estado_civilUnião estável
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao2 .
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao3 **
voce_consome_suco_de_frutas2 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 287.54 on 446 degrees of freedom
Residual deviance: 262.10 on 431 degrees of freedom
AIC: 294.1
Number of Fisher Scoring iterations: 14
Variável | OR | IC95 | p |
|---|---|---|---|
sexoFeminino | 0.754 | (0.377 ; 1.554) | 0.4324 |
sexoPrefiro não identificar | 0.092 | (0.003 ; 2.894) | 0.1282 |
escolaridade.L | 8.804 | (1.023 ; 64.748) | 0.0290 |
escolaridade.Q | 0.647 | (0.177 ; 3.702) | 0.5446 |
escolaridade.C | 0.268 | (0.035 ; 1.689) | 0.1627 |
escolaridade^4 | 2.526 | (0.233 ; 24.936) | 0.4000 |
escolaridade^5 | 0.215 | (0.031 ; 1.27) | 0.0822 |
escolaridade^6 | 1.113 | (0.398 ; 3.07) | 0.8325 |
estado_civilCasado(a) | 0.819 | (0.355 ; 2.004) | 0.6484 |
estado_civilViúvo(a) | 1,331,238.657 | (0 ; NA) | 0.9862 |
estado_civilDivorciado(a) | 2.420 | (0.314 ; 81.181) | 0.5015 |
estado_civilUnião estável | 0.422 | (0.136 ; 1.532) | 0.1542 |
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao2 | 0.520 | (0.238 ; 1.081) | 0.0883 |
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao3 | 0.144 | (0.037 ; 0.634) | 0.0065 |
voce_consome_suco_de_frutas2 | 0.190 | (0.07 ; 0.551) | 0.0014 |
74 Pseudo-R²
performance::r2(modelo_logistico)# R2 for Logistic Regression
Tjur's R2: 0.075
75 Multicolinearidade
performance::check_collinearity(
modelo_logistico
)# Check for Multicollinearity
Low Correlation
Term VIF
sexo 1.12
escolaridade 1.82
estado_civil 1.63
voce_se_considera_uma_pessoa_preocupada_com_a_saude_e_a_alimentacao 1.20
voce_consome_suco_de_frutas 1.15
VIF 95% CI adj. VIF Tolerance Tolerance 95% CI
[1.05, 1.30] 1.03 0.90 [0.77, 0.96]
[1.62, 2.09] 1.05 0.55 [0.48, 0.62]
[1.45, 1.86] 1.06 0.61 [0.54, 0.69]
[1.10, 1.37] 1.05 0.84 [0.73, 0.91]
[1.07, 1.32] 1.07 0.87 [0.76, 0.94]
76 Qualidade do ajuste
#| label: logistica-diagnostico
performance::check_model(
modelo_logistico
)- resíduos;
- influência;
- linearidade;
- ajuste;
- observações influentes.
77 Curva ROC
Instale um pacote apenas se ainda não estiver disponível:
library("pROC")roc_obj <-
roc(
banco_log$desfecho_binario,
fitted(modelo_logistico)
)
plot(
roc_obj,
col = "blue",
lwd = 3,
legacy.axes = TRUE
)auc(roc_obj)Area under the curve: 0.698
O modelo de regressão logística foi ajustado para investigar os fatores associados à intenção de compra de um suco misto de jabuticaba e morango contendo probióticos. A qualidade do ajuste foi avaliada por meio do pseudo-R², diagnóstico dos resíduos, verificação de multicolinearidade e curva ROC. Os resultados são apresentados como Odds Ratios (OR), respectivos intervalos de confiança de 95% e valores de p.
78 7. Conhecimento sobre Probióticos e Intenção de Compra
Esta etapa avaliou a associação entre o conhecimento prévio sobre probióticos e a intenção de compra de um suco misto contendo probióticos.
#| label: conhecimento-quiquadrado
#| echo: true
banco_log <-
banco |>
dplyr::mutate(
compraria_suco = ifelse(
voce_compraria_um_suco_misto_de_jabuticaba_e_morango_contendo_probioticos == 1,
1,
0
)
)
tabela_conhecimento <-
table(
banco_log$voce_sabe_o_que_sao_probioticos,
banco_log$compraria_suco
)
tabela_conhecimento
0 1
1 35 320
2 9 83
chisq.test(
tabela_conhecimento
)
Pearson's Chi-squared test with Yates' continuity correction
data: tabela_conhecimento
X-squared = 0.000000000000000000000000000058, df = 1, p-value = 1
prop.table(
tabela_conhecimento,
margin = 1
)
0 1
1 0.09859 0.90141
2 0.09783 0.90217
Error in `geom_bar()`:
! Problem while computing aesthetics.
ℹ Error occurred in the 1st layer.
Caused by error:
! object 'compraria_suco' not found
79 8. Sintomas Gastrointestinais e Intenção de Compra
Nesta etapa foi investigado se a presença de sintomas ou doenças gastrointestinais está associada à intenção de compra do suco misto contendo probióticos.
Inicialmente foram realizadas análises bivariadas por meio do teste do qui-quadrado de independência. Quando pertinente, os resultados poderão ser posteriormente incorporados aos modelos de regressão logística.
tabela_doenca <-
table(
banco$voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal,
banco$compraria_suco
)Error in table(banco$voce_ja_foi_diagnosticado_com_alguma_doenca_gastrointestinal, : all arguments must have the same length
tabela_doencaError in eval(expr, envir, enclos): object 'tabela_doenca' not found
chisq.test(
tabela_doenca
)Error in eval(expr, envir, enclos): object 'tabela_doenca' not found
tabela_sintomas <-
table(
banco$os_sintomas_gastrointestinais_interferem_nas_suas_atividades_diarias,
banco$compraria_suco
)Error in table(banco$os_sintomas_gastrointestinais_interferem_nas_suas_atividades_diarias, : all arguments must have the same length
tabela_sintomasError in eval(expr, envir, enclos): object 'tabela_sintomas' not found
chisq.test(
tabela_sintomas
)Error in eval(expr, envir, enclos): object 'tabela_sintomas' not found
tabela_tratamento <-
table(
banco$voce_esta_em_tratamento_medico_atualmente_para_algum_problema_gastrointestinal,
banco$compraria_suco
)Error in table(banco$voce_esta_em_tratamento_medico_atualmente_para_algum_problema_gastrointestinal, : all arguments must have the same length
tabela_tratamentoError in eval(expr, envir, enclos): object 'tabela_tratamento' not found
chisq.test(
tabela_tratamento
)Error in eval(expr, envir, enclos): object 'tabela_tratamento' not found
Error in `geom_bar()`:
! Problem while computing aesthetics.
ℹ Error occurred in the 1st layer.
Caused by error:
! object 'compraria_suco' not found
80 9.Base para regressão logística ordinal
#| label: ordinal-preparacao-base
#==========================================================
# Base para regressão logística ordinal
#==========================================================
banco_ordinal <-
banco |>
dplyr::filter(
qual_o_valor_voce_estaria_disposto_a_a_pagar_por_uma_garrafa_300_m_l_deste_suco != 4
) |>
dplyr::mutate(
preco = factor(
qual_o_valor_voce_estaria_disposto_a_a_pagar_por_uma_garrafa_300_m_l_deste_suco,
levels = c(1, 2, 3),
labels = c(
"Até R$ 10,00",
"Entre R$ 10,00 e R$ 15,00",
"Entre R$ 15,00 e R$ 20,00"
),
ordered = TRUE
),
sexo = factor(sexo),
faixa_etaria = factor(faixa_etaria),
renda_familiar_mensal = factor(renda_familiar_mensal),
escolaridade = factor(escolaridade)
)
table(banco_ordinal$preco)
Até R$ 10,00 Entre R$ 10,00 e R$ 15,00 Entre R$ 15,00 e R$ 20,00
257 168 17
banco_ordinal <-
banco_ordinal |>
dplyr::mutate(
sexo = factor(sexo),
faixa_etaria = factor(faixa_etaria),
renda_familiar_mensal = factor(renda_familiar_mensal),
escolaridade = factor(escolaridade)
)#| label: ordinal-modelo
#| echo: true
modelo_ordinal <-
ordinal::clm(
preco ~
renda_familiar_mensal +
escolaridade +
faixa_etaria +
sexo,
data = banco_ordinal
)
summary(modelo_ordinal)formula: preco ~ renda_familiar_mensal + escolaridade + faixa_etaria + sexo
data: banco_ordinal
link threshold nobs logLik AIC niter max.grad cond.H
logit flexible 442 -342.20 724.39 6(0) 2.67e-10 2.6e+02
Coefficients:
Estimate Std. Error z value Pr(>|z|)
renda_familiar_mensal.L 0.8292 0.3357 2.47 0.014 *
renda_familiar_mensal.Q -0.2751 0.3183 -0.86 0.387
renda_familiar_mensal.C -0.2115 0.2919 -0.72 0.469
renda_familiar_mensal^4 -0.5923 0.2631 -2.25 0.024 *
renda_familiar_mensal^5 -0.3947 0.2296 -1.72 0.086 .
escolaridade.L -0.6563 0.7827 -0.84 0.402
escolaridade.Q 0.3328 0.5183 0.64 0.521
escolaridade.C -0.2178 0.6989 -0.31 0.755
escolaridade^4 -0.4991 0.8525 -0.59 0.558
escolaridade^5 0.4375 0.6722 0.65 0.515
escolaridade^6 0.0134 0.3635 0.04 0.971
faixa_etaria.L -0.2582 0.4240 -0.61 0.543
faixa_etaria.Q -0.0491 0.3681 -0.13 0.894
faixa_etaria.C 0.2149 0.3451 0.62 0.534
faixa_etaria^4 0.2646 0.3162 0.84 0.403
faixa_etaria^5 0.6987 0.2720 2.57 0.010 *
sexoFeminino -0.6040 0.2311 -2.61 0.009 **
sexoPrefiro não identificar 1.4637 1.3635 1.07 0.283
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Threshold coefficients:
Estimate Std. Error z value
Até R$ 10,00|Entre R$ 10,00 e R$ 15,00 -0.120 0.265 -0.45
Entre R$ 10,00 e R$ 15,00|Entre R$ 15,00 e R$ 20,00 2.894 0.345 8.39
resultado_ordinal <-
broom::tidy(
modelo_ordinal
) |>
dplyr::mutate(
OR = exp(estimate),
IC95_inf = exp(estimate - 1.96 * std.error),
IC95_sup = exp(estimate + 1.96 * std.error)
)
resultado_ordinal# A tibble: 20 × 9
term estimate std.error statistic p.value coef.type OR IC95_inf
<chr> <dbl> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
1 Até R$ 10,00… -0.120 0.265 -0.455 6.49e- 1 intercept 0.887 0.527
2 Entre R$ 10,… 2.89 0.345 8.39 4.89e-17 intercept 18.1 9.19
3 renda_famili… 0.829 0.336 2.47 1.35e- 2 location 2.29 1.19
4 renda_famili… -0.275 0.318 -0.864 3.87e- 1 location 0.760 0.407
5 renda_famili… -0.212 0.292 -0.724 4.69e- 1 location 0.809 0.457
6 renda_famili… -0.592 0.263 -2.25 2.44e- 2 location 0.553 0.330
7 renda_famili… -0.395 0.230 -1.72 8.56e- 2 location 0.674 0.430
8 escolaridade… -0.656 0.783 -0.839 4.02e- 1 location 0.519 0.112
9 escolaridade… 0.333 0.518 0.642 5.21e- 1 location 1.39 0.505
10 escolaridade… -0.218 0.699 -0.312 7.55e- 1 location 0.804 0.204
11 escolaridade… -0.499 0.853 -0.585 5.58e- 1 location 0.607 0.114
12 escolaridade… 0.438 0.672 0.651 5.15e- 1 location 1.55 0.415
13 escolaridade… 0.0134 0.364 0.0368 9.71e- 1 location 1.01 0.497
14 faixa_etaria… -0.258 0.424 -0.609 5.43e- 1 location 0.772 0.336
15 faixa_etaria… -0.0491 0.368 -0.133 8.94e- 1 location 0.952 0.463
16 faixa_etaria… 0.215 0.345 0.623 5.34e- 1 location 1.24 0.630
17 faixa_etaria… 0.265 0.316 0.837 4.03e- 1 location 1.30 0.701
18 faixa_etaria… 0.699 0.272 2.57 1.02e- 2 location 2.01 1.18
19 sexoFeminino -0.604 0.231 -2.61 8.96e- 3 location 0.547 0.348
20 sexoPrefiro … 1.46 1.36 1.07 2.83e- 1 location 4.32 0.299
# ℹ 1 more variable: IC95_sup <dbl>
table(
banco$qual_dos_tres_rotulos_te_chamou_mais_atencao,
useNA = "ifany"
)
1 2 3
25 95 327
str(
banco$qual_dos_tres_rotulos_te_chamou_mais_atencao
) num [1:447] 1 2 3 3 3 1 3 3 2 3 ...
table(
banco$o_que_mais_chamou_sua_atencao_nos_rotulos_acima,
useNA = "ifany"
)
1 2 3 4
227 72 139 9
tabela_rotulos <-
table(
Rótulo = banco$qual_dos_tres_rotulos_te_chamou_mais_atencao,
Característica = banco$o_que_mais_chamou_sua_atencao_nos_rotulos_acima
)
dimnames(tabela_rotulos) <-
list(
"Rótulo" = c(
"Rótulo 1",
"Rótulo 2",
"Rótulo 3"
),
"Característica" = c(
"Benefícios para a saúde",
"Inovação no mercado",
"Sabor diferenciado",
"Não me interessaria"
)
)
tabela_rotulos Característica
Rótulo Benefícios para a saúde Inovação no mercado Sabor diferenciado
Rótulo 1 7 3 14
Rótulo 2 28 22 41
Rótulo 3 192 47 84
Característica
Rótulo Não me interessaria
Rótulo 1 1
Rótulo 2 4
Rótulo 3 4
teste_rotulos <-
chisq.test(
tabela_rotulos
)
teste_rotulos
Pearson's Chi-squared test
data: tabela_rotulos
X-squared = 35, df = 6, p-value = 0.000004
round(
teste_rotulos$stdres,
2
) Característica
Rótulo Benefícios para a saúde Inovação no mercado Sabor diferenciado
Rótulo 1 -2.35 -0.57 2.77
Rótulo 2 -4.68 2.11 2.86
Rótulo 3 5.54 -1.65 -4.08
Característica
Rótulo Não me interessaria
Rótulo 1 0.73
Rótulo 2 1.72
Rótulo 3 -1.96
round(
prop.table(
tabela_rotulos,
margin = 1
),
3
) Característica
Rótulo Benefícios para a saúde Inovação no mercado Sabor diferenciado
Rótulo 1 0.280 0.120 0.560
Rótulo 2 0.295 0.232 0.432
Rótulo 3 0.587 0.144 0.257
Característica
Rótulo Não me interessaria
Rótulo 1 0.040
Rótulo 2 0.042
Rótulo 3 0.012
#|label: rotulos-mosaico
#|fig-width: 9
#|fig-height: 7
mosaicplot(
tabela_rotulos,
shade = TRUE,
color = TRUE,
main = "Preferência pelos rótulos segundo a característica valorizada",
xlab = "Rótulo",
ylab = "Característica"
)as.data.frame(
tabela_rotulos
) |>
flextable::flextable() |>
flextable::autofit()Rótulo | Característica | Freq |
|---|---|---|
Rótulo 1 | Benefícios para a saúde | 7 |
Rótulo 2 | Benefícios para a saúde | 28 |
Rótulo 3 | Benefícios para a saúde | 192 |
Rótulo 1 | Inovação no mercado | 3 |
Rótulo 2 | Inovação no mercado | 22 |
Rótulo 3 | Inovação no mercado | 47 |
Rótulo 1 | Sabor diferenciado | 14 |
Rótulo 2 | Sabor diferenciado | 41 |
Rótulo 3 | Sabor diferenciado | 84 |
Rótulo 1 | Não me interessaria | 1 |
Rótulo 2 | Não me interessaria | 4 |
Rótulo 3 | Não me interessaria | 4 |
dados_rotulos <-
banco |>
dplyr::filter(
o_que_mais_chamou_sua_atencao_nos_rotulos_acima != 4
)
tabela_rotulos2 <-
table(
dados_rotulos$qual_dos_tres_rotulos_te_chamou_mais_atencao,
dados_rotulos$o_que_mais_chamou_sua_atencao_nos_rotulos_acima
)
teste_rotulos2 <-
chisq.test(
tabela_rotulos2
)
teste_rotulos2
Pearson's Chi-squared test
data: tabela_rotulos2
X-squared = 32, df = 4, p-value = 0.000002
sum(teste_rotulos2$expected < 5)[1] 1
min(teste_rotulos2$expected)[1] 3.945