How effective do you believe fluoride in general is in controlling cavitites? Value
3, 4, 5
How effective do you believe fluoride toothpaste is in controlling cavitites? Value
4, 5
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12
3, 4, 5
Do you currently recommend the use of fluoride toothpaste? Value
5
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value
2, 3, 5
Convert to Likert Format
Alpha de cronbach
Cronbach's Alpha: 0.677
Raw Alpha: 0.665
Number of items:
Sample size: 41
Item Statistics and Corrected Item-Total Correlations
mean
sd
r.cor
r.drop
How effective do you believe fluoride in general is in controlling cavitites? Value
3.634
0.536
0.586
0.453
How effective do you believe fluoride toothpaste is in controlling cavitites? Value
3.537
0.505
0.589
0.464
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?…12
3.341
0.728
0.522
0.434
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value
3.829
0.629
0.556
0.468
Principal Component Analysis
Loadings:
PC1
How effective do you believe fluoride in general is in controlling cavitites? Value 0.730
How effective do you believe fluoride toothpaste is in controlling cavitites? Value 0.733
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12 0.680
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value 0.708
PC1
SS loadings 2.033
Proportion Var 0.508
PC1
How effective do you believe fluoride in general is in controlling cavitites? Value
0.7298136
How effective do you believe fluoride toothpaste is in controlling cavitites? Value
0.7329014
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?…12
0.6795182
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value
0.7080236
Variance explained: 50.8 %
Exploratory Factor Analysis
Loadings:
ML1
How effective do you believe fluoride in general is in controlling cavitites? Value 0.638
How effective do you believe fluoride toothpaste is in controlling cavitites? Value 0.641
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12 0.514
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value 0.549
ML1
SS loadings 1.384
Proportion Var 0.346
ML1
How effective do you believe fluoride in general is in controlling cavitites? Value
0.6383358
How effective do you believe fluoride toothpaste is in controlling cavitites? Value
0.6410437
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?…12
0.5136981
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value
0.5494725
Interitem correlations
How effective do you believe fluoride in general is in controlling cavitites? Value
How effective do you believe fluoride in general is in controlling cavitites? Value 1.000
How effective do you believe fluoride toothpaste is in controlling cavitites? Value 0.466
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12 0.264
Do you currently recommend the use of fluoride toothpaste? Value NA
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value 0.329
How effective do you believe fluoride toothpaste is in controlling cavitites? Value
How effective do you believe fluoride in general is in controlling cavitites? Value 0.466
How effective do you believe fluoride toothpaste is in controlling cavitites? Value 1.000
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12 0.305
Do you currently recommend the use of fluoride toothpaste? Value NA
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value 0.296
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12
How effective do you believe fluoride in general is in controlling cavitites? Value 0.264
How effective do you believe fluoride toothpaste is in controlling cavitites? Value 0.305
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12 1.000
Do you currently recommend the use of fluoride toothpaste? Value NA
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value 0.404
Do you currently recommend the use of fluoride toothpaste? Value
How effective do you believe fluoride in general is in controlling cavitites? Value NA
How effective do you believe fluoride toothpaste is in controlling cavitites? Value NA
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12 NA
Do you currently recommend the use of fluoride toothpaste? Value 1
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value NA
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value
How effective do you believe fluoride in general is in controlling cavitites? Value 0.329
How effective do you believe fluoride toothpaste is in controlling cavitites? Value 0.296
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?...12 0.404
Do you currently recommend the use of fluoride toothpaste? Value NA
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value 1.000
How effective do you believe fluoride in general is in controlling cavitites? Value
How effective do you believe fluoride toothpaste is in controlling cavitites? Value
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?…12
Do you currently recommend the use of fluoride toothpaste? Value
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value
How effective do you believe fluoride in general is in controlling cavitites? Value
1.000
0.466
0.264
NA
0.329
How effective do you believe fluoride toothpaste is in controlling cavitites? Value
0.466
1.000
0.305
NA
0.296
How effective do you believe topical fluorides (e.g.gel or varnish) are in controlling cavitites?…12
0.264
0.305
1.000
NA
0.404
Do you currently recommend the use of fluoride toothpaste? Value
NA
NA
NA
1
NA
Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value
0.329
0.296
0.404
NA
1.000
Scale Adequacy Tests
Total value
# A tibble: 1 × 2
attitude_group n
<chr> <int>
1 Low hesitancy 41
For publication
Methods
We evaluated the internal structure of a three-item scale assessing perceived effectiveness of fluoride-based interventions using principal component analysis (PCA) and exploratory factor analysis (EFA). Prior to analysis, the item “Do you currently recommend the use of fluoride toothpaste?” was excluded. Items were rated on a 5-point Likert scale and converted to numeric format. Variables with zero variance were removed. PCA and EFA (maximum likelihood extraction, 1-factor solution) were conducted on the cleaned dataset.
Results
Cronbach’s alpha for the scale was 0.61, indicating moderate internal consistency. PCA supported a unidimensional structure, with item loadings ranging from 0.651 to 0.810 and 56.6% of the variance explained. EFA confirmed this structure, with loadings from 0.416 (topical fluorides) to 0.734 (fluoride toothpaste), and 37.2% of the total variance explained. Inter-item correlations ranged from 0.264 to 0.466, with the weakest association between general and topical fluoride items. These results support the scale’s unidimensionality, though the topical fluoride item demonstrated weaker alignment with the underlying construct.
Source Code
---title: "validation_fluoride_scale_attitude_hesitancy_new_data"author: "SU"date: 2025-07-17date-modified: last-modifiedlanguage: title-block-published: "CREATED" title-block-modified: "UPDATED"format: html: toc: truetoc-expand: 3code-fold: truecode-tools: trueeditor: visualexecute: echo: false cache: false warning: false message: false---```{r}pacman::p_load(tidyverse, here, sjPlot, gt, psych, ggstats, gtsummary, irr, knitr)```## Data Preparation```{r load-data}# Read and prepare the fluoride dataset sheet FINAL VALIDATION ANALYSISfluoride <- read_csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vReAE2-ZxkWCQhrgG6bkra3PiI9SVN5vZQtILVzw7Z5hPqpCXew83oQy8v3o_bX0U2DR5HhwBruD0Y8/pub?gid=770207363&single=true&output=csv") ```------------------------------------------------------------------------```{r}fluoride <- fluoride |>select("Type of attitude","How effective do you believe fluoride in general is in controlling cavitites? Value":"Attitude_value" )``````{r}# Create likert_items dataset from the three Likert questionslikert_items <- fluoride %>%select("How effective do you believe fluoride in general is in controlling cavitites? Value":"Would you currently offer topical fluoride (e.g. gel or varnish) application to your patients? Value" )```Check Likert values```{r}likert_items |>summarise(across(everything(), ~paste(sort(unique(.)), collapse =", "))) |>pivot_longer(everything(), names_to ="Column", values_to ="Unique Values") |>kable(format ="html", caption ="Unique values for each Likert item")```## Convert to Likert Format```{r convert-likert}effectiveness_levels <- c("Not effective", "Somewhat effective", "Effective", "Very effective")``````{r}# Recode numeric responses to ordered factor levelslikert_items <- likert_items %>%mutate(across(everything(), ~case_when( . %in%c(1, 2) ~"Not effective", . ==3~"Somewhat effective", . ==4~"Effective", . ==5~"Very effective",TRUE~NA_character_ ))) %>%mutate(across(everything(), ~factor(., levels = effectiveness_levels, ordered =TRUE)))``````{r}# Reorder the factors to match sjPlot's expected orderlikert_items_reordered <- likert_items %>%mutate(across(everything(), ~factor(., levels =c("Very effective", "Effective", "Somewhat effective", "Not effective"), ordered =TRUE)) )# Plot the likert items using sjPlot with custom color palettesjPlot::plot_likert(items = likert_items_reordered, catcount =4, # Force recognition of 4 categorieslegend.labels =c("Very effective", "Effective", "Somewhat effective", "Not effective"),values ="show", # Show percentagesshow.n =TRUE, # Show sample sizegeom.colors =c("#2E8B57", "#90EE90", "#FFD700", "#FF6347") # Custom color palette) +labs(title ="Fluoride Effectiveness Beliefs Scale (n = 35)") +theme(plot.margin =margin(10, 10, 10, 10),axis.text.y =element_text(size =10),legend.position ="bottom" )```## Alpha de cronbach```{r}# Calculate Cronbach's alpha for the three Likert items# Convert to numeric for reliability analysislikert_numeric <- likert_items %>%mutate(across(everything(), ~as.numeric(.)))# Calculate Cronbach's alphaalpha_result <- psych::alpha(likert_numeric) ``````{r}# Display alpha coefficientcat("Cronbach's Alpha:", round(alpha_result$total$std.alpha, 3), "\n") |> knitr::kable()``````{r}cat("Raw Alpha:", round(alpha_result$total$raw_alpha, 3), "\n") |> knitr::kable()``````{r}cat("Number of items:", alpha_result$nobs, "\n") |> knitr::kable()``````{r}cat("Sample size:", nrow(likert_numeric), "\n") |> knitr::kable()``````{r}# Display item statisticsalpha_result$item.stats %>%select(mean, sd, r.cor, r.drop) %>%round(3) %>% knitr::kable(caption ="Item Statistics and Corrected Item-Total Correlations") ```# Principal Component Analysis```{r}pca_result <- psych::principal( likert_numeric[, sapply(likert_numeric, function(x) sd(x, na.rm =TRUE) !=0) &names(likert_numeric) !="Do you currently recommend the use of fluoride toothpaste? Value" ],nfactors =1)# the previous with only three variables# pca_result <- psych::principal(likert_numeric, nfactors = 1)``````{r}print(pca_result$loadings, cutoff =0.3) |> knitr::kable()``````{r}cat("Variance explained:", round(pca_result$Vaccounted[2,1] *100, 1), "%\n") |> knitr::kable()```# Exploratory Factor Analysis```{r}efa_result <- psych::fa( likert_numeric[,sapply(likert_numeric, function(x) sd(x, na.rm =TRUE) !=0) &names(likert_numeric) !="Do you currently recommend the use of fluoride toothpaste? Value" ],nfactors =1,fm ="ml")# the old one, with three variables# efa_result <- psych::fa(likert_numeric, nfactors = 1, fm = "ml")print(efa_result$loadings, cutoff =0.3) |> knitr::kable()```## Interitem correlations```{r, results='hide'}# Correlation matrixcor_matrix <- cor(likert_numeric)``````{r}print(round(cor_matrix, 3)) |> knitr::kable()``````{r}# Visualize correlations# corrplot::corrplot(cor_matrix, method = "color", addCoef.col = "black")```## Scale Adequacy Tests```{r}# Kaiser-Meyer-Olkin test# kmo_result <- psych::KMO(likert_numeric)# cat("KMO Overall:", round(kmo_result$MSA, 3), "\n")``````{r}# Bartlett's test of sphericity# bartlett_result <- psych::cortest.bartlett(likert_numeric)# cat("Bartlett's p-value:", format(bartlett_result$p.value, scientific = TRUE), "\n")```# Total value```{r}fluoride %>%ggplot(aes(x = Attitude_value)) +geom_histogram(bins =10, fill ="steelblue", color ="white", alpha =0.8) +labs(title ="Distribution of Fluoride Attitude Values",subtitle =paste("n =", nrow(fluoride)),x ="Attitude Value (Higher = Less Hesitancy)",y ="Frequency" ) +theme_minimal() +theme(plot.title =element_text(size =14, face ="bold"),plot.subtitle =element_text(size =12),axis.title =element_text(size =11) ) +geom_vline(aes(xintercept =mean(Attitude_value, na.rm =TRUE)), color ="dark blue", linetype ="dashed", size =1) +annotate("text", x =mean(fluoride$Attitude_value, na.rm =TRUE) +0.7, y =max(table(fluoride$Attitude_value)) * .9,label =paste("Mean =", round(mean(fluoride$Attitude_value, na.rm =TRUE), 2)),color ="dark blue", size =4) +geom_vline(xintercept =4, color ="red", linetype ="solid", size =1.2) +annotate("text", x =3, y =max(table(fluoride$Attitude_value)) * .6,label ="Threshold = 4",color ="red", size =4, fontface ="bold")``````{r}# Create attitude groups based on thresholdfluoride <- fluoride %>%mutate(attitude_group =case_when( Attitude_value <4~"High hesitancy", Attitude_value >=4~"Low hesitancy" ))# Compare effectiveness scores across attitude groupsfluoride %>%group_by(attitude_group) %>%summarise(n =n() ) ```# For publication## **Methods**We evaluated the internal structure of a three-item scale assessing perceived effectiveness of fluoride-based interventions using principal component analysis (PCA) and exploratory factor analysis (EFA). Prior to analysis, the item "Do you currently recommend the use of fluoride toothpaste?" was excluded. Items were rated on a 5-point Likert scale and converted to numeric format. Variables with zero variance were removed. PCA and EFA (maximum likelihood extraction, 1-factor solution) were conducted on the cleaned dataset.## **Results**Cronbach’s alpha for the scale was 0.61, indicating moderate internal consistency. PCA supported a unidimensional structure, with item loadings ranging from 0.651 to 0.810 and 56.6% of the variance explained. EFA confirmed this structure, with loadings from 0.416 (topical fluorides) to 0.734 (fluoride toothpaste), and 37.2% of the total variance explained. Inter-item correlations ranged from 0.264 to 0.466, with the weakest association between general and topical fluoride items. These results support the scale’s unidimensionality, though the topical fluoride item demonstrated weaker alignment with the underlying construct.