Carregamento de Pacotes e Dados
# Carregamento dos pacotes necessários
library(haven) # Para ler arquivos .sav
library(dplyr) # Manipulação de dados
library(ggplot2) # Visualização
library(broom) # Para organizar resultados dos modelos
library(knitr) # Para tabelas
library(purrr) # Para programação funcional
library(tidyr) # Para reorganização de dados
library(gridExtra) # Para arranjar gráficos
# Carregamento da base de dados
dados <- read_sav("../2-base-de-analise/PISA2022_LATAM_resiliencia.sav")
# Remover casos com valores missing nas variáveis principais
dados_limpos <- dados %>%
filter(!is.na(CNT) & !is.na(ICTEFFIC) &
!is.na(resil_math) & !is.na(resil_read) & !is.na(resil_scie))
# Verificação da estrutura dos dados
str(dados_limpos[c("CNT", "resil_math", "resil_read", "resil_scie", "ICTEFFIC")])
## tibble [5,866 × 5] (S3: tbl_df/tbl/data.frame)
## $ CNT : chr+lbl [1:5866] ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG, ARG...
## ..@ label : chr "Country code 3-character"
## ..@ format.spss : chr "A3"
## ..@ display_width: int 3
## ..@ labels : Named chr [1:81] "MDA" "THA" "BRA" "FRA" ...
## .. ..- attr(*, "names")= chr [1:81] "Republic of Moldova" "Thailand" "Brazil" "France" ...
## $ resil_math: num [1:5866] 0 0 0 0 0 0 0 0 0 0 ...
## ..- attr(*, "format.spss")= chr "F8.0"
## $ resil_read: num [1:5866] 0 0 0 0 0 0 0 0 0 0 ...
## ..- attr(*, "format.spss")= chr "F8.0"
## $ resil_scie: num [1:5866] 0 0 0 0 0 0 0 0 0 0 ...
## ..- attr(*, "format.spss")= chr "F8.0"
## $ ICTEFFIC : dbl+lbl [1:5866] -0.153, 0.244, -1.275, -1.091, -0.283, -1.222, -0.70...
## ..@ label : chr "Self-efficacy in digital competencies (WLE)"
## ..@ format.spss: chr "F7.4"
## ..@ labels : Named num [1:4] 95 97 98 99
## .. ..- attr(*, "names")= chr [1:4] "Valid Skip" "Not Applicable" "Invalid" "No Response"
# Resumo das variáveis principais
summary(dados_limpos[c("CNT", "resil_math", "resil_read", "resil_scie", "ICTEFFIC")])
## CNT resil_math resil_read resil_scie
## Length:5866 Min. :0.0000 Min. :0.0000 Min. :0.0000
## Class :character 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Mode :character Median :0.0000 Median :0.0000 Median :0.0000
## Mean :0.1221 Mean :0.1308 Mean :0.1287
## 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:0.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000
## ICTEFFIC
## Min. :-2.6482
## 1st Qu.:-1.0314
## Median :-0.5568
## Mean :-0.4617
## 3rd Qu.:-0.1053
## Max. : 2.2885
Análise Exploratória
# Contagem de países
cat("Países na amostra:\n")
## Países na amostra:
##
## ARG BRA CHL DOM PAN URY
## 1314 1340 1046 994 471 701
# Verificar variação nas variáveis dependentes por país
verificacao_variacao <- dados_limpos %>%
group_by(CNT) %>%
summarise(
n = n(),
resil_math_var = var(resil_math, na.rm = TRUE),
resil_read_var = var(resil_read, na.rm = TRUE),
resil_scie_var = var(resil_scie, na.rm = TRUE),
resil_math_prop = mean(resil_math, na.rm = TRUE),
resil_read_prop = mean(resil_read, na.rm = TRUE),
resil_scie_prop = mean(resil_scie, na.rm = TRUE),
ICTEFFIC_media = mean(ICTEFFIC, na.rm = TRUE),
ICTEFFIC_dp = sd(ICTEFFIC, na.rm = TRUE),
.groups = 'drop'
)
kable(verificacao_variacao, digits = 3,
caption = "Verificação de Dados por País")
Verificação de Dados por País
| ARG |
1314 |
0.099 |
0.109 |
0.108 |
0.111 |
0.124 |
0.123 |
-0.595 |
1.083 |
| BRA |
1340 |
0.105 |
0.120 |
0.111 |
0.119 |
0.140 |
0.128 |
-0.599 |
1.174 |
| CHL |
1046 |
0.095 |
0.099 |
0.092 |
0.106 |
0.111 |
0.102 |
-0.153 |
1.038 |
| DOM |
994 |
0.126 |
0.114 |
0.125 |
0.148 |
0.131 |
0.147 |
-0.463 |
1.162 |
| PAN |
471 |
0.087 |
0.093 |
0.095 |
0.096 |
0.104 |
0.106 |
-0.598 |
1.044 |
| URY |
701 |
0.130 |
0.144 |
0.142 |
0.153 |
0.174 |
0.171 |
-0.316 |
1.106 |
# Identificar países com problemas potenciais
paises_problematicos <- verificacao_variacao %>%
filter(n < 30 | resil_math_var == 0 | resil_read_var == 0 | resil_scie_var == 0 |
resil_math_prop %in% c(0, 1) | resil_read_prop %in% c(0, 1) | resil_scie_prop %in% c(0, 1))
if(nrow(paises_problematicos) > 0) {
cat("\nPaíses com dados insuficientes ou sem variação:\n")
print(paises_problematicos$CNT)
}
# Gráfico de distribuição do ICTEFFIC por país
p1 <- ggplot(dados_limpos, aes(x = CNT, y = ICTEFFIC)) +
geom_boxplot(fill = "lightblue", alpha = 0.7) +
theme_minimal() +
labs(title = "Distribuição do ICTEFFIC por País",
x = "País", y = "ICTEFFIC") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Proporção de resiliência por país
dados_prop <- dados_limpos %>%
group_by(CNT) %>%
summarise(
Matemática = mean(resil_math, na.rm = TRUE),
Leitura = mean(resil_read, na.rm = TRUE),
Ciências = mean(resil_scie, na.rm = TRUE),
.groups = 'drop'
) %>%
pivot_longer(cols = -CNT, names_to = "Disciplina", values_to = "Proporcao")
p2 <- ggplot(dados_prop, aes(x = CNT, y = Proporcao, fill = Disciplina)) +
geom_bar(stat = "identity", position = "dodge") +
theme_minimal() +
labs(title = "Proporção de Resiliência por País e Disciplina",
x = "País", y = "Proporção de Resiliência") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_fill_brewer(palette = "Set2")
grid.arrange(p1, p2, ncol = 1)

Regressão Logística Global
Matemática
# Modelo global para resiliência em matemática
modelo_global_math <- glm(resil_math ~ ICTEFFIC,
data = dados_limpos,
family = binomial(link = "logit"))
# Resumo do modelo
summary(modelo_global_math)
##
## Call:
## glm(formula = resil_math ~ ICTEFFIC, family = binomial(link = "logit"),
## data = dados_limpos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.89350 0.04086 -46.336 < 2e-16 ***
## ICTEFFIC 0.22593 0.03372 6.701 2.08e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 4352.7 on 5865 degrees of freedom
## Residual deviance: 4309.1 on 5864 degrees of freedom
## AIC: 4313.1
##
## Number of Fisher Scoring iterations: 4
# Tabela completa: OR + p-value
resultado_math <- tidy(modelo_global_math) %>%
filter(term == "ICTEFFIC") %>%
mutate(
OR = exp(estimate),
OR_lower = exp(estimate - 1.96 * std.error),
OR_upper = exp(estimate + 1.96 * std.error)
) %>%
select(term, estimate, std.error, OR, OR_lower, OR_upper, statistic, p.value)
kable(resultado_math, digits = 4,
caption = "Resultados Completos - Matemática (Global)")
Resultados Completos - Matemática (Global)
| ICTEFFIC |
0.2259 |
0.0337 |
1.2535 |
1.1733 |
1.3391 |
6.7006 |
0 |
Leitura
# Modelo global para resiliência em leitura
modelo_global_read <- glm(resil_read ~ ICTEFFIC,
data = dados_limpos,
family = binomial(link = "logit"))
# Resumo do modelo
summary(modelo_global_read)
##
## Call:
## glm(formula = resil_read ~ ICTEFFIC, family = binomial(link = "logit"),
## data = dados_limpos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.80126 0.03950 -45.601 <2e-16 ***
## ICTEFFIC 0.28406 0.03256 8.724 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 4549.9 on 5865 degrees of freedom
## Residual deviance: 4476.0 on 5864 degrees of freedom
## AIC: 4480
##
## Number of Fisher Scoring iterations: 4
# Tabela completa: OR + p-value
resultado_read <- tidy(modelo_global_read) %>%
filter(term == "ICTEFFIC") %>%
mutate(
OR = exp(estimate),
OR_lower = exp(estimate - 1.96 * std.error),
OR_upper = exp(estimate + 1.96 * std.error)
) %>%
select(term, estimate, std.error, OR, OR_lower, OR_upper, statistic, p.value)
kable(resultado_read, digits = 4,
caption = "Resultados Completos - Leitura (Global)")
Resultados Completos - Leitura (Global)
| ICTEFFIC |
0.2841 |
0.0326 |
1.3285 |
1.2464 |
1.4161 |
8.7242 |
0 |
Ciências
# Modelo global para resiliência em ciências
modelo_global_scie <- glm(resil_scie ~ ICTEFFIC,
data = dados_limpos,
family = binomial(link = "logit"))
# Resumo do modelo
summary(modelo_global_scie)
##
## Call:
## glm(formula = resil_scie ~ ICTEFFIC, family = binomial(link = "logit"),
## data = dados_limpos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.82891 0.03992 -45.818 < 2e-16 ***
## ICTEFFIC 0.24037 0.03295 7.295 2.98e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 4504.2 on 5865 degrees of freedom
## Residual deviance: 4452.5 on 5864 degrees of freedom
## AIC: 4456.5
##
## Number of Fisher Scoring iterations: 4
# Tabela completa: OR + p-value
resultado_scie <- tidy(modelo_global_scie) %>%
filter(term == "ICTEFFIC") %>%
mutate(
OR = exp(estimate),
OR_lower = exp(estimate - 1.96 * std.error),
OR_upper = exp(estimate + 1.96 * std.error)
) %>%
select(term, estimate, std.error, OR, OR_lower, OR_upper, statistic, p.value)
kable(resultado_scie, digits = 4,
caption = "Resultados Completos - Ciências (Global)")
Resultados Completos - Ciências (Global)
| ICTEFFIC |
0.2404 |
0.0329 |
1.2717 |
1.1922 |
1.3566 |
7.2952 |
0 |
Regressão Logística por País
# Função para ajustar modelo logístico por país com tratamento de erros
ajustar_modelo_pais_seguro <- function(dados, variavel_resposta) {
# Filtrar países com dados suficientes
dados_filtrados <- dados %>%
group_by(CNT) %>%
filter(n() >= 30) %>% # Pelo menos 30 observações
mutate(
variacao = var(get(variavel_resposta), na.rm = TRUE),
proporcao = mean(get(variavel_resposta), na.rm = TRUE)
) %>%
filter(variacao > 0 & proporcao > 0 & proporcao < 1) %>% # Deve haver variação
ungroup()
# Ajustar modelos por país
resultados <- dados_filtrados %>%
group_by(CNT) %>%
do({
tryCatch({
modelo <- glm(get(variavel_resposta) ~ ICTEFFIC,
data = .,
family = binomial(link = "logit"))
# Verificar convergência
if(modelo$converged) {
coefs <- tidy(modelo)
data.frame(
sucesso = TRUE,
coeficientes = I(list(coefs)),
n_obs = nrow(.),
stringsAsFactors = FALSE
)
} else {
data.frame(
sucesso = FALSE,
coeficientes = I(list(NULL)),
n_obs = nrow(.),
erro = "Modelo não convergiu",
stringsAsFactors = FALSE
)
}
}, error = function(e) {
data.frame(
sucesso = FALSE,
coeficientes = I(list(NULL)),
n_obs = nrow(.),
erro = as.character(e$message),
stringsAsFactors = FALSE
)
})
})
return(resultados)
}
# Modelos por país para cada disciplina
cat("Ajustando modelos para Matemática...\n")
## Ajustando modelos para Matemática...
modelos_math_pais <- ajustar_modelo_pais_seguro(dados_limpos, "resil_math")
cat("Ajustando modelos para Leitura...\n")
## Ajustando modelos para Leitura...
modelos_read_pais <- ajustar_modelo_pais_seguro(dados_limpos, "resil_read")
cat("Ajustando modelos para Ciências...\n")
## Ajustando modelos para Ciências...
modelos_scie_pais <- ajustar_modelo_pais_seguro(dados_limpos, "resil_scie")
# Verificar sucessos e falhas
cat("\nResumo dos ajustes:\n")
##
## Resumo dos ajustes:
cat("Matemática - Sucessos:", sum(modelos_math_pais$sucesso), "/ Falhas:", sum(!modelos_math_pais$sucesso), "\n")
## Matemática - Sucessos: 6 / Falhas: 0
cat("Leitura - Sucessos:", sum(modelos_read_pais$sucesso), "/ Falhas:", sum(!modelos_read_pais$sucesso), "\n")
## Leitura - Sucessos: 6 / Falhas: 0
cat("Ciências - Sucessos:", sum(modelos_scie_pais$sucesso), "/ Falhas:", sum(!modelos_scie_pais$sucesso), "\n")
## Ciências - Sucessos: 6 / Falhas: 0
Resultados por País - Matemática
# Filtrar apenas modelos bem-sucedidos
modelos_math_ok <- modelos_math_pais %>% filter(sucesso == TRUE)
if(nrow(modelos_math_ok) > 0) {
# Extrair resultados completos para matemática
resultados_math_pais <- modelos_math_ok %>%
select(CNT, coeficientes) %>%
unnest(coeficientes) %>%
filter(term == "ICTEFFIC") %>%
mutate(
OR = exp(estimate),
OR_lower = exp(estimate - 1.96 * std.error),
OR_upper = exp(estimate + 1.96 * std.error)
) %>%
select(CNT, estimate, std.error, OR, OR_lower, OR_upper, statistic, p.value)
kable(resultados_math_pais, digits = 4,
caption = "Resultados Completos ICTEFFIC por País - Matemática")
# Para os gráficos (manter compatibilidade)
or_math_pais <- resultados_math_pais %>%
select(CNT, or_ICTEFFIC = OR)
} else {
cat("Nenhum modelo de matemática convergiu adequadamente.\n")
}
# Mostrar países com problemas
if(sum(!modelos_math_pais$sucesso) > 0) {
problemas_math <- modelos_math_pais %>%
filter(sucesso == FALSE) %>%
select(CNT, n_obs, erro)
cat("\nPaíses com problemas na modelagem (Matemática):\n")
kable(problemas_math, caption = "Problemas - Matemática")
}
Resultados por País - Leitura
# Filtrar apenas modelos bem-sucedidos
modelos_read_ok <- modelos_read_pais %>% filter(sucesso == TRUE)
if(nrow(modelos_read_ok) > 0) {
# Extrair resultados completos para leitura
resultados_read_pais <- modelos_read_ok %>%
select(CNT, coeficientes) %>%
unnest(coeficientes) %>%
filter(term == "ICTEFFIC") %>%
mutate(
OR = exp(estimate),
OR_lower = exp(estimate - 1.96 * std.error),
OR_upper = exp(estimate + 1.96 * std.error)
) %>%
select(CNT, estimate, std.error, OR, OR_lower, OR_upper, statistic, p.value)
kable(resultados_read_pais, digits = 4,
caption = "Resultados Completos ICTEFFIC por País - Leitura")
# Para os gráficos (manter compatibilidade)
or_read_pais <- resultados_read_pais %>%
select(CNT, or_ICTEFFIC = OR)
} else {
cat("Nenhum modelo de leitura convergiu adequadamente.\n")
}
# Mostrar países com problemas
if(sum(!modelos_read_pais$sucesso) > 0) {
problemas_read <- modelos_read_pais %>%
filter(sucesso == FALSE) %>%
select(CNT, n_obs, erro)
cat("\nPaíses com problemas na modelagem (Leitura):\n")
kable(problemas_read, caption = "Problemas - Leitura")
}
Resultados por País - Ciências
# Filtrar apenas modelos bem-sucedidos
modelos_scie_ok <- modelos_scie_pais %>% filter(sucesso == TRUE)
if(nrow(modelos_scie_ok) > 0) {
# Extrair resultados completos para ciências
resultados_scie_pais <- modelos_scie_ok %>%
select(CNT, coeficientes) %>%
unnest(coeficientes) %>%
filter(term == "ICTEFFIC") %>%
mutate(
OR = exp(estimate),
OR_lower = exp(estimate - 1.96 * std.error),
OR_upper = exp(estimate + 1.96 * std.error)
) %>%
select(CNT, estimate, std.error, OR, OR_lower, OR_upper, statistic, p.value)
kable(resultados_scie_pais, digits = 4,
caption = "Resultados Completos ICTEFFIC por País - Ciências")
# Para os gráficos (manter compatibilidade)
or_scie_pais <- resultados_scie_pais %>%
select(CNT, or_ICTEFFIC = OR)
} else {
cat("Nenhum modelo de ciências convergiu adequadamente.\n")
}
# Mostrar países com problemas
if(sum(!modelos_scie_pais$sucesso) > 0) {
problemas_scie <- modelos_scie_pais %>%
filter(sucesso == FALSE) %>%
select(CNT, n_obs, erro)
cat("\nPaíses com problemas na modelagem (Ciências):\n")
kable(problemas_scie, caption = "Problemas - Ciências")
}
Visualização dos Resultados
# Combinar todos os odds ratios (apenas modelos bem-sucedidos)
todos_or <- bind_rows()
if(exists("or_math_pais") && nrow(or_math_pais) > 0) {
todos_or <- bind_rows(todos_or, or_math_pais %>% mutate(Disciplina = "Matemática"))
}
if(exists("or_read_pais") && nrow(or_read_pais) > 0) {
todos_or <- bind_rows(todos_or, or_read_pais %>% mutate(Disciplina = "Leitura"))
}
if(exists("or_scie_pais") && nrow(or_scie_pais) > 0) {
todos_or <- bind_rows(todos_or, or_scie_pais %>% mutate(Disciplina = "Ciências"))
}
if(nrow(todos_or) > 0) {
# Gráfico dos odds ratios por país e disciplina
ggplot(todos_or, aes(x = CNT, y = or_ICTEFFIC, fill = Disciplina)) +
geom_bar(stat = "identity", position = "dodge") +
geom_hline(yintercept = 1, linetype = "dashed", color = "red") +
theme_minimal() +
labs(title = "Odds Ratios do ICTEFFIC por País e Disciplina",
x = "País",
y = "Odds Ratio",
caption = "Linha vermelha indica OR = 1 (sem efeito)") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_fill_brewer(palette = "Set2")
} else {
cat("Não há dados suficientes para gerar gráficos de odds ratios por país.\n")
}

# Combinar todos os coeficientes (apenas modelos bem-sucedidos)
todos_coef <- bind_rows()
if(exists("resultados_math_pais") && nrow(resultados_math_pais) > 0) {
todos_coef <- bind_rows(todos_coef, resultados_math_pais %>% mutate(Disciplina = "Matemática"))
}
if(exists("resultados_read_pais") && nrow(resultados_read_pais) > 0) {
todos_coef <- bind_rows(todos_coef, resultados_read_pais %>% mutate(Disciplina = "Leitura"))
}
if(exists("resultados_scie_pais") && nrow(resultados_scie_pais) > 0) {
todos_coef <- bind_rows(todos_coef, resultados_scie_pais %>% mutate(Disciplina = "Ciências"))
}
if(nrow(todos_coef) > 0) {
# Gráfico dos coeficientes com intervalos de confiança
ggplot(todos_coef, aes(x = CNT, y = estimate, color = Disciplina)) +
geom_point(position = position_dodge(width = 0.3)) +
geom_errorbar(aes(ymin = estimate - 1.96*std.error,
ymax = estimate + 1.96*std.error),
position = position_dodge(width = 0.3), width = 0.2) +
geom_hline(yintercept = 0, linetype = "dashed", color = "red") +
theme_minimal() +
labs(title = "Coeficientes do ICTEFFIC por País e Disciplina",
x = "País",
y = "Coeficiente (log-odds)",
caption = "Barras representam IC 95%. Linha vermelha indica coeficiente = 0") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_color_brewer(palette = "Set2")
} else {
cat("Não há dados suficientes para gerar gráficos de coeficientes por país.\n")
}

Resumo dos Resultados
# Tabela resumo comparando modelos globais COM p-values
resumo_global <- bind_rows(
tidy(modelo_global_math) %>% filter(term == "ICTEFFIC") %>% mutate(Disciplina = "Matemática"),
tidy(modelo_global_read) %>% filter(term == "ICTEFFIC") %>% mutate(Disciplina = "Leitura"),
tidy(modelo_global_scie) %>% filter(term == "ICTEFFIC") %>% mutate(Disciplina = "Ciências")
) %>%
mutate(OR = exp(estimate)) %>%
select(Disciplina, estimate, std.error, OR, statistic, p.value)
kable(resumo_global, digits = 4,
caption = "Resumo dos Modelos Globais - Com p-values")
Resumo dos Modelos Globais - Com p-values
| Matemática |
0.2259 |
0.0337 |
1.2535 |
6.7006 |
0 |
| Leitura |
0.2841 |
0.0326 |
1.3285 |
8.7242 |
0 |
| Ciências |
0.2404 |
0.0329 |
1.2717 |
7.2952 |
0 |
# Estatísticas descritivas dos OR por país (se disponível)
if(nrow(todos_or) > 0) {
resumo_or_pais <- todos_or %>%
group_by(Disciplina) %>%
summarise(
Paises_analisados = n(),
OR_min = min(or_ICTEFFIC, na.rm = TRUE),
OR_max = max(or_ICTEFFIC, na.rm = TRUE),
OR_media = mean(or_ICTEFFIC, na.rm = TRUE),
OR_mediana = median(or_ICTEFFIC, na.rm = TRUE),
.groups = 'drop'
)
kable(resumo_or_pais, digits = 3,
caption = "Estatísticas dos Odds Ratios por País")
} else {
cat("Não foi possível calcular estatísticas dos OR por país devido a problemas de convergência.\n")
}
Estatísticas dos Odds Ratios por País
| Ciências |
6 |
1.060 |
1.391 |
1.274 |
1.310 |
| Leitura |
6 |
1.071 |
1.567 |
1.310 |
1.310 |
| Matemática |
6 |
1.109 |
1.380 |
1.256 |
1.281 |
# Resumo de significância estatística
if(nrow(todos_coef) > 0) {
significancia_pais <- todos_coef %>%
mutate(
significativo = ifelse(p.value < 0.05, "Sim", "Não"),
efeito = case_when(
OR > 1 & p.value < 0.05 ~ "Positivo significativo",
OR < 1 & p.value < 0.05 ~ "Negativo significativo",
p.value >= 0.05 ~ "Não significativo",
TRUE ~ "Indefinido"
)
) %>%
group_by(Disciplina, efeito) %>%
summarise(n_paises = n(), .groups = 'drop')
kable(significancia_pais,
caption = "Resumo da Significância Estatística por País")
}
Resumo da Significância Estatística por País
| Ciências |
Não significativo |
1 |
| Ciências |
Positivo significativo |
5 |
| Leitura |
Não significativo |
1 |
| Leitura |
Positivo significativo |
5 |
| Matemática |
Não significativo |
2 |
| Matemática |
Positivo significativo |
4 |
Interpretação
Os resultados mostram:
- Modelos Globais: O efeito do ICTEFFIC na
resiliência varia entre as disciplinas
- OR > 1: ICTEFFIC aumenta a probabilidade de
resiliência
- OR < 1: ICTEFFIC diminui a probabilidade de
resiliência
- p < 0.05: Efeito estatisticamente
significativo
- Variação por País: Há heterogeneidade considerável
nos efeitos entre países
- Alguns países mostram efeitos positivos significativos
- Outros podem mostrar efeitos negativos ou não significativos
- Intervalos de Confiança:
- OR_lower e OR_upper: Limites do intervalo de
confiança de 95%
- Se o intervalo não inclui 1.0, o efeito é significativo
Notas Importantes: - p < 0.05:
Efeito estatisticamente significativo - OR ≈ 1: Pouco
ou nenhum efeito da variável preditora - Países com dados insuficientes
ou sem variação foram excluídos automaticamente - Modelos que não
convergiram são reportados separadamente com diagnósticos