# libraries
library(tidyverse)
set.seed(1234)
<- read_csv("../data/raw/Banco 07 11 V3.csv")
df_raw
# df_raw |> glimpse()
# date adjust
<- df_raw |>
df mutate(DT_NASC_GERAL = dmy(DT_NASC_GERAL),
Data1ano = dmy(Data1ano),
DT_SIN_PRI = dmy(DT_SIN_PRI),
DT_FIM2 = dmy(DT_FIM2),
)
# df |> glimpse()
# renomear categorias das variáveis
<- df %>%
df mutate(SEXO2 = case_when(SEXO2 == 0 ~ "Fem",
== 1 ~ "Masc"),
SEXO2
Raca3 = case_when(Raca3 == 1 ~ "Branca",
== 2 ~ "Negra",
Raca3 == 3 ~ "Amarela",
Raca3 == 4 ~ "Parda",
Raca3 == 5 ~ "Indígena",
Raca3 == 9 ~ "Ignorado"),
Raca3
GidadeMae = case_when(GidadeMae == 1 ~ "11-19",
== 2 ~ "20-34",
GidadeMae == 3 ~ "35+"),
GidadeMae
Gescola3 = case_when(Gescola3 == 1 ~ "0-7",
== 2 ~ "8-11",
Gescola3 == 3 ~ "12+",
Gescola3 == 4 ~ "Ignorado"),
Gescola3
Gpeso = case_when(Gpeso == 0 ~ "2500+",
== 1 ~ "<2500"),
Gpeso
Gtermo = case_when(Gtermo == 0 ~ "37+",
== 1 ~ "19-31",
Gtermo == 2 ~ "23-36"),
Gtermo
Irmao = case_when(Irmao == 0 ~ "Não",
== 1 ~ "Sim",
Irmao == 9 ~ "Ignorado"),
Irmao
PARTO = case_when(PARTO == 1 ~ "Vaginal",
== 2 ~ "Cesáreo",
PARTO == 9 ~ "Ignorado"),
PARTO
Trimestre = case_when(Trimestre == 1 ~ "Jan-Mar",
== 2 ~ "Abr-Jun",
Trimestre == 3 ~ "Jul-Set",
Trimestre == 4 ~ "Out-Dez")) %>%
Trimestre select(rsv1, SEXO2, Raca3, GidadeMae, Gescola3, Gpeso, Gtermo, Irmao, PARTO, Trimestre)
# filtrar excluindo 'ignorado'
<- df |>
df filter(Raca3 != "Ignorado",
!= "Ignorado",
Gescola3 != "Ignorado",
Irmao != "Ignorado")
PARTO
# df |> glimpse()
Modelos de efeitos aleatórios
1 Bibliotecas e letura dos dados
2 Pergunta de pesquisa
Os fatores acossiados sofrem influencia da sazonalidade?
3 Modelos
Iremos rodar alguns modelos da classe Binomial Negativo com a exponeciação dos coeficientes para que o output seja um IRR (Incidence Rate Ratio), para uma melhor interpretação dos resultados.
3.1 Variáveis
Variável desfecho: rsv1
- casos que ocorreram dureante 1 ano
Variável de efeito aleatório: Trimestre
- trimestre de nascimento
obs. Temporada de virus sincissial é entre março a julho
Variáveis de efeito fixo:
- SEXO2
- sexo biológico - Raca3
- raça - GidadeMae2
- idade da mãe - Gescola3
- grau de escolaridade da mãe - Gpeso
- peso ao nascer - Gtermo2
- pre-termo extremo, pre-termo, termo normal, pós-termo - Irmao
- se tem irmão - PARTO
- tipo de parto
library(lme4)
library(lmerTest)
library(MASS)
library(glmmTMB)
library(parameters)
library(performance)
library(gtsummary)
3.2 Modelo 1
Modelo de efeitos fixos, sem considerar a sazonalidade.
# modelo binomial negativo - MASS
<- glm.nb(rsv1 ~ SEXO2 + Raca3 + GidadeMae + Gescola3 + Gpeso + Gtermo + Irmao + PARTO,
modelo1_nb data = df)
parameters(modelo1_nb, ci_method="wald", exp = TRUE)
model_performance(modelo1_nb)
Testando interações
- Sexo e Peso ao Nascer (SEXO2 * Gpeso): O efeito do peso ao nascer pode variar dependendo do sexo do bebê. Por exemplo, peso baixo pode impactar diferentemente meninos e meninas.
<- glm.nb(rsv1 ~ SEXO2 * Gpeso + Raca3 + GidadeMae + Gescola3 + Gtermo + Irmao + PARTO,
modelo1a_nb data = df)
parameters(modelo1a_nb, ci_method="wald", exp = TRUE)
- Idade Materna e Escolaridade (GidadeMae * Gescola3): O impacto da idade da mãe pode ser influenciado pelo nível de escolaridade, já que escolaridade pode afetar o acesso e cuidados pré-natais.
<- glm.nb(rsv1 ~ GidadeMae * Gescola3 + SEXO2 + Raca3 + Gpeso + Gtermo + Irmao + PARTO,
modelo1b_nb data = df)
parameters(modelo1b_nb, ci_method="wald", exp = TRUE)
- Peso ao Nascer e Termo de Gestação (Gpeso * Gtermo): Bebês nascidos a termo e prematuros podem ter diferentes desfechos dependendo do peso ao nascer, então essa interação pode capturar a interação entre maturidade e peso.
<- glm.nb(rsv1 ~ Gpeso * Gtermo + SEXO2 + Raca3 + GidadeMae + Gescola3 + Irmao + PARTO,
modelo1c_nb data = df)
parameters(modelo1c_nb, ci_method="wald", exp = TRUE)
- Raça e Escolaridade (Raca3 * Gescola3): Em alguns contextos, o impacto da escolaridade no desfecho pode variar entre diferentes grupos raciais.
<- glm.nb(rsv1 ~ Raca3 * Gescola3 + SEXO2 + GidadeMae + Gpeso + Gtermo + Irmao + PARTO,
modelo1d_nb data = df)
parameters(modelo1d_nb, ci_method="wald", exp = TRUE)
Conclusão sobre as interações
Nenhuma das interações foi significativa.
3.3 Modelo 2
Modelo de efeitos fixos, considerando a sazonalidade como dummy.
<- glm.nb(rsv1 ~ SEXO2 + Raca3 + GidadeMae + Gescola3 + Gpeso + Gtermo + Irmao + PARTO + Trimestre,
modelo2_nb data = df)
parameters(modelo2_nb, ci_method="wald", exp = TRUE)
model_performance(modelo2_nb)
A razão de incidência (IRR) de 1.31 indica que a taxa de incidência do desfecho é 31% maior no trimestre de Janeiro a Março em comparação com o trimestre de referência (Abr-Jun). Esse efeito é estatisticamente significativo (p = 0.002), sugerindo que há um aumento no desfecho durante o início do ano.
3.4 Modelo 3
Modelo binomial negativo nulo com efeitos aleatórios para o trimestre.
<- df |>
df_modelo3 mutate(Trimestre = case_when(Trimestre == "Jan-Mar" ~ 1,
== "Abr-Jun" ~ 2,
Trimestre == "Jul-Set" ~ 3,
Trimestre == "Out-Dez" ~ 4))
Trimestre
<- glmmTMB(rsv1 ~ 1 + (1 | Trimestre),
modelo3_nb family = nbinom1,
data = df_modelo3)
parameters(modelo3_nb, ci_method="wald", exp = TRUE)
icc(modelo3_nb)
3.5 Modelo 4
Modelo binomial negativo com efeitos fixos e aleatórios para o trimestre.
<- glmmTMB(rsv1 ~ SEXO2 + Raca3 + GidadeMae + Gescola3 + Gpeso + Gtermo + Irmao + PARTO + (1 | Trimestre),
modelo4_nb family = nbinom1,
data = df_modelo3)
parameters(modelo4_nb, ci_method="wald", exp = TRUE)
icc(modelo4_nb)
model_performance(modelo4_nb)
Efeitos Fixos
- Variáveis Significativas:
- SEXO2 [Masc]: A IRR de 1.35 indica que a taxa de incidência do desfecho é 35% maior para o sexo masculino em comparação com o feminino, sendo estatisticamente significativa (p < 0.001).
- Gescola3 [12+]: A IRR de 2.79 sugere que a taxa de incidência é 179% maior para mães com 12+ anos de escolaridade em comparação com o grupo de referência (0-7 anos), também com significância (p < 0.001).
- Gpeso [2500+]: A IRR de 0.69 mostra que a taxa de incidência é 31% menor para bebês com peso de 2500g ou mais, o que é estatisticamente significativo (p = 0.001).
- Irmao [Sim]: A IRR de 1.79 indica que a taxa de incidência é 79% maior para aqueles que têm irmãos, com significância (p < 0.001).
- Variáveis Não Significativas:
- Raça (Raca3): Nenhuma das categorias de raça (Branca, Indígena, Negra, Parda) é significativa, sugerindo que não há uma associação clara entre raça e o desfecho no modelo ajustado.
- GidadeMae (Idade da Mãe): Nenhuma das categorias de idade é estatisticamente significativa, sugerindo que a idade materna não influencia significativamente o desfecho.
- Gtermo (Semanas de Gestação): A categoria 37+ semanas está quase no limite da significância (p = 0.064), indicando uma possível associação protetora, mas não é conclusiva.
Efeito Aleatório
Desvio Padrão do Intercepto para Trimestre (SD: 0.11): Esse desvio padrão representa a variação entre os trimestres na taxa de incidência do desfecho. Como o valor é relativamente pequeno, a variabilidade sazonal entre trimestres é limitada. Esse valor está em linha com o modelo nulo, indicando uma leve influência da sazonalidade, mas não muito expressiva.
Intraclass Correlation Coefficient (ICC):
- O ICC ajustado de 0.001 indica que apenas 0.1% da variância total no desfecho é atribuível à variabilidade entre os trimestres. Esse valor é muito baixo, sugerindo que a sazonalidade (Trimestre) não explica de forma significativa a variabilidade do desfecho quando outros fatores estão no modelo.
Conclusão
- Sazonalidade (Trimestre): Com um ICC de 0.001 e uma baixa variância do efeito aleatório, a sazonalidade tem um efeito muito pequeno na variação do desfecho, especialmente após ajustar para outros fatores significativos. Esse resultado indica que a variabilidade sazonal entre trimestres é mínima.
- Interpretação Geral: A inclusão de Trimestre como efeito aleatório ajuda a capturar uma pequena variação sazonal, mas não adiciona uma explicação significativa ao modelo. Os efeitos fixos, especialmente Sexo, Escolaridade e Peso ao Nascer, são os principais fatores associados ao desfecho.
Esse modelo sugere que, embora a sazonalidade tenha uma influência mínima, outros fatores demográficos e socioeconômicos desempenham um papel mais relevante na explicação do desfecho.
3.6 Comparação entre modelos
compare_performance(modelo1_nb, modelo2_nb, modelo4_nb)
test_performance(modelo1_nb, modelo2_nb, modelo4_nb)
- AIC e AICc:
- modelo2_nb tem o menor valor de AIC (15162.1) e, consequentemente, a maior weight (0.927), indicando que ele é o modelo mais bem ajustado entre os três.
- modelo4_nb apresenta o segundo melhor AIC (15167.3) com uma weight de 0.067. Esse modelo inclui o efeito aleatório para Trimestre, mas a melhora no ajuste é mínima em comparação com modelo2_nb.
- modelo1_nb tem o AIC mais alto (15171.9) e, portanto, o pior ajuste entre os modelos.
- BIC:
- O BIC penaliza modelos mais complexos, e o modelo1_nb possui o menor BIC, indicando que ele é o modelo preferido quando se leva em conta a penalização por complexidade.
- Como modelo4_nb tem um BIC mais alto, isso indica que a inclusão do efeito aleatório para Trimestre torna o modelo mais complexo, sem grande benefício em termos de ajuste.
- Nagelkerke’s R² e R² Condicional e Marginal:
- modelo4_nb tem o maior R² condicional e marginal (0.035), que reflete a variância explicada tanto pelos efeitos fixos quanto pelo efeito aleatório de Trimestre. Isso sugere que a inclusão do efeito aleatório para Trimestre no modelo4_nb adiciona uma pequena quantidade de variância explicada ao modelo.
- Os modelos modelo1_nb e modelo2_nb não possuem R² condicional ou marginal apresentados, pois não incluem efeitos aleatórios.
- Comparação de Bayes Factor (BF):
- O Bayes Factor (BF) mostra a comparação com o modelo1_nb como referência:
- modelo2_nb tem um BF próximo de zero em comparação com o modelo1_nb, indicando que modelo2_nb é fortemente preferido ao modelo1_nb.
- modelo4_nb tem um BF de 0.025 em comparação ao modelo1_nb, o que indica uma preferência menor por modelo4_nb.
- O Bayes Factor (BF) mostra a comparação com o modelo1_nb como referência:
Conclusão e Recomendação
- modelo2_nb é o modelo preferido com base no AIC e nos Bayes Factors, indicando que ele é o mais ajustado entre os três.
- modelo4_nb, que inclui o efeito aleatório para Trimestre, explica ligeiramente mais variância (como indicado pelo R² condicional), mas esse ganho em variância explicada é pequeno e não compensa a complexidade adicional, conforme indicado pelo BIC e pelo Bayes Factor.
- Recomendação: O modelo2_nb é a melhor escolha em termos de equilíbrio entre ajuste e simplicidade, especialmente se o efeito aleatório de Trimestre (presente no modelo4_nb) não for essencial para responder à pergunta de pesquisa.