This document reproduces the analyses for the randomized controlled trial reported in the manuscript. It also includes the reviewer-requested robustness checks:
mediation::medsens.The file assumes that rawdata.csv is in the same
directory as this R Markdown file.
All analyses are specified for R v.4.5.1. Stochastic procedures use the fixed random seed shown below.
knitr::kable(
tibble::tibble(
item = c("Target R version", "Runtime R version", "Random seed"),
value = c(
paste0("R v.", target_r_version),
paste0("R v.", runtime_r_version),
seed_value
)
)
)
| item | value |
|---|---|
| Target R version | R v.4.5.1 |
| Runtime R version | R v.4.5.1 |
| Random seed | 123 |
rawdata <- readr::read_csv("rawdata.csv", show_col_types = FALSE)
education_levels <- c(
"Junior High School",
"High School (In progress)",
"High School Graduate",
"Vocational School (In progress)",
"Vocational School Graduate",
"Junior College (In progress)",
"Junior College Graduate",
"University (In progress)",
"University Graduate",
"Graduate School (Master's - In progress)",
"Graduate School (Master's - Completed)",
"Graduate School (Ph.D. - In progress)",
"Graduate School (Ph.D. - Completed)",
"Other",
"Prefer not to say"
)
occupation_levels <- c(
"Student",
"Homemaker",
"Self-employed",
"Public Official",
"Teaching Staff",
"Medical/Healthcare",
"Business Owner",
"Corporate Executive",
"Employee",
"Part-time/Temporary",
"Unemployed",
"Agriculture/Forestry/Fisheries",
"Professional (Lawyer/Tax Accountant, etc.)",
"Other"
)
prefecture_levels <- c(
"Hokkaido", "Aomori", "Iwate", "Miyagi", "Akita", "Yamagata",
"Fukushima", "Ibaraki", "Tochigi", "Gunma", "Saitama", "Chiba",
"Tokyo", "Kanagawa", "Niigata", "Toyama", "Ishikawa", "Fukui",
"Yamanashi", "Nagano", "Gifu", "Shizuoka", "Aichi", "Mie",
"Shiga", "Kyoto", "Osaka", "Hyogo", "Nara", "Wakayama",
"Tottori", "Shimane", "Okayama", "Hiroshima", "Yamaguchi",
"Tokushima", "Kagawa", "Ehime", "Kochi", "Fukuoka", "Saga",
"Nagasaki", "Kumamoto", "Oita", "Miyazaki", "Kagoshima",
"Okinawa"
)
analysis_data <- rawdata |>
dplyr::transmute(
respondent_id = respid,
document_id = Quota1,
group = dplyr::case_when(
Quota1 == 1 ~ "A1 (Control)",
Quota1 == 2 ~ "A2 (Intervention)",
Quota1 == 3 ~ "B1 (Control)",
Quota1 == 4 ~ "B2 (Intervention)",
TRUE ~ NA_character_
),
document_type = factor(
dplyr::if_else(Quota1 %in% c(3, 4), "B", "A"),
levels = c("A", "B")
),
simplification = ifelse(Quota1 %in% c(2, 4), 1, 0),
simplification_factor = factor(
ifelse(Quota1 %in% c(2, 4), "Simplified", "Original"),
levels = c("Original", "Simplified")
),
comprehension = Q2,
acceptance = Q3,
acceptance_ord = ordered(Q3, levels = 1:5),
age = SC2_1,
gender = factor(SC1, levels = c(1, 2), labels = c("Male", "Female")),
education = factor(Q1, levels = seq_along(education_levels), labels = education_levels),
occupation = factor(SC5, levels = seq_along(occupation_levels), labels = occupation_levels),
prefecture = factor(SC3, levels = seq_along(prefecture_levels), labels = prefecture_levels)
) |>
dplyr::mutate(
group = factor(
group,
levels = c("A1 (Control)", "B1 (Control)", "A2 (Intervention)", "B2 (Intervention)")
)
) |>
tidyr::drop_na() |>
droplevels()
knitr::kable(
tibble::tibble(
n = nrow(analysis_data),
mean_age = mean(analysis_data$age),
sd_age = sd(analysis_data$age),
male_n = sum(analysis_data$gender == "Male"),
female_n = sum(analysis_data$gender == "Female")
),
digits = 3
)
| n | mean_age | sd_age | male_n | female_n |
|---|---|---|---|---|
| 2197 | 53.33 | 13.759 | 1472 | 725 |
group_counts <- analysis_data |>
dplyr::count(group, name = "n")
knitr::kable(group_counts)
| group | n |
|---|---|
| A1 (Control) | 544 |
| B1 (Control) | 552 |
| A2 (Intervention) | 547 |
| B2 (Intervention) | 554 |
format_count_pct <- function(x, denominator) {
paste0(x, " (", round(100 * x / denominator, 1), "%)")
}
likert_table <- function(data, variable, label) {
counts <- table(data$group, data[[variable]])
out <- as.data.frame.matrix(t(counts))
out$level <- rownames(out)
out$variable <- label
out <- tibble::as_tibble(out)
out |>
dplyr::relocate(variable, level) |>
dplyr::mutate(
dplyr::across(
dplyr::all_of(levels(data$group)),
~ format_count_pct(.x, sum(.x))
)
)
}
acceptance_table <- likert_table(analysis_data, "acceptance", "Acceptance")
comprehension_table <- likert_table(analysis_data, "comprehension", "Comprehension")
knitr::kable(
dplyr::bind_rows(acceptance_table, comprehension_table),
caption = "Counts and percentages by experimental condition."
)
| variable | level | A1 (Control) | B1 (Control) | A2 (Intervention) | B2 (Intervention) |
|---|---|---|---|---|---|
| Acceptance | 1 | 46 (8.5%) | 42 (7.6%) | 23 (4.2%) | 40 (7.2%) |
| Acceptance | 2 | 122 (22.4%) | 135 (24.5%) | 112 (20.5%) | 121 (21.8%) |
| Acceptance | 3 | 295 (54.2%) | 305 (55.3%) | 289 (52.8%) | 279 (50.4%) |
| Acceptance | 4 | 68 (12.5%) | 65 (11.8%) | 113 (20.7%) | 100 (18.1%) |
| Acceptance | 5 | 13 (2.4%) | 5 (0.9%) | 10 (1.8%) | 14 (2.5%) |
| Comprehension | 1 | 62 (11.4%) | 69 (12.5%) | 45 (8.2%) | 59 (10.6%) |
| Comprehension | 2 | 172 (31.6%) | 197 (35.7%) | 148 (27.1%) | 167 (30.1%) |
| Comprehension | 3 | 206 (37.9%) | 193 (35%) | 202 (36.9%) | 204 (36.8%) |
| Comprehension | 4 | 88 (16.2%) | 82 (14.9%) | 140 (25.6%) | 105 (19%) |
| Comprehension | 5 | 16 (2.9%) | 11 (2%) | 12 (2.2%) | 19 (3.4%) |
set.seed(seed_value)
randomization_checks <- tibble::tibble(
variable = c("Age", "Gender", "Education", "Occupation", "Residential prefecture"),
test = c(
"Kruskal-Wallis",
"Fisher exact test with simulated p-value",
"Fisher exact test with simulated p-value",
"Fisher exact test with simulated p-value",
"Fisher exact test with simulated p-value"
),
p_value = c(
kruskal.test(age ~ group, data = analysis_data)$p.value,
fisher.test(table(analysis_data$gender, analysis_data$group), simulate.p.value = TRUE, B = 100000)$p.value,
fisher.test(table(analysis_data$education, analysis_data$group), simulate.p.value = TRUE, B = 100000)$p.value,
fisher.test(table(analysis_data$occupation, analysis_data$group), simulate.p.value = TRUE, B = 100000)$p.value,
fisher.test(table(analysis_data$prefecture, analysis_data$group), simulate.p.value = TRUE, B = 100000)$p.value
)
)
knitr::kable(randomization_checks, digits = 3)
| variable | test | p_value |
|---|---|---|
| Age | Kruskal-Wallis | 0.387 |
| Gender | Fisher exact test with simulated p-value | 0.869 |
| Education | Fisher exact test with simulated p-value | 0.386 |
| Occupation | Fisher exact test with simulated p-value | 0.389 |
| Residential prefecture | Fisher exact test with simulated p-value | 0.012 |
The simulated Fisher p-values are seed-dependent. Exact reproduction of these values requires the fixed seed and simulation count specified above.
distributional_tests <- tibble::tibble(
outcome = c("Acceptance", "Comprehension"),
test = "Kruskal-Wallis",
p_value = c(
kruskal.test(acceptance ~ group, data = analysis_data)$p.value,
kruskal.test(comprehension ~ group, data = analysis_data)$p.value
)
)
knitr::kable(distributional_tests, digits = 6)
| outcome | test | p_value |
|---|---|---|
| Acceptance | Kruskal-Wallis | 8.1e-05 |
| Comprehension | Kruskal-Wallis | 8.0e-06 |
The comprehension distributional difference is therefore reported as
p < .001.
The ANCOVA reported in the manuscript uses sequential sums of squares
from aov(), matching the original R Markdown analysis.
ancova_model <- aov(
acceptance ~ document_type + simplification_factor + age + gender +
occupation + education + prefecture,
data = analysis_data
)
summary(ancova_model)
## Df Sum Sq Mean Sq F value Pr(>F)
## document_type 1 2.2 2.200 3.157 0.0757 .
## simplification_factor 1 12.7 12.662 18.167 2.11e-05 ***
## age 1 0.5 0.463 0.664 0.4151
## gender 1 1.5 1.450 2.081 0.1493
## occupation 13 10.7 0.823 1.180 0.2874
## education 13 15.4 1.187 1.703 0.0541 .
## prefecture 46 27.8 0.605 0.868 0.7212
## Residuals 2120 1477.6 0.697
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
effectsize::eta_squared(ancova_model, partial = TRUE)
## # Effect Size for ANOVA (Type I)
##
## Parameter | Eta2 (partial) | 95% CI
## -----------------------------------------------------
## document_type | 1.49e-03 | [0.00, 1.00]
## simplification_factor | 8.50e-03 | [0.00, 1.00]
## age | 3.13e-04 | [0.00, 1.00]
## gender | 9.80e-04 | [0.00, 1.00]
## occupation | 7.18e-03 | [0.00, 1.00]
## education | 0.01 | [0.00, 1.00]
## prefecture | 0.02 | [0.00, 1.00]
##
## - One-sided CIs: upper bound fixed at [1.00].
shapiro_acceptance <- shapiro.test(analysis_data$acceptance)
levene_acceptance <- car::leveneTest(acceptance ~ group, data = analysis_data)
shapiro_acceptance
##
## Shapiro-Wilk normality test
##
## data: analysis_data$acceptance
## W = 0.86656, p-value < 2.2e-16
levene_acceptance
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 3 1.1576 0.3246
## 2193
emmeans_simplification <- emmeans::emmeans(
ancova_model,
specs = ~ simplification_factor,
rg.limit = 75000
)
emmeans_simplification
## simplification_factor emmean SE df lower.CL upper.CL
## Original 2.82 0.101 2120 2.62 3.02
## Simplified 2.97 0.102 2120 2.77 3.17
##
## Results are averaged over the levels of: document_type, gender, occupation, education, prefecture
## Confidence level used: 0.95
regression_without_comprehension <- lm(
acceptance ~ document_type + simplification_factor + age + gender +
occupation + education + prefecture,
data = analysis_data
)
summary(regression_without_comprehension)
##
## Call:
## lm(formula = acceptance ~ document_type + simplification_factor +
## age + gender + occupation + education + prefecture, data = analysis_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.3133 -0.6486 0.1264 0.3393 2.5447
##
## Coefficients:
## Estimate Std. Error
## (Intercept) 2.9515992 0.3462685
## document_typeB -0.0598968 0.0363785
## simplification_factorSimplified 0.1459749 0.0363814
## age -0.0018074 0.0015061
## genderFemale -0.0234298 0.0501785
## occupationHomemaker -0.0940725 0.3219914
## occupationSelf-employed -0.0577827 0.3238503
## occupationPublic Official -0.0334171 0.3353482
## occupationTeaching Staff -0.0496684 0.3504997
## occupationMedical/Healthcare 0.0383540 0.3476054
## occupationBusiness Owner 0.4220693 0.3531783
## occupationCorporate Executive -0.0198627 0.3869974
## occupationEmployee -0.1133250 0.3163957
## occupationPart-time/Temporary -0.0864810 0.3223535
## occupationUnemployed -0.1215570 0.3203573
## occupationAgriculture/Forestry/Fisheries 0.1924773 0.3941935
## occupationProfessional (Lawyer/Tax Accountant, etc.) -0.3827277 0.5259900
## occupationOther -0.0649014 0.3251607
## educationHigh School (In progress) -0.3317927 0.4303337
## educationHigh School Graduate 0.1063706 0.1247968
## educationVocational School (In progress) 0.5681456 0.5436695
## educationVocational School Graduate 0.1313781 0.1325115
## educationJunior College (In progress) 0.6460192 0.5003511
## educationJunior College Graduate 0.1115605 0.1396062
## educationUniversity (In progress) 0.2979606 0.3545646
## educationUniversity Graduate 0.2151854 0.1235805
## educationGraduate School (Master's - In progress) 0.1621467 0.6255008
## educationGraduate School (Master's - Completed) 0.3893498 0.1507275
## educationGraduate School (Ph.D. - Completed) 0.3748349 0.2335931
## educationOther -0.0777756 0.3434599
## educationPrefer not to say 0.1474345 0.1831503
## prefectureAomori -0.2988125 0.2410244
## prefectureIwate -0.3212496 0.2069105
## prefectureMiyagi -0.0363956 0.1650523
## prefectureAkita -0.3413392 0.2480743
## prefectureYamagata -0.2197023 0.2328652
## prefectureFukushima 0.0833673 0.1922162
## prefectureIbaraki -0.2381912 0.1531113
## prefectureTochigi -0.0943096 0.1687073
## prefectureGunma -0.1831240 0.1742329
## prefectureSaitama -0.1772522 0.1107744
## prefectureChiba -0.0997300 0.1115232
## prefectureTokyo -0.0676494 0.0982727
## prefectureKanagawa -0.2130784 0.1040990
## prefectureNiigata -0.2821768 0.1788224
## prefectureToyama 0.0180778 0.2175228
## prefectureIshikawa -0.2421704 0.2574610
## prefectureFukui -0.1083734 0.3526397
## prefectureYamanashi -0.1566871 0.3298051
## prefectureNagano -0.4018662 0.1742216
## prefectureGifu -0.2267138 0.1836589
## prefectureShizuoka -0.2598093 0.1534707
## prefectureAichi -0.2244168 0.1131260
## prefectureMie -0.1049758 0.2074623
## prefectureShiga 0.2719464 0.2114328
## prefectureKyoto 0.0547523 0.1525236
## prefectureOsaka -0.1174643 0.1097121
## prefectureHyogo -0.1045190 0.1198235
## prefectureNara -0.1962465 0.1922787
## prefectureWakayama -0.7301007 0.2928499
## prefectureTottori -0.5040405 0.3323458
## prefectureShimane -0.2420145 0.2973822
## prefectureOkayama -0.3152063 0.1813711
## prefectureHiroshima -0.2478157 0.1492611
## prefectureYamaguchi -0.1844887 0.2586572
## prefectureTokushima 0.0218535 0.5982697
## prefectureKagawa -0.1970838 0.3092759
## prefectureEhime -0.2252224 0.1926845
## prefectureKochi -0.1705359 0.4311486
## prefectureFukuoka 0.0004873 0.1330766
## prefectureSaga -0.1747255 0.2682002
## prefectureNagasaki -0.1090330 0.2681133
## prefectureKumamoto -0.1856245 0.2276272
## prefectureOita -0.0334481 0.2740098
## prefectureMiyazaki -0.1647472 0.2923469
## prefectureKagoshima 0.3130359 0.3535879
## prefectureOkinawa -0.2046333 0.3295384
## t value Pr(>|t|)
## (Intercept) 8.524 < 2e-16 ***
## document_typeB -1.646 0.09981 .
## simplification_factorSimplified 4.012 6.22e-05 ***
## age -1.200 0.23025
## genderFemale -0.467 0.64060
## occupationHomemaker -0.292 0.77019
## occupationSelf-employed -0.178 0.85841
## occupationPublic Official -0.100 0.92063
## occupationTeaching Staff -0.142 0.88732
## occupationMedical/Healthcare 0.110 0.91215
## occupationBusiness Owner 1.195 0.23220
## occupationCorporate Executive -0.051 0.95907
## occupationEmployee -0.358 0.72025
## occupationPart-time/Temporary -0.268 0.78851
## occupationUnemployed -0.379 0.70440
## occupationAgriculture/Forestry/Fisheries 0.488 0.62540
## occupationProfessional (Lawyer/Tax Accountant, etc.) -0.728 0.46692
## occupationOther -0.200 0.84181
## educationHigh School (In progress) -0.771 0.44079
## educationHigh School Graduate 0.852 0.39412
## educationVocational School (In progress) 1.045 0.29613
## educationVocational School Graduate 0.991 0.32158
## educationJunior College (In progress) 1.291 0.19680
## educationJunior College Graduate 0.799 0.42432
## educationUniversity (In progress) 0.840 0.40080
## educationUniversity Graduate 1.741 0.08178 .
## educationGraduate School (Master's - In progress) 0.259 0.79549
## educationGraduate School (Master's - Completed) 2.583 0.00986 **
## educationGraduate School (Ph.D. - Completed) 1.605 0.10872
## educationOther -0.226 0.82088
## educationPrefer not to say 0.805 0.42091
## prefectureAomori -1.240 0.21520
## prefectureIwate -1.553 0.12067
## prefectureMiyagi -0.221 0.82550
## prefectureAkita -1.376 0.16898
## prefectureYamagata -0.943 0.34555
## prefectureFukushima 0.434 0.66454
## prefectureIbaraki -1.556 0.11994
## prefectureTochigi -0.559 0.57621
## prefectureGunma -1.051 0.29336
## prefectureSaitama -1.600 0.10972
## prefectureChiba -0.894 0.37129
## prefectureTokyo -0.688 0.49129
## prefectureKanagawa -2.047 0.04079 *
## prefectureNiigata -1.578 0.11472
## prefectureToyama 0.083 0.93377
## prefectureIshikawa -0.941 0.34701
## prefectureFukui -0.307 0.75863
## prefectureYamanashi -0.475 0.63477
## prefectureNagano -2.307 0.02117 *
## prefectureGifu -1.234 0.21718
## prefectureShizuoka -1.693 0.09062 .
## prefectureAichi -1.984 0.04741 *
## prefectureMie -0.506 0.61291
## prefectureShiga 1.286 0.19851
## prefectureKyoto 0.359 0.71965
## prefectureOsaka -1.071 0.28444
## prefectureHyogo -0.872 0.38316
## prefectureNara -1.021 0.30754
## prefectureWakayama -2.493 0.01274 *
## prefectureTottori -1.517 0.12951
## prefectureShimane -0.814 0.41584
## prefectureOkayama -1.738 0.08237 .
## prefectureHiroshima -1.660 0.09701 .
## prefectureYamaguchi -0.713 0.47577
## prefectureTokushima 0.037 0.97086
## prefectureKagawa -0.637 0.52404
## prefectureEhime -1.169 0.24259
## prefectureKochi -0.396 0.69249
## prefectureFukuoka 0.004 0.99708
## prefectureSaga -0.651 0.51481
## prefectureNagasaki -0.407 0.68429
## prefectureKumamoto -0.815 0.41489
## prefectureOita -0.122 0.90286
## prefectureMiyazaki -0.564 0.57313
## prefectureKagoshima 0.885 0.37609
## prefectureOkinawa -0.621 0.53469
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8349 on 2120 degrees of freedom
## Multiple R-squared: 0.04569, Adjusted R-squared: 0.01148
## F-statistic: 1.336 on 76 and 2120 DF, p-value: 0.0298
confint(regression_without_comprehension)["simplification_factorSimplified", ]
## 2.5 % 97.5 %
## 0.0746280 0.2173218
car::vif(regression_without_comprehension)
## GVIF Df GVIF^(1/(2*Df))
## document_type 1.042832 1 1.021192
## simplification_factor 1.043042 1 1.021294
## age 1.353054 1 1.163208
## gender 1.754801 1 1.324689
## occupation 8.121108 13 1.083890
## education 5.429541 13 1.067235
## prefecture 2.098961 46 1.008092
The maximum adjusted GVIF is:
vif_without_comprehension <- car::vif(regression_without_comprehension)
max_adjusted_gvif <- max(vif_without_comprehension[, "GVIF^(1/(2*Df))"])
max_adjusted_gvif
## [1] 1.324689
This indicates low multicollinearity, with a maximum adjusted GVIF of approximately 1.33.
regression_with_comprehension <- lm(
acceptance ~ document_type + comprehension + simplification_factor + age +
gender + occupation + education + prefecture,
data = analysis_data
)
summary(regression_with_comprehension)
##
## Call:
## lm(formula = acceptance ~ document_type + comprehension + simplification_factor +
## age + gender + occupation + education + prefecture, data = analysis_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.94760 -0.43430 0.02361 0.47789 3.02280
##
## Coefficients:
## Estimate Std. Error
## (Intercept) 1.845006 0.279307
## document_typeB -0.001532 0.029198
## comprehension 0.522624 0.015194
## simplification_factorSimplified 0.053888 0.029273
## age -0.005674 0.001212
## genderFemale 0.009231 0.040217
## occupationHomemaker -0.137856 0.257999
## occupationSelf-employed -0.129847 0.259494
## occupationPublic Official -0.096830 0.268705
## occupationTeaching Staff -0.135804 0.280850
## occupationMedical/Healthcare -0.134188 0.278565
## occupationBusiness Owner 0.246993 0.283031
## occupationCorporate Executive -0.227419 0.310141
## occupationEmployee -0.174345 0.253519
## occupationPart-time/Temporary -0.077112 0.258286
## occupationUnemployed -0.109983 0.256687
## occupationAgriculture/Forestry/Fisheries 0.019148 0.315888
## occupationProfessional (Lawyer/Tax Accountant, etc.) -0.609371 0.421502
## occupationOther -0.121697 0.260541
## educationHigh School (In progress) -0.405347 0.344812
## educationHigh School Graduate 0.050238 0.100007
## educationVocational School (In progress) 0.247162 0.435716
## educationVocational School Graduate 0.029210 0.106217
## educationJunior College (In progress) 0.089370 0.401234
## educationJunior College Graduate 0.022352 0.111890
## educationUniversity (In progress) -0.292772 0.284614
## educationUniversity Graduate 0.060336 0.099121
## educationGraduate School (Master's - In progress) -0.437401 0.501487
## educationGraduate School (Master's - Completed) 0.092321 0.121079
## educationGraduate School (Ph.D. - Completed) 0.010351 0.187467
## educationOther -0.030557 0.275201
## educationPrefer not to say -0.097251 0.146922
## prefectureAomori -0.260468 0.193124
## prefectureIwate -0.194651 0.165828
## prefectureMiyagi 0.079951 0.132292
## prefectureAkita -0.150284 0.198848
## prefectureYamagata 0.012214 0.186705
## prefectureFukushima 0.058372 0.154015
## prefectureIbaraki -0.141195 0.122713
## prefectureTochigi 0.033474 0.135228
## prefectureGunma -0.316059 0.139658
## prefectureSaitama -0.081612 0.088802
## prefectureChiba -0.001146 0.089404
## prefectureTokyo -0.005670 0.078762
## prefectureKanagawa -0.089465 0.083487
## prefectureNiigata -0.354755 0.143297
## prefectureToyama 0.032482 0.174291
## prefectureIshikawa -0.051827 0.206365
## prefectureFukui 0.166651 0.282666
## prefectureYamanashi -0.284641 0.264283
## prefectureNagano -0.166736 0.139763
## prefectureGifu -0.052341 0.147244
## prefectureShizuoka -0.181183 0.122990
## prefectureAichi -0.103316 0.090711
## prefectureMie -0.262729 0.166293
## prefectureShiga 0.064300 0.169518
## prefectureKyoto 0.049786 0.122210
## prefectureOsaka -0.053970 0.087926
## prefectureHyogo -0.068830 0.096014
## prefectureNara -0.124582 0.154078
## prefectureWakayama -0.441345 0.234797
## prefectureTottori -0.364855 0.266323
## prefectureShimane 0.051442 0.238431
## prefectureOkayama -0.210689 0.145356
## prefectureHiroshima -0.144141 0.119634
## prefectureYamaguchi -0.222055 0.207252
## prefectureTokushima 0.234360 0.479404
## prefectureKagawa -0.221838 0.247809
## prefectureEhime -0.132629 0.154412
## prefectureKochi -0.046336 0.345477
## prefectureFukuoka -0.037633 0.106634
## prefectureSaga -0.069472 0.214918
## prefectureNagasaki -0.303327 0.214900
## prefectureKumamoto -0.222236 0.182390
## prefectureOita 0.197220 0.219653
## prefectureMiyazaki -0.135760 0.234245
## prefectureKagoshima 0.246464 0.283320
## prefectureOkinawa -0.161583 0.264046
## t value Pr(>|t|)
## (Intercept) 6.606 4.99e-11 ***
## document_typeB -0.052 0.9582
## comprehension 34.397 < 2e-16 ***
## simplification_factorSimplified 1.841 0.0658 .
## age -4.681 3.03e-06 ***
## genderFemale 0.230 0.8185
## occupationHomemaker -0.534 0.5932
## occupationSelf-employed -0.500 0.6169
## occupationPublic Official -0.360 0.7186
## occupationTeaching Staff -0.484 0.6288
## occupationMedical/Healthcare -0.482 0.6301
## occupationBusiness Owner 0.873 0.3829
## occupationCorporate Executive -0.733 0.4635
## occupationEmployee -0.688 0.4917
## occupationPart-time/Temporary -0.299 0.7653
## occupationUnemployed -0.428 0.6684
## occupationAgriculture/Forestry/Fisheries 0.061 0.9517
## occupationProfessional (Lawyer/Tax Accountant, etc.) -1.446 0.1484
## occupationOther -0.467 0.6405
## educationHigh School (In progress) -1.176 0.2399
## educationHigh School Graduate 0.502 0.6155
## educationVocational School (In progress) 0.567 0.5706
## educationVocational School Graduate 0.275 0.7833
## educationJunior College (In progress) 0.223 0.8238
## educationJunior College Graduate 0.200 0.8417
## educationUniversity (In progress) -1.029 0.3038
## educationUniversity Graduate 0.609 0.5428
## educationGraduate School (Master's - In progress) -0.872 0.3832
## educationGraduate School (Master's - Completed) 0.762 0.4459
## educationGraduate School (Ph.D. - Completed) 0.055 0.9560
## educationOther -0.111 0.9116
## educationPrefer not to say -0.662 0.5081
## prefectureAomori -1.349 0.1776
## prefectureIwate -1.174 0.2406
## prefectureMiyagi 0.604 0.5457
## prefectureAkita -0.756 0.4499
## prefectureYamagata 0.065 0.9478
## prefectureFukushima 0.379 0.7047
## prefectureIbaraki -1.151 0.2500
## prefectureTochigi 0.248 0.8045
## prefectureGunma -2.263 0.0237 *
## prefectureSaitama -0.919 0.3582
## prefectureChiba -0.013 0.9898
## prefectureTokyo -0.072 0.9426
## prefectureKanagawa -1.072 0.2840
## prefectureNiigata -2.476 0.0134 *
## prefectureToyama 0.186 0.8522
## prefectureIshikawa -0.251 0.8017
## prefectureFukui 0.590 0.5555
## prefectureYamanashi -1.077 0.2816
## prefectureNagano -1.193 0.2330
## prefectureGifu -0.355 0.7223
## prefectureShizuoka -1.473 0.1409
## prefectureAichi -1.139 0.2549
## prefectureMie -1.580 0.1143
## prefectureShiga 0.379 0.7045
## prefectureKyoto 0.407 0.6838
## prefectureOsaka -0.614 0.5394
## prefectureHyogo -0.717 0.4735
## prefectureNara -0.809 0.4189
## prefectureWakayama -1.880 0.0603 .
## prefectureTottori -1.370 0.1708
## prefectureShimane 0.216 0.8292
## prefectureOkayama -1.449 0.1474
## prefectureHiroshima -1.205 0.2284
## prefectureYamaguchi -1.071 0.2841
## prefectureTokushima 0.489 0.6250
## prefectureKagawa -0.895 0.3708
## prefectureEhime -0.859 0.3905
## prefectureKochi -0.134 0.8933
## prefectureFukuoka -0.353 0.7242
## prefectureSaga -0.323 0.7465
## prefectureNagasaki -1.411 0.1583
## prefectureKumamoto -1.218 0.2232
## prefectureOita 0.898 0.3694
## prefectureMiyazaki -0.580 0.5623
## prefectureKagoshima 0.870 0.3844
## prefectureOkinawa -0.612 0.5406
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6689 on 2119 degrees of freedom
## Multiple R-squared: 0.3876, Adjusted R-squared: 0.3654
## F-statistic: 17.42 on 77 and 2119 DF, p-value: < 2.2e-16
confint(regression_with_comprehension)[
c("comprehension", "simplification_factorSimplified", "age"),
]
## 2.5 % 97.5 %
## comprehension 0.49282757 0.552420433
## simplification_factorSimplified -0.00351908 0.111295762
## age -0.00805035 -0.003296729
effectsize::standardize_parameters(regression_with_comprehension)
## # Standardization method: refit
##
## Parameter | Std. Coef. | 95% CI
## -------------------------------------------------------------------------------------
## (Intercept) | 0.15 | [-0.50, 0.80]
## document type [B] | -1.82e-03 | [-0.07, 0.07]
## comprehension | 0.61 | [ 0.57, 0.64]
## simplification factor [Simplified] | 0.06 | [ 0.00, 0.13]
## age | -0.09 | [-0.13, -0.05]
## gender [Female] | 0.01 | [-0.08, 0.10]
## occupation [Homemaker] | -0.16 | [-0.77, 0.44]
## occupation [Self-employed] | -0.15 | [-0.76, 0.45]
## occupation [Public Official] | -0.12 | [-0.74, 0.51]
## occupation [Teaching Staff] | -0.16 | [-0.82, 0.49]
## occupation [Medical/Healthcare] | -0.16 | [-0.81, 0.49]
## occupation [Business Owner] | 0.29 | [-0.37, 0.96]
## occupation [Corporate Executive] | -0.27 | [-1.00, 0.45]
## occupation [Employee] | -0.21 | [-0.80, 0.38]
## occupation [Part-time/Temporary] | -0.09 | [-0.70, 0.51]
## occupation [Unemployed] | -0.13 | [-0.73, 0.47]
## occupation [Agriculture/Forestry/Fisheries] | 0.02 | [-0.71, 0.76]
## occupation [Professional (Lawyer/Tax Accountant, etc.)] | -0.73 | [-1.71, 0.26]
## occupation [Other] | -0.14 | [-0.75, 0.46]
## education [High School (In progress)] | -0.48 | [-1.29, 0.32]
## education [High School Graduate] | 0.06 | [-0.17, 0.29]
## education [Vocational School (In progress)] | 0.29 | [-0.72, 1.31]
## education [Vocational School Graduate] | 0.03 | [-0.21, 0.28]
## education [Junior College (In progress)] | 0.11 | [-0.83, 1.04]
## education [Junior College Graduate] | 0.03 | [-0.23, 0.29]
## education [University (In progress)] | -0.35 | [-1.01, 0.32]
## education [University Graduate] | 0.07 | [-0.16, 0.30]
## education [Graduate School (Master's - In progress)] | -0.52 | [-1.69, 0.65]
## education [Graduate School (Master's - Completed)] | 0.11 | [-0.17, 0.39]
## education [Graduate School (Ph.D. - Completed)] | 0.01 | [-0.43, 0.45]
## education [Other] | -0.04 | [-0.68, 0.61]
## education [Prefer not to say] | -0.12 | [-0.46, 0.23]
## prefecture [Aomori] | -0.31 | [-0.76, 0.14]
## prefecture [Iwate] | -0.23 | [-0.62, 0.16]
## prefecture [Miyagi] | 0.10 | [-0.21, 0.40]
## prefecture [Akita] | -0.18 | [-0.64, 0.29]
## prefecture [Yamagata] | 0.01 | [-0.42, 0.45]
## prefecture [Fukushima] | 0.07 | [-0.29, 0.43]
## prefecture [Ibaraki] | -0.17 | [-0.45, 0.12]
## prefecture [Tochigi] | 0.04 | [-0.28, 0.36]
## prefecture [Gunma] | -0.38 | [-0.70, -0.05]
## prefecture [Saitama] | -0.10 | [-0.30, 0.11]
## prefecture [Chiba] | -1.36e-03 | [-0.21, 0.21]
## prefecture [Tokyo] | -6.75e-03 | [-0.19, 0.18]
## prefecture [Kanagawa] | -0.11 | [-0.30, 0.09]
## prefecture [Niigata] | -0.42 | [-0.76, -0.09]
## prefecture [Toyama] | 0.04 | [-0.37, 0.45]
## prefecture [Ishikawa] | -0.06 | [-0.54, 0.42]
## prefecture [Fukui] | 0.20 | [-0.46, 0.86]
## prefecture [Yamanashi] | -0.34 | [-0.96, 0.28]
## prefecture [Nagano] | -0.20 | [-0.52, 0.13]
## prefecture [Gifu] | -0.06 | [-0.41, 0.28]
## prefecture [Shizuoka] | -0.22 | [-0.50, 0.07]
## prefecture [Aichi] | -0.12 | [-0.33, 0.09]
## prefecture [Mie] | -0.31 | [-0.70, 0.08]
## prefecture [Shiga] | 0.08 | [-0.32, 0.47]
## prefecture [Kyoto] | 0.06 | [-0.23, 0.34]
## prefecture [Osaka] | -0.06 | [-0.27, 0.14]
## prefecture [Hyogo] | -0.08 | [-0.31, 0.14]
## prefecture [Nara] | -0.15 | [-0.51, 0.21]
## prefecture [Wakayama] | -0.53 | [-1.07, 0.02]
## prefecture [Tottori] | -0.43 | [-1.06, 0.19]
## prefecture [Shimane] | 0.06 | [-0.50, 0.62]
## prefecture [Okayama] | -0.25 | [-0.59, 0.09]
## prefecture [Hiroshima] | -0.17 | [-0.45, 0.11]
## prefecture [Yamaguchi] | -0.26 | [-0.75, 0.22]
## prefecture [Tokushima] | 0.28 | [-0.84, 1.40]
## prefecture [Kagawa] | -0.26 | [-0.84, 0.31]
## prefecture [Ehime] | -0.16 | [-0.52, 0.20]
## prefecture [Kochi] | -0.06 | [-0.86, 0.75]
## prefecture [Fukuoka] | -0.04 | [-0.29, 0.20]
## prefecture [Saga] | -0.08 | [-0.58, 0.42]
## prefecture [Nagasaki] | -0.36 | [-0.86, 0.14]
## prefecture [Kumamoto] | -0.26 | [-0.69, 0.16]
## prefecture [Oita] | 0.23 | [-0.28, 0.75]
## prefecture [Miyazaki] | -0.16 | [-0.71, 0.39]
## prefecture [Kagoshima] | 0.29 | [-0.37, 0.96]
## prefecture [Okinawa] | -0.19 | [-0.81, 0.42]
stepwise_model <- step(
regression_with_comprehension,
direction = "both",
trace = 0
)
formula(stepwise_model)
## acceptance ~ comprehension + simplification_factor + age
AIC(stepwise_model)
## [1] 4466.319
parsimonious_model <- lm(
acceptance ~ comprehension + simplification_factor + age,
data = analysis_data
)
parsimonious_summary <- summary(parsimonious_model)
parsimonious_confint <- confint(parsimonious_model)
standardized_beta <- {
x <- model.matrix(parsimonious_model)[, -1]
b <- coef(parsimonious_model)[-1]
sy <- sd(parsimonious_model$model[[1]])
sx <- apply(x, 2, sd)
b * sx / sy
}
table2 <- broom::tidy(parsimonious_model, conf.int = TRUE) |>
dplyr::filter(term != "(Intercept)") |>
dplyr::mutate(
standardized_beta = standardized_beta[term],
p_value = p.value
) |>
dplyr::select(term, estimate, standardized_beta, conf.low, conf.high, p_value)
knitr::kable(table2, digits = 3)
| term | estimate | standardized_beta | conf.low | conf.high | p_value |
|---|---|---|---|---|---|
| comprehension | 0.520 | 0.605 | 0.491 | 0.549 | 0.00 |
| simplification_factorSimplified | 0.062 | 0.037 | 0.006 | 0.118 | 0.03 |
| age | -0.004 | -0.072 | -0.006 | -0.002 | 0.00 |
tibble::tibble(
statistic = c("Adjusted R-squared", "F", "df1", "df2", "p", "N"),
value = c(
parsimonious_summary$adj.r.squared,
unname(parsimonious_summary$fstatistic[1]),
unname(parsimonious_summary$fstatistic[2]),
unname(parsimonious_summary$fstatistic[3]),
pf(
parsimonious_summary$fstatistic[1],
parsimonious_summary$fstatistic[2],
parsimonious_summary$fstatistic[3],
lower.tail = FALSE
),
nobs(parsimonious_model)
)
) |>
knitr::kable(digits = 3)
| statistic | value |
|---|---|
| Adjusted R-squared | 0.368 |
| F | 426.507 |
| df1 | 3.000 |
| df2 | 2193.000 |
| p | 0.000 |
| N | 2197.000 |
The mediation models include age, gender, education, occupation, and
residential prefecture as covariates. Factor covariates are explicitly
dummy coded before calling mediate() to avoid bootstrap
failures when a resample omits a rare factor level. This is
algebraically equivalent to including the same factors in
lm().
covariate_matrix <- model.matrix(
~ age + gender + education + occupation + prefecture,
data = analysis_data
)[, -1]
covariate_matrix <- covariate_matrix[
,
apply(covariate_matrix, 2, sd) > 0,
drop = FALSE
]
colnames(covariate_matrix) <- make.names(colnames(covariate_matrix), unique = TRUE)
mediation_data <- data.frame(
acceptance = analysis_data$acceptance,
comprehension = analysis_data$comprehension,
simplification = analysis_data$simplification,
covariate_matrix,
check.names = FALSE
)
rhs_covariates <- paste(colnames(covariate_matrix), collapse = " + ")
mediator_model <- lm(
as.formula(paste("comprehension ~ simplification +", rhs_covariates)),
data = mediation_data
)
outcome_model <- lm(
as.formula(paste("acceptance ~ simplification + comprehension +", rhs_covariates)),
data = mediation_data
)
coef(summary(mediator_model))["simplification", , drop = FALSE]
## Estimate Std. Error t value Pr(>|t|)
## simplification 0.1752619 0.04172813 4.20009 2.778474e-05
coef(summary(outcome_model))[c("comprehension", "simplification"), , drop = FALSE]
## Estimate Std. Error t value Pr(>|t|)
## comprehension 0.52267034 0.01516461 34.466455 4.427431e-207
## simplification 0.05386735 0.02926369 1.840757 6.579682e-02
set.seed(seed_value)
mediation_fit <- mediation::mediate(
model.m = mediator_model,
model.y = outcome_model,
treat = "simplification",
mediator = "comprehension",
control.value = 0,
treat.value = 1,
boot = TRUE,
sims = 2000
)
summary(mediation_fit)
##
## Causal Mediation Analysis
##
## Nonparametric Bootstrap Confidence Intervals with the Percentile Method
##
## Estimate 95% CI Lower 95% CI Upper p-value
## ACME 0.0916042 0.0462079 0.1362789 <2e-16 ***
## ADE 0.0538673 -0.0037122 0.1115242 0.073 .
## Total Effect 0.1454715 0.0746356 0.2170588 <2e-16 ***
## Prop. Mediated 0.6297053 0.3864092 1.0378665 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Sample Size Used: 2197
##
##
## Simulations: 2000
mediation_report <- tibble::tibble(
effect = c("ACME", "ADE", "Total effect", "Proportion mediated"),
estimate = c(
mediation_fit$d0,
mediation_fit$z0,
mediation_fit$tau.coef,
mediation_fit$n0
),
ci_low = c(
mediation_fit$d0.ci[1],
mediation_fit$z0.ci[1],
mediation_fit$tau.ci[1],
mediation_fit$n0.ci[1]
),
ci_high = c(
mediation_fit$d0.ci[2],
mediation_fit$z0.ci[2],
mediation_fit$tau.ci[2],
mediation_fit$n0.ci[2]
),
p_value = c(
mediation_fit$d0.p,
mediation_fit$z0.p,
mediation_fit$tau.p,
mediation_fit$n0.p
)
)
knitr::kable(mediation_report, digits = 4)
| effect | estimate | ci_low | ci_high | p_value |
|---|---|---|---|---|
| ACME | 0.0916 | 0.0462 | 0.1363 | 0.000 |
| ADE | 0.0539 | -0.0037 | 0.1115 | 0.073 |
| Total effect | 0.1455 | 0.0746 | 0.2171 | 0.000 |
| Proportion mediated | 0.6297 | 0.3864 | 1.0379 | 0.000 |
Using the seed policy above, the ADE remains statistically non-significant.
sensitivity_fit <- mediation::medsens(
mediation_fit,
rho.by = 0.01,
effect.type = "indirect"
)
summary(sensitivity_fit)
##
## Mediation Sensitivity Analysis for Average Causal Mediation Effect
##
## Sensitivity Region
##
## Rho ACME 95% CI Lower 95% CI Upper R^2_M*R^2_Y* R^2_M~R^2_Y~
## [1,] 0.58 0.0045 -0.0010 0.0100 0.3364 0.1913
## [2,] 0.59 0.0022 -0.0030 0.0074 0.3481 0.1980
## [3,] 0.60 -0.0002 -0.0053 0.0049 0.3600 0.2047
## [4,] 0.61 -0.0026 -0.0079 0.0027 0.3721 0.2116
## [5,] 0.62 -0.0051 -0.0107 0.0005 0.3844 0.2186
##
## Rho at which ACME = 0: 0.6
## R^2_M*R^2_Y* at which ACME = 0: 0.36
## R^2_M~R^2_Y~ at which ACME = 0: 0.2047
sensitivity_values <- tibble::tibble(
rho_at_acme_zero = sensitivity_fit$err.cr.d,
R2star_product = sensitivity_fit$R2star.d.thresh,
R2tilde_product = sensitivity_fit$R2tilde.d.thresh,
r2_mediator_model = sensitivity_fit$r.square.m,
r2_outcome_model = sensitivity_fit$r.square.y
)
knitr::kable(sensitivity_values, digits = 3)
| rho_at_acme_zero | R2star_product | R2tilde_product | r2_mediator_model | r2_outcome_model |
|---|---|---|---|---|
| 0.6 | 0.36 | 0.205 | 0.071 | 0.388 |
Optional appendix plot:
plot(
sensitivity_fit,
sens.par = "rho",
main = "Mediation Sensitivity Analysis"
)
x_lasso <- model.matrix(
acceptance ~ simplification + comprehension + age + gender +
education + occupation + prefecture,
data = analysis_data
)[, -1]
y_lasso <- analysis_data$acceptance
set.seed(seed_value)
cv_lasso <- glmnet::cv.glmnet(
x = x_lasso,
y = y_lasso,
alpha = 1,
nfolds = 10,
standardize = TRUE
)
nonzero_coefs <- function(cvfit, s) {
b <- as.matrix(coef(cvfit, s = s))
out <- tibble::tibble(
term = rownames(b),
coefficient = as.numeric(b[, 1])
)
dplyr::filter(out, term != "(Intercept)", coefficient != 0)
}
lasso_lambda_min <- nonzero_coefs(cv_lasso, "lambda.min")
lasso_lambda_1se <- nonzero_coefs(cv_lasso, "lambda.1se")
cv_lasso$lambda.min
## [1] 0.02135956
knitr::kable(lasso_lambda_min, digits = 4)
| term | coefficient |
|---|---|
| simplification | 0.0211 |
| comprehension | 0.4976 |
| age | -0.0028 |
| occupationBusiness Owner | 0.1744 |
| prefectureGunma | -0.0586 |
| prefectureTokyo | 0.0185 |
| prefectureNiigata | -0.0877 |
| prefectureWakayama | -0.0708 |
| prefectureOita | 0.0266 |
cv_lasso$lambda.1se
## [1] 0.1139896
knitr::kable(lasso_lambda_1se, digits = 4)
| term | coefficient |
|---|---|
| comprehension | 0.4005 |
stepwise_terms <- c("comprehension", "simplification", "age")
tibble::tibble(
term = stepwise_terms,
retained_at_lambda_min = stepwise_terms %in% lasso_lambda_min$term,
retained_at_lambda_1se = stepwise_terms %in% lasso_lambda_1se$term
) |>
knitr::kable()
| term | retained_at_lambda_min | retained_at_lambda_1se |
|---|---|---|
| comprehension | TRUE | TRUE |
| simplification | TRUE | FALSE |
| age | TRUE | FALSE |
At lambda.min, the three predictors in the parsimonious
stepwise-AIC model are retained. At the more conservative
lambda.1se, only comprehension is retained, which is
consistent with the relatively small magnitudes of the simplification
and age coefficients.
ordered_logit_model <- MASS::polr(
acceptance_ord ~ comprehension + simplification + age,
data = analysis_data,
method = "logistic",
Hess = TRUE
)
ordered_logit_table <- coef(summary(ordered_logit_model))
ordered_logit_p <- 2 * pnorm(
abs(ordered_logit_table[, "t value"]),
lower.tail = FALSE
)
ordered_logit_results <- tibble::tibble(
term = rownames(ordered_logit_table),
estimate = ordered_logit_table[, "Value"],
std_error = ordered_logit_table[, "Std. Error"],
t_value = ordered_logit_table[, "t value"],
p_value = ordered_logit_p,
odds_ratio = c(exp(coef(ordered_logit_model)), rep(NA_real_, 4))
)
knitr::kable(ordered_logit_results, digits = 4)
| term | estimate | std_error | t_value | p_value | odds_ratio |
|---|---|---|---|---|---|
| comprehension | 1.7270 | 0.0604 | 28.6145 | 0.0000 | 5.6239 |
| simplification | 0.1952 | 0.0857 | 2.2788 | 0.0227 | 1.2156 |
| age | -0.0140 | 0.0031 | -4.4615 | 0.0000 | 0.9861 |
| 1|2 | 0.5340 | 0.2156 | 2.4768 | 0.0133 | NA |
| 2|3 | 2.7215 | 0.2165 | 12.5697 | 0.0000 | NA |
| 3|4 | 6.2032 | 0.2551 | 24.3127 | 0.0000 | NA |
| 4|5 | 9.2018 | 0.3143 | 29.2814 | 0.0000 | NA |
interaction_model <- lm(
acceptance ~ simplification * document_type + age + gender +
occupation + education + prefecture,
data = analysis_data
)
main_effect_model <- lm(
acceptance ~ simplification + document_type + age + gender +
occupation + education + prefecture,
data = analysis_data
)
interaction_model_with_comprehension <- lm(
acceptance ~ comprehension + simplification * document_type + age +
gender + occupation + education + prefecture,
data = analysis_data
)
main_effect_model_with_comprehension <- lm(
acceptance ~ comprehension + simplification + document_type + age +
gender + occupation + education + prefecture,
data = analysis_data
)
interaction_terms <- grep(
"simplification.*:document_type|document_type.*:simplification",
rownames(coef(summary(interaction_model)))
)
interaction_terms_with_comprehension <- grep(
"simplification.*:document_type|document_type.*:simplification",
rownames(coef(summary(interaction_model_with_comprehension)))
)
coef(summary(interaction_model))[interaction_terms, , drop = FALSE]
## Estimate Std. Error t value Pr(>|t|)
## simplification:document_typeB -0.06205391 0.07256336 -0.8551686 0.3925545
anova(main_effect_model, interaction_model)
## Analysis of Variance Table
##
## Model 1: acceptance ~ simplification + document_type + age + gender +
## occupation + education + prefecture
## Model 2: acceptance ~ simplification * document_type + age + gender +
## occupation + education + prefecture
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 2120 1477.6
## 2 2119 1477.1 1 0.50978 0.7313 0.3926
coef(summary(interaction_model_with_comprehension))[
interaction_terms_with_comprehension,
,
drop = FALSE
]
## Estimate Std. Error t value Pr(>|t|)
## simplification:document_typeB -0.05121195 0.05814177 -0.8808117 0.3785197
anova(main_effect_model_with_comprehension, interaction_model_with_comprehension)
## Analysis of Variance Table
##
## Model 1: acceptance ~ comprehension + simplification + document_type +
## age + gender + occupation + education + prefecture
## Model 2: acceptance ~ comprehension + simplification * document_type +
## age + gender + occupation + education + prefecture
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 2119 948.18
## 2 2118 947.84 1 0.3472 0.7758 0.3785
The additional checks support the main interpretation:
p < .001.lambda.min; at the more conservative
lambda.1se, only comprehension is retained.The session information below records the environment used when this R Markdown file is knitted. The target public analysis environment is R v.4.5.1.
sessionInfo()
## R version 4.5.1 (2025-06-13)
## Platform: aarch64-apple-darwin20
## Running under: macOS Tahoe 26.5.1
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.1
##
## locale:
## [1] C.UTF-8/C.UTF-8/C.UTF-8/C/C.UTF-8/C.UTF-8
##
## time zone: Asia/Tokyo
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] knitr_1.50 glmnet_5.0 mediation_4.5.1 sandwich_3.1-1
## [5] mvtnorm_1.3-3 Matrix_1.7-3 MASS_7.3-65 broom_1.0.8
## [9] effectsize_1.0.1 emmeans_1.11.1 car_3.1-3 carData_3.0-5
## [13] purrr_1.0.4 tidyr_1.3.1 tibble_3.3.0 forcats_1.0.0
## [17] dplyr_1.1.4 readr_2.1.5
##
## loaded via a namespace (and not attached):
## [1] tidyselect_1.2.1 farver_2.1.2 S7_0.2.1 fastmap_1.2.0
## [5] bayestestR_0.17.0 digest_0.6.37 rpart_4.1.24 estimability_1.5.1
## [9] lifecycle_1.0.4 cluster_2.1.8.1 survival_3.8-3 magrittr_2.0.3
## [13] compiler_4.5.1 rlang_1.1.6 Hmisc_5.2-3 sass_0.4.10
## [17] tools_4.5.1 yaml_2.3.10 data.table_1.17.4 htmlwidgets_1.6.4
## [21] bit_4.6.0 RColorBrewer_1.1-3 abind_1.4-8 withr_3.0.2
## [25] foreign_0.8-90 nnet_7.3-20 grid_4.5.1 datawizard_1.2.0
## [29] colorspace_2.1-1 ggplot2_4.0.2 iterators_1.0.14 scales_1.4.0
## [33] insight_1.4.2 cli_3.6.5 crayon_1.5.3 rmarkdown_2.29
## [37] reformulas_0.4.1 generics_0.1.4 rstudioapi_0.17.1 tzdb_0.5.0
## [41] parameters_0.28.1 minqa_1.2.8 cachem_1.1.0 stringr_1.5.1
## [45] splines_4.5.1 parallel_4.5.1 base64enc_0.1-3 vctrs_0.6.5
## [49] boot_1.3-31 jsonlite_2.0.0 hms_1.1.3 bit64_4.6.0-1
## [53] Formula_1.2-5 htmlTable_2.4.3 foreach_1.5.2 jquerylib_0.1.4
## [57] glue_1.8.0 nloptr_2.2.1 codetools_0.2-20 shape_1.4.6.1
## [61] stringi_1.8.7 gtable_0.3.6 lme4_1.1-37 pillar_1.10.2
## [65] htmltools_0.5.8.1 R6_2.6.1 Rdpack_2.6.4 vroom_1.6.5
## [69] evaluate_1.0.3 lpSolve_5.6.23 lattice_0.22-7 rbibutils_2.3
## [73] backports_1.5.0 bslib_0.9.0 Rcpp_1.0.14 gridExtra_2.3
## [77] nlme_3.1-168 checkmate_2.3.2 xfun_0.52 zoo_1.8-14
## [81] pkgconfig_2.0.3