Summary

Study 9 preregistered was a preregistered study to test how generic statements about certain features affect adults’ generalization across similar versus different features.

In this study, adults (n = 400) heard 15 generics about similar features of Zarpies (i.e., physical, diet and food preferences, or personality and related behaviors) or 15 generics about heterogeneous features of Zarpies (i.e., a fixed subset of 5 generics from each of the aforementioned clusters). Adults then completed an inductive potential task: in each trial, they observed a Zarpie with a novel feature, and rated its prevalence among Zarpies (0-100%). Trials involved 5 novel features from each cluster (i.e., 5 novel physical, diet, and personality features), comprising 15 novel features in total.

We replicated our findings from our earlier exploratory study:

  1. If adults learn feature-specific coherence based on the features in the generics they heard, then adults who hear generics about certain features should generalize more within that feature type than across feature types. In other words, if the condition a participant was in matched the feature type of the test feature they were rating on that trial, participants should respond higher than if the condition did not match. Indeed, we found an effect of match type, such that prevalence was higher when training and test matched, compared to heterogeneous or mismatch.

  2. The average cosine similarity between a test feature and the features heard in the training phase predicted a participant’s prevalence response on that trial.

Methods

Participants

n_collect incomplete sound_check attn_check straightline AI check_task n n_excl excl_rate
419 19 6 3 5 1 3 383 36 0.08591885

Data was collected from 419 adults (n = 98-100/condition) via Prolific on Thursday-Friday 10/16-10/17/2025. Participants required to be in the United States, fluent in English, and having not participated in prior studies under this protocol. Participants were paid $1.75 for an estimated 7 minute task. Participants were requested to particpate via desktop.

condition n
physical 97
diet 94
personality 95
heterogeneous 97

Exclusion criteria

36 participants (8.6% of all participants) were excluded for meeting at least 1 of the following exclusion criteria:

  • failing the sound check (i.e., did not select “bird” as the sound heard during the sound check video) (n = 6 participants)

  • failing the attention check (i.e., did not select 100% on slider when asked to during induction task) (n = 3 participants)

  • admitting to use of AI after being explicitly informed use was prohibited (n = 1 participants)

  • failing the task check (n = 3 participants)

Demographics

We used the Prolific representative sample feature to recruit a sample representative of the US based on Census data on sex, age, and ethnicity (Simplified US Census).

Age

age
mean sd n
45.32 15.64 383

Gender

gender n prop
Female 195 50.9%
Male 185 48.3%
Prefer not to specify 2 0.5%
60 1 0.3%
  • The sample reflected the diversity of the gender identities in the US.

Race

race n prop
White, Caucasian, or European American 229 59.8%
Black or African American 42 11.0%
Hispanic or Latino/a 32 8.4%
White, Caucasian, or European American,Hispanic or Latino/a 14 3.7%
East Asian 13 3.4%
South or Southeast Asian 10 2.6%
White, Caucasian, or European American,East Asian 5 1.3%
White, Caucasian, or European American,Native American, American Indian, or Alaska Native 4 1.0%
Hispanic or Latino/a,Black or African American 3 0.8%
Middle Eastern or North African 3 0.8%
Prefer not to specify 3 0.8%
White, Caucasian, or European American,Black or African American,Native American, American Indian, or Alaska Native 3 0.8%
White, Caucasian, or European American,South or Southeast Asian 3 0.8%
White, Caucasian, or European American,Black or African American 2 0.5%
White, Caucasian, or European American,Middle Eastern or North African 2 0.5%
Afro-Native Shinnecock 1 0.3%
Black or African American,South or Southeast Asian 1 0.3%
Israeli 1 0.3%
Mixed 1 0.3%
Mixed: White, Black, Middle Eastern 1 0.3%
Multiracial 1 0.3%
Native American, American Indian, or Alaska Native 1 0.3%
Native Hawaiian or other Pacific Islander 1 0.3%
White, Caucasian, or European American,Hispanic or Latino/a,Black or African American 1 0.3%
White, Caucasian, or European American,Hispanic or Latino/a,Black or African American,Native American, American Indian, or Alaska Native 1 0.3%
White, Caucasian, or European American,Hispanic or Latino/a,East Asian 1 0.3%
White, Caucasian, or European American,Hispanic or Latino/a,Native American, American Indian, or Alaska Native 1 0.3%
White, Caucasian, or European American,Native American, American Indian, or Alaska Native,East Asian 1 0.3%
multiracial 1 0.3%
NA 1 0.3%
  • The sample was also racially diverse.

Education

education n prop
Less than high school 2 0.5%
High school/GED 53 13.8%
Some college 113 29.5%
Bachelor's (B.A., B.S.) 148 38.6%
Master's (M.A., M.S.) 43 11.2%
Doctoral (Ph.D., J.D., M.D.) 17 4.4%
Prefer not to specify 6 1.6%
NA 1 0.3%

Procedure

This study was administered as a Qualtrics survey, and approved by the NYU IRB (IRB-FY2023-6812).

After providing their consent, participants completed a captcha, pledge not to use AI, and sound check. Participants then completed:

  1. Training phase: participants heard 15 generic statements in random order. Participants were randomly assigned to one of 4 conditions:
  • Diet condition - 15 generic statements about Zarpies’ diet and food preferences
  • Physical condition - 15 generic statements about Zarpies’ physical features
  • Personality condition - 15 generic statements about Zarpies’ personality and related behaviors
  • Heterogeneous condition - a fixed subset of 5 generic statements from each of the 3 feature types above (diet, physical, personality)
  1. Test phase (induction task): Participants completed an induction task where they imagined seeing a Zarpie with a novel feature, and estimated the prevalence of that feature among Zarpies using a slider from 0 to 100 (initialized at 0). All participants completed the same 15 trials, with order of trials randomized:
  • 5 physical features
  • 5 diet features
  • 5 personality features
  1. Test phase (group characterization): Participants were then asked to respond to a freeform question asking: “What do you think characterizes Zarpies as a group?” Responses were loosely coded blind to condition by Marianna.

Participants then completed a few task completion questions, demographics, and were debriefed.

Data processing

Prevalence judgments were converted to a scale from 0 to 1, with 0 and 1 values trimmed to 0.01 and 0.99 to support a beta regression, since a uniform beta distribution does not include its endpoints of 0 and 1.

Computational modeling

To get a sense of feature space, we embed all the features (training and test features), as they appear in generic statements, using a sentence transformer (MiniLM). We then use PCA to reduce that multi-dimensional space down to a 2 dimensional feature space. The code doing this and generating these plots is in Python, in the project folder under “Model”.

Stimuli

All conditions

All training features plus test features in 2D feature space based on embeddings from a sentence embedding model.
All training features plus test features in 2D feature space based on embeddings from a sentence embedding model.

Physical condition

Physical training features (darker circles) plus test features (lighter diamonds) in 2D feature space based on embeddings from a sentence embedding model.
Physical training features (darker circles) plus test features (lighter diamonds) in 2D feature space based on embeddings from a sentence embedding model.

Diet condition

Diet training features (darker circles) plus test features (lighter diamonds) in 2D feature space based on embeddings from a sentence embedding model.
Diet training features (darker circles) plus test features (lighter diamonds) in 2D feature space based on embeddings from a sentence embedding model.

Personality condition

Personality training features (darker circles) plus test features (lighter diamonds) in 2D feature space based on embeddings from a sentence embedding model.
Personality training features (darker circles) plus test features (lighter diamonds) in 2D feature space based on embeddings from a sentence embedding model.

Predicted concepts

The training conditions are all generics, which indicate what features are known to be kind-linked. Based on what features are known to be kind-linked, our feature-specific model tries to fit a multivariate Gaussian function (3D) over feature space (2D). This multivariate Gaussian function can be thought of a “kind concept”, and is centered on a mean and has a covariance matrix defining its spread. For example, if the Gaussian is centered over physical features, it will have stronger generalization to other physical features, and weaker generalization to more distant features in feature space.

We can then use the model to make predictions about novel test features based on their embedding location in feature space and the Gaussian concept:

  1. The Gaussian provides a probability over “kind scores” for each test feature.

  2. A test feature’s “kind score” in turn is entered into a beta distribution which provides a probability over the likelihood of the test feature being kind-linked.

  3. The likelihood of the test feature being kind-linked then sets a Bernoulli distribution, which determines whether the test feature is in fact kind-linked.

  4. Note that we have yet to link this model to prevalence judgments (or embed it in the rational speech acts framework).

It’s hard to visualize a 3D Gaussian over a 2D space, so the below visualizations use ellipses to depict cross-sections from sampled Gaussians, to show approximately what the expected Gaussian might look like after each training condition.

Physical condition

Example kind concepts after the physical condition.
Example kind concepts after the physical condition.

Diet condition

Example kind concepts after the diet condition.
Example kind concepts after the diet condition.

Personality condition

Example kind concepts after the personality condition.
Example kind concepts after the personality condition.

Heterogeneous condition

Example kind concepts after the heterogeneous condition.
Example kind concepts after the heterogeneous condition.

Primary results

Induction task

Analyses of the induction task were logistic regressions unless otherwise specified, predicting prevalence (.01-.99) with participant and test feature as random intercepts. Test feature (“can snap with their toes”, etc.) is technically nested within test feature type (physical, diet, personality), but since each test feature is unique to each test feature type, a model with the nesting term is analytically equivalent to the previous model, so the nesting term was omitted for simplicity of specification.

By test feature

We can look at how prevalence judgments vary by condition and individual test feature.

By test feature type

We can look at how prevalence judgments vary by condition and test feature type (i.e., physical, diet, or personality).

If the chosen clusters capture some systematicity in how people generalize, the physical condition should make the highest prevalence estimates for physical test features, the diet condition for the diet test features, and the personality condition for personality test features. This appears to be true for the physical and personality conditions, but not for the diet condition.

# condition * test feature type
glmm_condition_testfeaturetype <-
  glmmTMB(prevalence ~ condition * test_feature_type + (1|participant) + (1|test_feature), 
          data = data_tidy, 
          family = beta_family(link = "logit"))

glmm_condition_testfeaturetype %>% 
  Anova()
## Analysis of Deviance Table (Type II Wald chisquare tests)
## 
## Response: prevalence
##                               Chisq Df           Pr(>Chisq)    
## condition                   11.6643  3             0.008626 ** 
## test_feature_type            6.9583  2             0.030833 *  
## condition:test_feature_type 79.6473  6 0.000000000000004225 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
glmm_condition_testfeaturetype_pairs <- glmm_condition_testfeaturetype %>% 
  emmeans(~ condition * test_feature_type) %>%
  contrast(method = "pairwise") %>%
  summary()

glmm_condition_testfeaturetype_pairs
##  contrast                                             estimate    SE  df
##  physical physical - diet physical                    0.551661 0.147 Inf
##  physical physical - personality physical             0.587304 0.147 Inf
##  physical physical - heterogeneous physical           0.551367 0.146 Inf
##  physical physical - physical diet                    0.069805 0.210 Inf
##  physical physical - diet diet                        0.139959 0.250 Inf
##  physical physical - personality diet                 0.479164 0.249 Inf
##  physical physical - heterogeneous diet               0.518802 0.249 Inf
##  physical physical - physical personality            -0.245210 0.211 Inf
##  physical physical - diet personality                -0.008632 0.250 Inf
##  physical physical - personality personality         -0.215079 0.249 Inf
##  physical physical - heterogeneous personality        0.097944 0.249 Inf
##  diet physical - personality physical                 0.035643 0.148 Inf
##  diet physical - heterogeneous physical              -0.000294 0.147 Inf
##  diet physical - physical diet                       -0.481856 0.250 Inf
##  diet physical - diet diet                           -0.411702 0.211 Inf
##  diet physical - personality diet                    -0.072496 0.250 Inf
##  diet physical - heterogeneous diet                  -0.032859 0.250 Inf
##  diet physical - physical personality                -0.796871 0.250 Inf
##  diet physical - diet personality                    -0.560293 0.211 Inf
##  diet physical - personality personality             -0.766740 0.250 Inf
##  diet physical - heterogeneous personality           -0.453717 0.250 Inf
##  personality physical - heterogeneous physical       -0.035937 0.146 Inf
##  personality physical - physical diet                -0.517499 0.249 Inf
##  personality physical - diet diet                    -0.447345 0.250 Inf
##  personality physical - personality diet             -0.108139 0.210 Inf
##  personality physical - heterogeneous diet           -0.068502 0.249 Inf
##  personality physical - physical personality         -0.832514 0.249 Inf
##  personality physical - diet personality             -0.595936 0.250 Inf
##  personality physical - personality personality      -0.802383 0.211 Inf
##  personality physical - heterogeneous personality    -0.489360 0.249 Inf
##  heterogeneous physical - physical diet              -0.481562 0.249 Inf
##  heterogeneous physical - diet diet                  -0.411409 0.250 Inf
##  heterogeneous physical - personality diet           -0.072203 0.249 Inf
##  heterogeneous physical - heterogeneous diet         -0.032565 0.210 Inf
##  heterogeneous physical - physical personality       -0.796577 0.249 Inf
##  heterogeneous physical - diet personality           -0.559999 0.250 Inf
##  heterogeneous physical - personality personality    -0.766446 0.249 Inf
##  heterogeneous physical - heterogeneous personality  -0.453423 0.210 Inf
##  physical diet - diet diet                            0.070153 0.147 Inf
##  physical diet - personality diet                     0.409359 0.147 Inf
##  physical diet - heterogeneous diet                   0.448997 0.146 Inf
##  physical diet - physical personality                -0.315015 0.211 Inf
##  physical diet - diet personality                    -0.078437 0.250 Inf
##  physical diet - personality personality             -0.284884 0.249 Inf
##  physical diet - heterogeneous personality            0.028139 0.249 Inf
##  diet diet - personality diet                         0.339206 0.148 Inf
##  diet diet - heterogeneous diet                       0.378844 0.147 Inf
##  diet diet - physical personality                    -0.385169 0.250 Inf
##  diet diet - diet personality                        -0.148591 0.211 Inf
##  diet diet - personality personality                 -0.355038 0.250 Inf
##  diet diet - heterogeneous personality               -0.042015 0.250 Inf
##  personality diet - heterogeneous diet                0.039638 0.147 Inf
##  personality diet - physical personality             -0.724375 0.250 Inf
##  personality diet - diet personality                 -0.487797 0.250 Inf
##  personality diet - personality personality          -0.694244 0.211 Inf
##  personality diet - heterogeneous personality        -0.381221 0.250 Inf
##  heterogeneous diet - physical personality           -0.764012 0.249 Inf
##  heterogeneous diet - diet personality               -0.527434 0.250 Inf
##  heterogeneous diet - personality personality        -0.733881 0.250 Inf
##  heterogeneous diet - heterogeneous personality      -0.420859 0.211 Inf
##  physical personality - diet personality              0.236578 0.148 Inf
##  physical personality - personality personality       0.030131 0.147 Inf
##  physical personality - heterogeneous personality     0.343154 0.147 Inf
##  diet personality - personality personality          -0.206447 0.149 Inf
##  diet personality - heterogeneous personality         0.106576 0.148 Inf
##  personality personality - heterogeneous personality  0.313023 0.147 Inf
##  z.ratio p.value
##    3.751  0.0096
##    4.004  0.0036
##    3.779  0.0087
##    0.332  1.0000
##    0.561  1.0000
##    1.921  0.7460
##    2.083  0.6348
##   -1.165  0.9915
##   -0.035  1.0000
##   -0.862  0.9994
##    0.393  1.0000
##    0.241  1.0000
##   -0.002  1.0000
##   -1.931  0.7397
##   -1.955  0.7241
##   -0.290  1.0000
##   -0.132  1.0000
##   -3.191  0.0631
##   -2.658  0.2475
##   -3.066  0.0905
##   -1.817  0.8088
##   -0.245  1.0000
##   -2.076  0.6401
##   -1.790  0.8241
##   -0.514  1.0000
##   -0.275  1.0000
##   -3.337  0.0403
##   -2.382  0.4182
##   -3.810  0.0077
##   -1.962  0.7193
##   -1.935  0.7370
##   -1.649  0.8909
##   -0.290  1.0000
##   -0.155  1.0000
##   -3.199  0.0617
##   -2.242  0.5184
##   -3.073  0.0887
##   -2.155  0.5827
##    0.476  1.0000
##    2.787  0.1854
##    3.070  0.0896
##   -1.496  0.9421
##   -0.314  1.0000
##   -1.142  0.9928
##    0.113  1.0000
##    2.291  0.4832
##    2.569  0.2974
##   -1.542  0.9290
##   -0.705  0.9999
##   -1.419  0.9601
##   -0.168  1.0000
##    0.270  1.0000
##   -2.902  0.1399
##   -1.949  0.7280
##   -3.295  0.0460
##   -1.528  0.9332
##   -3.065  0.0906
##   -2.110  0.6153
##   -2.940  0.1269
##   -1.998  0.6950
##    1.600  0.9097
##    0.205  1.0000
##    2.340  0.4475
##   -1.390  0.9657
##    0.721  0.9999
##    2.126  0.6040
## 
## Results are given on the log odds ratio (not the response) scale. 
## P value adjustment: tukey method for comparing a family of 12 estimates

Indeed, there is a significant interaction between condition and test feature type in an ANOVA conducted on a logistic regression with condition, test feature type, and their interaction as fixed effects, and with participant and test feature as random intercepts (\(\chi^2\)(6) = 79.65, p < .001). There is also a main effect of condition (\(\chi^2\)(3) = 11.66, p = 0.009) and test feature type (\(\chi^2\)(2) = 6.96, p = 0.031)

By test feature type match

Another way to look at the data is to code responses by whether the test feature htype matched the training condition. If they match (e.g., diet condition responding to a diet test question), we can code that as a match, or if they mismatch (e.g., diet condition responding to a personality test question), we can code that as a mismatch. We can leave the heterogeneous condition as its own category, since it’s a semi-match to everything.

If the chosen clusters capture some systematicity in how people generalize, matches should result in higher prevalence estimates than mismatches. Indeed, that’s what we find.

# condition
glmm_condition_test_match <-
  glmmTMB(prevalence ~ condition_test_match + (1|participant) + (1|test_feature), 
          data = data_tidy, 
          family = beta_family(link = "logit"))

glmm_condition_test_match %>% 
  Anova()
## Analysis of Deviance Table (Type II Wald chisquare tests)
## 
## Response: prevalence
##                       Chisq Df            Pr(>Chisq)    
## condition_test_match 78.898  2 < 0.00000000000000022 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
glmm_condition_test_match_pairs <- glmm_condition_test_match %>% 
  emmeans(~ condition_test_match) %>% 
  contrast(method = "pairwise") %>% 
  summary()

glmm_condition_test_match_pairs
##  contrast                 estimate     SE  df z.ratio p.value
##  match - heterogeneous       0.415 0.1150 Inf   3.593  0.0010
##  match - mismatch            0.264 0.0306 Inf   8.632 <0.0001
##  heterogeneous - mismatch   -0.151 0.1140 Inf  -1.324  0.3819
## 
## Results are given on the log odds ratio (not the response) scale. 
## P value adjustment: tukey method for comparing a family of 3 estimates

Indeed, there is a main effect of whether condition and test variables match (match, hetereogenous, or mismatch) on prevalence, in an ANOVA conducted on a logistic regression with match as a main effect, and with participant and test feature as random intercepts (\(\chi^2\)(2) = 78.9, p < .001).

Pairwise comparisons reveal that the matching condition results in higher prevalence estimates of test features than the heterogeneous condition (z = 3.59, p < .001) or the mismatching conditions (z = 8.63, p < .001)

By cosine similarity

Instead of grouping features into discrete types, we can also look at the distance (cosine similarity) between each individual test feature to the training features presented in each condition, in the multidimensional embedding space.

For each test feature, we can calculate the average distance to training features in each condition, and see if that metric of cosine similarity predicts measures of prevalence.

# average cosine similarity of the test feature, to the training features in that condition
glmm_cosine_similarity_avg <-
  glmmTMB(prevalence ~ cosine_similarity_avg + (1|participant) + (1|test_feature), 
          data = data_tidy, 
          family = beta_family(link = "logit"))

glmm_cosine_similarity_avg %>% 
  summary()

Indeed, there is a significant effect of average cosine similarity of the test feature to the various training features in the condition (\(z\) = 7.39, p < .001), such that higher average cosine similarity predicts higher prevalence estimates, in a logistic model with random intercepts per participant and test feature.

We can also focus on maximum cosine similarity, i.e., the distance from the test feature to the closest training feature in a given condition, and see if that metric predicts prevalence judgments.

# max cosine similarity of the test feature, to the closest training features in that condition
glmm_cosine_similarity_max <-
  glmmTMB(prevalence ~ cosine_similarity_max + (1|participant) + (1|test_feature), 
          data = data_tidy, 
          family = beta_family(link = "logit"))

glmm_cosine_similarity_max %>% 
  summary()

Indeed, maximum cosine similarity is also a significant predictor of prevalence estimates (\(z\) = 7.06, p < .001), such that higher maximum cosine similarity predicts higher prevalence estimates, in a logistic model with random intercepts per participant and test feature.

glmmTMB(prevalence ~ cosine_similarity_avg + cosine_similarity_max + (1|participant) + (1|test_feature), 
          data = data_tidy, 
          family = beta_family(link = "logit"))  %>% 
  summary()

However, when including both average and max cosine similarity as predictors, only average cosine similarity remains a significant predictor of prevalence estimates, suggesting that people are integrating over all training features in the condition, rather than just attending to the most similar training feature.

Overall

We can look at prevalence estimates overall. If the heterogeneous condition leads to the highest overall coherence, we should see the highest prevalence estimates in that condition overall. However, that’s not what we find.

# condition * test feature type
glmm_condition <-
  glmmTMB(prevalence ~ condition + (1|participant) + (1|test_feature_type),
          data = data_tidy, 
          family = beta_family(link = "logit"))

glmm_condition %>% 
  Anova()
## Analysis of Deviance Table (Type II Wald chisquare tests)
## 
## Response: prevalence
##            Chisq Df Pr(>Chisq)   
## condition 12.229  3   0.006638 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
glmm_condition_pairs <- glmm_condition %>% 
  emmeans("condition") %>%
  contrast(method = "pairwise") %>%
  summary()

glmm_condition_pairs
##  contrast                    estimate    SE  df z.ratio p.value
##  physical - diet               0.2842 0.132 Inf   2.147  0.1383
##  physical - personality        0.3371 0.132 Inf   2.554  0.0520
##  physical - heterogeneous      0.4377 0.131 Inf   3.332  0.0048
##  diet - personality            0.0529 0.133 Inf   0.398  0.9787
##  diet - heterogeneous          0.1534 0.132 Inf   1.160  0.6524
##  personality - heterogeneous   0.1006 0.132 Inf   0.762  0.8714
## 
## Results are given on the log odds ratio (not the response) scale. 
## P value adjustment: tukey method for comparing a family of 4 estimates

There is an effect of condition on prevalence (\(\chi^2\)(3) = 12.23, p = 0.007).

Pairwise comparisons reveal significant differences between the physical condition and most other conditions (physical vs diet: z = 2.15, p = 0.138, physical vs personality: z = 2.55, p = 0.052, physical vs heterogeneous: z = 3.33, p = 0.005).

By test feature, vs model

We can get the model’s predictions and compare those to people’s ratings of prevalence. For now, we get the model’s “kind score” for each test feature, which is a measure of the expected value of the Gaussian function at that location in feature space.

Footnotes

## R version 4.5.2 (2025-10-31)
## Platform: aarch64-apple-darwin20
## Running under: macOS Tahoe 26.5
## 
## Matrix products: default
## BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 
## LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## time zone: America/New_York
## tzcode source: internal
## 
## attached base packages:
## [1] grid      stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] reticulate_1.44.1 emmeans_2.0.1     car_3.1-3         carData_3.0-5    
##  [5] glmmTMB_1.1.14    lubridate_1.9.4   forcats_1.0.1     stringr_1.6.0    
##  [9] dplyr_1.1.4       purrr_1.2.1       readr_2.1.6       tidyr_1.3.2      
## [13] tibble_3.3.1      ggplot2_4.0.1     tidyverse_2.0.0   gt_1.3.0         
## [17] scales_1.4.0      janitor_2.2.1     here_1.0.2       
## 
## loaded via a namespace (and not attached):
##  [1] Rdpack_2.6.5        gridExtra_2.3       sandwich_3.1-1     
##  [4] rlang_1.1.7         magrittr_2.0.4      multcomp_1.4-29    
##  [7] snakecase_0.11.1    otel_0.2.0          compiler_4.5.2     
## [10] mgcv_1.9-4          systemfonts_1.3.1   png_0.1-8          
## [13] vctrs_0.7.1         pkgconfig_2.0.3     crayon_1.5.3       
## [16] fastmap_1.2.0       backports_1.5.0     labeling_0.4.3     
## [19] rmarkdown_2.30      tzdb_0.5.0          nloptr_2.2.1       
## [22] ragg_1.5.0          bit_4.6.0           xfun_0.56          
## [25] cachem_1.1.0        jsonlite_2.0.0      parallel_4.5.2     
## [28] cluster_2.1.8.1     R6_2.6.1            bslib_0.10.0       
## [31] stringi_1.8.7       RColorBrewer_1.1-3  boot_1.3-32        
## [34] rpart_4.1.24        jquerylib_0.1.4     numDeriv_2016.8-1.1
## [37] estimability_1.5.1  Rcpp_1.1.1          knitr_1.51         
## [40] zoo_1.8-15          base64enc_0.1-3     Matrix_1.7-4       
## [43] splines_4.5.2       nnet_7.3-20         timechange_0.3.0   
## [46] tidyselect_1.2.1    rstudioapi_0.18.0   abind_1.4-8        
## [49] yaml_2.3.12         TMB_1.9.19          codetools_0.2-20   
## [52] lattice_0.22-7      withr_3.0.2         S7_0.2.1           
## [55] coda_0.19-4.1       evaluate_1.0.5      foreign_0.8-90     
## [58] survival_3.8-6      xml2_1.5.2          pillar_1.11.1      
## [61] checkmate_2.3.3     reformulas_0.4.3.1  generics_0.1.4     
## [64] vroom_1.6.7         rprojroot_2.1.1     hms_1.1.4          
## [67] minqa_1.2.8         xtable_1.8-4        glue_1.8.0         
## [70] Hmisc_5.2-5         tools_4.5.2         data.table_1.18.0  
## [73] lme4_1.1-38         fs_1.6.6            mvtnorm_1.3-3      
## [76] rbibutils_2.4.1     colorspace_2.1-2    nlme_3.1-168       
## [79] htmlTable_2.4.3     Formula_1.2-5       cli_3.6.5          
## [82] textshaping_1.0.4   ggthemes_5.2.0      gtable_0.3.6       
## [85] sass_0.4.10         digest_0.6.39       TH.data_1.1-5      
## [88] htmlwidgets_1.6.4   farver_2.1.2        htmltools_0.5.9    
## [91] lifecycle_1.0.5     bit64_4.6.0-1       MASS_7.3-65