EpiSmile 1st Grade Latvia Oral Health

Author

IM - SU

Published

May 27, 2026

1 Packages

Code
pacman::p_load(tidyverse, gtsummary, skimr, 
               broom, sjPlot)

2 Dataset

3 EDA

Code
# df |> 
#   skimr::skim()
Code
df <- df |> 
  select(`Vecums (gados)`, 
         Dzimums, 
         Reģions, 
         `Piena molāru hipomineralizācija`, 
         `Skolas kods (divi cipari)`, 
         Prevalence_primary_d5, 
         d5mfs_primary)
Code
df <- df |> 
  mutate(
    `Prevalence_primary_d5` = as.factor(`Prevalence_primary_d5`),
    `Reģions` = as.factor(`Reģions`),
    `Dzimums` = as.factor(`Dzimums`),
    `Piena molāru hipomineralizācija` = as.factor(`Piena molāru hipomineralizācija`),
    `Skolas kods (divi cipari)` = as.factor(`Skolas kods (divi cipari)`)
  )

3.1 Data cleaning

Code
df <- df |> 
  mutate(
    `Vecums (gados)` =
      str_trim(`Vecums (gados)`) %>%   # remove spaces
      as.character() %>%               # ensure character
      str_replace("^0+", "") %>%       # remove leading zeros (07 -> 7)
      as.numeric()
  )
Code
df <- df |> 
  mutate(
    `Skolas kods (divi cipari)` =
      as.character(`Skolas kods (divi cipari)`),
    
    `Skolas kods (divi cipari)` =
      if_else(
        `Skolas kods (divi cipari)` == "a",
        "01",
        `Skolas kods (divi cipari)`
      ),
    
    `Skolas kods (divi cipari)` =
      as.factor(`Skolas kods (divi cipari)`)
  )

4 Models

4.1 Prevalence

Code
model_prevalence <- glm(
  `Prevalence_primary_d5` ~ 
    `Vecums (gados)` +
    `Reģions` +
    `Dzimums` +
    # `Skolas kods (divi cipari)` +
    `Piena molāru hipomineralizācija` ,
    
  data = df,
  family = binomial(link = "logit")
)
Code
tbl_regression(
  model_prevalence,
  exponentiate = TRUE
) |> 
  add_n(location = "level") |> 
  bold_labels()
Characteristic N OR 95% CI p-value
Vecums (gados) 822 0.89 0.59, 1.33 0.6
Reģions



    Pierīga 407
    Rīga 415 0.77 0.57, 1.05 0.10
Dzimums



    Meitene 412
    Zēns 410 0.78 0.58, 1.06 0.12
Piena molāru hipomineralizācija



    Jā 33
    Nē 789 0.91 0.44, 2.03 0.8
Abbreviations: CI = Confidence Interval, OR = Odds Ratio
Code
plot_model(
  model_prevalence,
  type = "est",
  transform = "exp",
  show.values = TRUE,
  value.offset = 0.3
)

4.2 Severity

Code
model_d5mfs <- glm(
  `d5mfs_primary` ~ 
    `Vecums (gados)` +
    `Reģions` +
    `Dzimums` +
        # `Skolas kods (divi cipari)` +
    `Piena molāru hipomineralizācija` ,
  data = df,
  family = gaussian()
)
Code
tbl_regression(
  model_d5mfs
) |> 
  add_n(location = "level") |> 
  bold_labels()
Characteristic N Beta 95% CI p-value
Vecums (gados) 822 1.9 0.13, 3.7 0.036
Reģions



    Pierīga 407
    Rīga 415 0.06 -1.3, 1.4 >0.9
Dzimums



    Meitene 412
    Zēns 410 1.6 0.24, 3.0 0.021
Piena molāru hipomineralizācija



    Jā 33
    Nē 789 1.4 -2.1, 4.9 0.4
Abbreviation: CI = Confidence Interval
Code
plot_model(
  model_d5mfs,
  type = "est",
  show.values = TRUE,
  value.offset = 0.3
)