here::here("code", "_common.R") |>
source()
# Load packages
if (!requireNamespace("pacman")) install.packages("pacman")
pacman::p_load(mice)
52 Sintesi a posteriori
52.1 Introduzione
In questo capitolo, concentriamo la nostra attenzione sulla sintesi dell’informazione racchiusa nella distribuzione a posteriori, la quale rappresenta il nostro livello di incertezza riguardo al parametro o ai parametri incogniti oggetto dell’inferenza.
52.2 Riepilogo numerico
La distribuzione a posteriori contiene in sé tutte le informazioni disponibili sui potenziali valori del parametro. Nel caso di un parametro unidimensionale o bidimensionale, possiamo rappresentare la distribuzione a posteriori mediante un grafico \(p(\theta \mid y)\).
Tuttavia, quando ci troviamo di fronte a vettori di parametri con più di due dimensioni, risulta vantaggioso eseguire una sintesi numerica della distribuzione a posteriori. Possiamo distinguere due forme di sintesi numerica della distribuzione a posteriori:
- Stima puntuale;
- Intervallo di credibilità.
52.3 Stima puntuale
Nel contesto dell’inferenza bayesiana, stimare il valore più credibile di un parametro \(\theta\) a partire dalla distribuzione a posteriori può avvenire attraverso tre statistiche principali: moda, mediana e media. La scelta tra queste dipende dalla forma della distribuzione a posteriori.
Queste statistiche forniscono una stima puntuale della tendenza centrale della distribuzione, ossia il valore a cui attribuiamo il massimo grado di fiducia soggettiva, basandoci sia sui dati osservati sia sulle credenze a priori.
1. Moda (Massimo a Posteriori, MAP)
La moda è il valore più probabile del parametro, ovvero quello che massimizza la distribuzione a posteriori. Questo valore è noto come massimo a posteriori (MAP).
Il concetto di MAP deriva dalla stima di massima verosimiglianza (MLE), che individua il valore di \(\theta\) che massimizza la funzione di verosimiglianza:
\[ \hat{\theta}_{ML} = \arg \max_\theta L(\theta \mid y). \]
Nell’inferenza bayesiana, consideriamo \(\theta\) come una variabile casuale con una distribuzione a priori \(p(\theta)\). Incorporando questa informazione nella funzione di verosimiglianza, otteniamo la stima MAP:
\[ \hat{\theta}_{MAP} = \arg \max_\theta L(\theta \mid y)p(\theta). \]
Questa formula mostra che il MAP è il valore che massimizza la densità a posteriori di \(\theta\) dato il set di dati osservati \(y\).
Limitazioni della stima MAP:
-
Difficoltà computazionali: con metodi MCMC, è complesso individuare con precisione il MAP nello spazio delle distribuzioni posteriori.
-
Sensibilità alla forma della distribuzione: se la distribuzione a posteriori è asimmetrica o multimodale, il MAP potrebbe non rappresentare adeguatamente la tendenza centrale.
- Minor robustezza rispetto ad altre misure: il MAP si basa esclusivamente sul valore massimo della distribuzione e non tiene conto della distribuzione complessiva della probabilità.
2. Media a posteriori
La media a posteriori è il valore atteso di \(\theta\) secondo la distribuzione a posteriori:
\[ E(\theta \mid y) = \int_{-\infty}^{\infty} \theta \, p(\theta \mid y) \, d\theta. \]
Questa stima è spesso preferita perché considera l’intera distribuzione e minimizza l’errore quadratico medio (Mean Squared Error, MSE). Tuttavia, se la distribuzione a posteriori è asimmetrica, la media potrebbe non rappresentare bene la posizione della maggior parte della probabilità.
3. Mediana a posteriori
La mediana a posteriori è il valore che divide la distribuzione a posteriori in due parti uguali, con il 50% della probabilità a sinistra e il 50% a destra.
La mediana è una stima robusta della tendenza centrale ed è particolarmente utile in distribuzioni asimmetriche o multimodali, dove la moda e la media potrebbero risultare fuorvianti.
Misurare l’incertezza: varianza a posteriori
Oltre a stimare la tendenza centrale, è utile valutare l’incertezza associata alla stima di \(\theta\). La varianza a posteriori misura la dispersione della distribuzione:
\[ V(\theta|y) = E[((\theta - E[(\theta|y)])^2 |y) = \int_{-\infty}^{\infty} (\theta - E[\theta | y])^2 p(\theta | y) d\theta = E[\theta^2 |y] - E[\theta|y]^2. \]
La deviazione standard a posteriori (radice quadrata della varianza) esprime l’incertezza sulla stima \(\theta\) con la stessa unità di misura dei dati.
In sintesi, la moda (MAP), la media e la mediana a posteriori offrono diverse prospettive sulla stima puntuale di un parametro \(\theta\). Ciascuna ha vantaggi e limiti, e la scelta migliore dipende dalla forma della distribuzione a posteriori e dal contesto applicativo.
Insieme alla varianza a posteriori, queste statistiche forniscono un quadro completo della distribuzione a posteriori, permettendo di esprimere non solo la stima più credibile, ma anche l’incertezza associata.
52.4 Intervallo di credibilità
Nell’inferenza bayesiana, l’intervallo di credibilità è uno strumento utilizzato per definire un intervallo che contiene una determinata percentuale della massa della distribuzione a posteriori del parametro \(\theta\). Questo intervallo riflette l’incertezza associata alla stima del parametro: un intervallo più ampio suggerisce una maggiore incertezza. Lo scopo principale dell’intervallo di credibilità è fornire una misura quantitativa dell’incertezza riguardante \(\theta\).
A differenza degli intervalli di confidenza frequentisti, non esiste un unico intervallo di credibilità per un dato livello di confidenza \((1 - \alpha) \cdot 100\%\). In effetti, è possibile costruire un numero infinito di tali intervalli. Per questo motivo, è necessario stabilire criteri aggiuntivi per selezionare l’intervallo di credibilità più appropriato. Tra le opzioni più comuni ci sono l’intervallo di credibilità simmetrico e l’intervallo di massima densità posteriore (HPD).
1. Intervallo di Credibilità Simmetrico
Questo tipo di intervallo è centrato rispetto al punto di stima puntuale. Se \(\hat{\theta}\) rappresenta la stima del parametro, l’intervallo simmetrico avrà la forma \((\hat{\theta} - a, \hat{\theta} + a)\), dove \(a\) è un valore positivo scelto in modo tale che la massa totale inclusa sia pari a \((1 - \alpha)\). Più formalmente, un intervallo di credibilità simmetrico al livello \(\alpha\) può essere espresso come:
\[ I_{\alpha} = [q_{\alpha/2}, q_{1 - \alpha/2}], \]
dove \(q_z\) rappresenta il quantile \(z\) della distribuzione a posteriori. Ad esempio, un intervallo di credibilità simmetrico al 94% sarà:
\[ I_{0.06} = [q_{0.03}, q_{0.97}], \]
dove il 3% della massa a posteriori si trova in ciascuna delle due code della distribuzione.
2. Intervallo di Credibilità Più Stretto (Intervallo di Massima Densità Posteriore, HPD)
L’intervallo di massima densità posteriore (HPD) è l’intervallo più stretto possibile che contiene il \((1 - \alpha) \cdot 100\%\) della massa a posteriori. A differenza dell’intervallo simmetrico, l’HPD include tutti i valori di \(\theta\) che hanno la maggiore densità a posteriori. Per costruirlo, si disegna una linea orizzontale sulla distribuzione a posteriori e si regola l’altezza della linea in modo che l’area sotto la curva corrisponda a \((1 - \alpha)\). L’HPD risulta essere il più stretto tra tutti gli intervalli possibili per lo stesso livello di confidenza. Nel caso di una distribuzione a posteriori unimodale e simmetrica, l’HPD coincide con l’intervallo di credibilità simmetrico.
52.4.1 Interpretazione
Il calcolo degli intervalli di credibilità—in particolare dell’intervallo di massima densità posteriore (HPD)—richiede quasi sempre l’utilizzo di software statistici specializzati. Questo perché, nei modelli bayesiani con distribuzioni posteriori articolate o che richiedono simulazioni numeriche (ad esempio tramite Markov Chain Monte Carlo), ricavare a mano i confini dell’intervallo può risultare molto laborioso.
52.4.1.1 1. Incertezza nel paradigma frequentista
-
Parametro fisso: nel contesto frequentista, il parametro di interesse (ad esempio la media di popolazione \(\mu\)) è un valore costante ma sconosciuto.
-
Ripetizione ipotetica: immaginiamo di ripetere all’infinito il prelievo di campioni dalla popolazione. Per ciascun campione otteniamo una media \(\bar{x}\) e costruendo un intervallo di confidenza al \(100(1-\alpha)\%\) avremo che, nel lungo periodo, il \(100(1-\alpha)\%\) di questi intervalli conterrà il vero \(\mu\).
- Interpretazione del singolo intervallo: per un singolo intervallo calcolato, la probabilità che contenga effettivamente \(\mu\) è formalmente 0 o 1, perché \(\mu\) non è soggetto a variabilità stocastica—siamo semplicemente ignari del suo valore reale.
52.4.1.2 2. Incertezza nel paradigma bayesiano
-
Parametro come variabile aleatoria: qui \(\mu\) non è più un valore fisso, ma possiede una distribuzione di probabilità che riflette sia l’informazione a priori sia quella fornita dai dati osservati.
-
Campionamento dalla distribuzione a posteriori: grazie a tecniche di simulazione (ad es. MCMC), otteniamo un insieme di possibili valori di \(\mu\) che segue la distribuzione posteriore.
- Costruzione diretta dell’intervallo: scegliendo i quantili al \(2.5\%\) e al \(97.5\%\) di questa distribuzione, otteniamo un intervallo di credibilità al 95%. In termini intuitivi, possiamo affermare che «c’è una probabilità del 95% che \(\mu\) cada all’interno di questo intervallo, dati i dati e le ipotesi a priori».
52.4.1.3 3. Confronto e considerazioni
-
Frequentista: l’intervallo di confidenza è un costrutto legato alla frequenza di lungo periodo di un procedimento ipotetico di campionamento.
-
Bayesiano: l’intervallo di credibilità fornisce una misura puntuale dell’incertezza sul parametro, direttamente comprensibile come probabilità condizionata sui dati osservati.
- Intuizione: per molti, l’interpretazione bayesiana risulta più aderente al senso comune, perché traduce immediatamente il grado di fiducia che possiamo riporre nei valori ipotizzati per il parametro.
In sintesi, mentre la teoria frequentista quantifica l’affidabilità del metodo di stima nel lungo periodo, l’approccio bayesiano esprime senza ambiguità la probabilità attuale che il parametro si trovi in un certo intervallo, alla luce delle evidenze e delle conoscenze pregresse.
52.5 Verifica di ipotesi bayesiana
L’inferenza bayesiana può essere applicata anche nel contesto della verifica di ipotesi, in un approccio noto come verifica di ipotesi bayesiana. In questo tipo di inferenza, l’obiettivo è valutare la plausibilità che un parametro \(\theta\) assuma valori all’interno di un determinato intervallo. Ad esempio, possiamo voler sapere quanto è probabile che \(\theta\) sia maggiore di 0.5 o che rientri in un intervallo specifico, come [0.5, 1.0].
In questo approccio, si calcola la probabilità a posteriori che \(\theta\) si trovi all’interno dell’intervallo di interesse. Questa probabilità viene ottenuta integrando la distribuzione a posteriori su tale intervallo. Quindi, invece di rifiutare o accettare un’ipotesi come nel test di ipotesi frequentista, la verifica di ipotesi bayesiana fornisce una misura diretta della probabilità che un parametro rientri in un intervallo specifico, dato l’evidenza osservata e le informazioni a priori.
In altre parole, questo approccio consente di quantificare la nostra incertezza rispetto all’affermazione che \(\theta\) rientri in un certo intervallo, fornendo una probabilità che rappresenta direttamente la plausibilità di quell’ipotesi.
Esempio 52.1 Per illustrare l’approccio bayesiano, consideriamo i dati relativi ai punteggi del BDI-II (Beck Depression Inventory - Second Edition) di 30 soggetti clinici, come riportato nello studio condotto da Zetsche et al. (2019). Il BDI-II è uno strumento per valutare la gravità dei sintomi depressivi.
I punteggi del BDI-II per i 30 soggetti sono:
# Dati del BDI-II
bdi <- c(
26, 35, 30, 25, 44, 30, 33, 43, 22, 43,
24, 19, 39, 31, 25, 28, 35, 30, 26, 31,
41, 36, 26, 35, 33, 28, 27, 34, 27, 22
)
bdi
#> [1] 26 35 30 25 44 30 33 43 22 43 24 19 39 31 25 28 35 30 26 31 41 36 26 35
#> [25] 33 28 27 34 27 22
Un punteggio BDI-II \(\geq 30\) indica un livello grave di depressione. Nel nostro campione, 17 pazienti su 30 manifestano un livello grave:
# Conteggio di depressione grave
sum(bdi >= 30)
#> [1] 17
Stima della distribuzione a posteriori.
Supponiamo di voler stimare la probabilità \(\theta\) di depressione grave nei pazienti clinici utilizzando una distribuzione a priori \(Beta(8, 2)\). I dati possono essere visti come una sequenza di prove Bernoulliane indipendenti, dove la presenza di depressione grave è un “successo”. La verosimiglianza è quindi binomiale con parametri \(n = 30\) e \(y = 17\).
Con una distribuzione a priori \(Beta(8, 2)\), la distribuzione a posteriori di \(\theta\) sarà:
\[ \text{Beta}(\alpha = 8 + 17, \beta = 2 + 30 - 17) = \text{Beta}(25, 15). \]
Tracciamo la distribuzione a posteriori.
# Parametri della distribuzione Beta
alpha <- 25
beta <- 15
# Calcolo della densità per valori di theta
theta <- seq(0, 1, length.out = 200)
posterior_density <- dbeta(theta, alpha, beta)
# Grafico della distribuzione a posteriori
ggplot(data = data.frame(theta, posterior_density), aes(x = theta, y = posterior_density)) +
geom_line() +
labs(
title = "Distribuzione a Posteriori Beta(25, 15)",
x = expression(theta),
y = "Densità di probabilità"
)
Stime puntuali.
-
Media a Posteriori
La media della distribuzione a posteriori è calcolata come:
\[ \mathbb{E}(\theta | y = 17) = \frac{\alpha}{\alpha + \beta} = \frac{25}{25 + 15} = 0.625. \]
In R:
# Calcolo della media a posteriori
posterior_mean <- alpha / (alpha + beta)
posterior_mean
#> [1] 0.625
-
Moda a Posteriori (MAP)
La moda della distribuzione a posteriori è:
\[ Mo(\theta | y = 17) = \frac{\alpha - 1}{\alpha + \beta - 2} = \frac{25 - 1}{25 + 15 - 2} = 0.6316. \]
In R:
# Calcolo della moda a posteriori
posterior_mode <- (alpha - 1) / (alpha + beta - 2)
posterior_mode
#> [1] 0.6316
-
Mediana a Posteriori
La mediana si ottiene utilizzando la funzione di distribuzione cumulativa inversa:
# Calcolo della mediana a posteriori
posterior_median <- qbeta(0.5, alpha, beta)
posterior_median
#> [1] 0.6271
Intervallo di credibilità.
L’intervallo di credibilità simmetrico al 94% è dato dai percentili 3% e 97%:
Possiamo interpretare questo intervallo come segue: c’è una certezza soggettiva del 94% che \(\theta\) sia compreso tra 0.478 e 0.761.
Verifica di ipotesi bayesiana.
Infine, calcoliamo la probabilità che \(\theta > 0.5\):
\[ P(\theta > 0.5 | y = 17) = \int_{0.5}^1 f(\theta | y = 17) d\theta. \]
In R:
# Probabilità P(theta > 0.5)
prob_theta_greater_0_5 <- pbeta(0.5, alpha, beta, lower.tail = FALSE)
prob_theta_greater_0_5
#> [1] 0.9459
In conclusione, utilizzando un approccio bayesiano, abbiamo stimato la distribuzione a posteriori di \(\theta\), ottenuto stime puntuali e costruito intervalli di credibilità. Abbiamo inoltre calcolato la probabilità che \(\theta\) superi una soglia specifica, mostrando la flessibilità e l’interpretabilità delle analisi bayesiane.
52.6 Sintesi della distribuzione a posteriori: questioni multivariate
Quando si affronta un’analisi bayesiana con più parametri, la complessità aumenta. Le principali difficoltà riguardano le interazioni tra i parametri e il modo in cui queste influenzano le distribuzioni marginali. Questi fattori possono complicare notevolmente la sintesi della distribuzione a posteriori e, se non considerati attentamente, possono portare a interpretazioni errate.
52.6.1 Correlazioni nascoste e distribuzioni marginali
Un problema comune nelle analisi con più parametri è rappresentato dalle correlazioni tra i parametri. Le distribuzioni marginali a posteriori, spesso riportate nei riassunti statistici, possono essere molto fuorvianti se considerate isolatamente. Quando i parametri sono fortemente correlati, le distribuzioni marginali possono apparire piatte o poco informative, inducendo a pensare che non ci sia molta informazione nella verosimiglianza.
Tuttavia, le correlazioni tra parametri possono restringere notevolmente lo spazio delle combinazioni plausibili, escludendo vaste aree dello spazio dei parametri. Questo significa che, nonostante le marginali possano sembrare non informative, l’analisi congiunta dei parametri può rivelare una struttura sottostante che riduce l’incertezza su specifiche combinazioni. Pertanto, è essenziale esaminare le correlazioni congiunte tra i parametri per ottenere una visione più completa dell’incertezza.
Con un numero maggiore di parametri, anche i grafici di correlazione bidimensionali possono diventare limitati, poiché potrebbero esistere correlazioni di ordine superiore che non emergono in rappresentazioni a due dimensioni.
52.6.2 Correlazioni non lineari
Un’altra difficoltà significativa riguarda le correlazioni non lineari tra i parametri. Quando queste correlazioni sono presenti, il massimo delle distribuzioni marginali non coincide necessariamente con il massimo della distribuzione congiunta. Per esempio, se due parametri presentano una correlazione complessa, come una forma a “banana”, il massimo delle distribuzioni marginali potrebbe trovarsi in una posizione diversa rispetto al massimo globale della distribuzione congiunta.
Questo fenomeno rende più difficile sintetizzare correttamente la distribuzione a posteriori. In tali casi, la stima del massimo a posteriori (MAP) o altri riassunti, come gli intervalli di credibilità (CI) o gli intervalli di massima densità a posteriori (HPD), calcolati sulle marginali, potrebbero essere fuorvianti. Quando la distribuzione a posteriori è asimmetrica nello spazio multivariato, le distribuzioni marginali non catturano adeguatamente le relazioni tra i parametri. Questa è una fonte comune di confusione, poiché si tende a sottovalutare l’importanza della struttura multivariata nella distribuzione a posteriori.
52.6.3 Strategie per affrontare queste sfide
-
Confronto tra distribuzioni predittive:
- Confrontare la distribuzione predittiva a priori con quella a posteriori offre una visione più completa della riduzione dell’incertezza.
- Questo approccio è particolarmente utile in presenza di parametri multipli e correlazioni complesse, poiché la distribuzione predittiva a posteriori incorpora le interazioni tra i parametri, fornendo una rappresentazione più accurata della plausibilità dei diversi valori parametrici.
-
Analisi congiunta:
- Esaminare le distribuzioni congiunte dei parametri, oltre alle distribuzioni marginali.
- Utilizzare grafici di dispersione bivariati o multivariati per visualizzare le relazioni tra i parametri.
- Tecniche avanzate di visualizzazione, come i pair plots o le heatmap, possono essere utili per esplorare relazioni in spazi ad alta dimensionalità.
-
Misure di dipendenza:
- Utilizzare misure di dipendenza non lineare, come la correlazione di Spearman o l’informazione mutua, che possono catturare relazioni complesse che le misure lineari tradizionali potrebbero non rilevare.
-
Analisi di sensibilità:
- Condurre un’analisi di sensibilità per valutare come i cambiamenti in un parametro influenzano gli altri parametri e le previsioni del modello. Questo permette di capire meglio le relazioni tra i parametri e il loro impatto sulle inferenze.
-
Tecniche di riduzione della dimensionalità:
- Quando ci sono molti parametri, l’uso di metodi come l’analisi delle componenti principali (PCA) può aiutare a identificare strutture latenti e ridurre la complessità del problema, facilitando l’interpretazione dei risultati.
In sintesi, l’analisi multivariata in un contesto bayesiano richiede particolare attenzione nella sintesi delle distribuzioni a posteriori. Le distribuzioni marginali possono fornire informazioni utili, ma spesso nascondono importanti correlazioni e strutture di dipendenza tra i parametri. Un’analisi completa dovrebbe combinare l’esame delle marginali con una valutazione attenta delle relazioni congiunte tra i parametri, utilizzando tecniche di visualizzazione e misure di dipendenza adeguate. Questo approccio integrato permette di comprendere più a fondo la distribuzione a posteriori e di trarre inferenze più robuste e accurate.
52.7 Riflessioni Conclusive
In conclusione, la distribuzione a posteriori rappresenta la nostra conoscenza aggiornata sui parametri sconosciuti. L’impiego delle statistiche descrittive e l’analisi degli intervalli di credibilità contribuiscono a tracciare un quadro completo della distribuzione a posteriori e delle nostre inferenze riguardo al parametro di interesse.
Le stime puntuali, ottenute attraverso statistiche descrittive come media, mediana o moda a posteriori, offrono una singola valutazione numerica del parametro ignoto. Gli intervalli di credibilità forniscono un intervallo di valori all’interno del quale si ritiene, con un certo grado di probabilità soggettiva, che il parametro incognito possa rientrare. Questi intervalli quantificano l’incertezza associata al parametro e consentono di esprimere il livello di fiducia soggettiva riguardo ai possibili valori del parametro dopo l’analisi dei dati. Abbiamo inoltre esaminato il concetto di test di ipotesi bayesiano, il quale può essere condotto agevolmente calcolando l’area appropriata sotto la distribuzione a posteriori, in accordo con l’ipotesi in questione.
Esercizi
Informazioni sull’Ambiente di Sviluppo
sessionInfo()
#> R version 4.5.0 (2025-04-11)
#> Platform: aarch64-apple-darwin20
#> Running under: macOS Sequoia 15.5
#>
#> 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/C/C/C
#>
#> time zone: Europe/Rome
#> tzcode source: internal
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] mice_3.17.0 thematic_0.1.6 MetBrewer_0.2.0 ggokabeito_0.1.0
#> [5] see_0.11.0 gridExtra_2.3 patchwork_1.3.0 bayesplot_1.12.0
#> [9] psych_2.5.3 scales_1.4.0 markdown_2.0 knitr_1.50
#> [13] lubridate_1.9.4 forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4
#> [17] purrr_1.0.4 readr_2.1.5 tidyr_1.3.1 tibble_3.2.1
#> [21] ggplot2_3.5.2 tidyverse_2.0.0 rio_1.2.3 here_1.0.1
#>
#> loaded via a namespace (and not attached):
#> [1] tidyselect_1.2.1 farver_2.1.2 fastmap_1.2.0
#> [4] pacman_0.5.1 digest_0.6.37 rpart_4.1.24
#> [7] timechange_0.3.0 lifecycle_1.0.4 survival_3.8-3
#> [10] magrittr_2.0.3 compiler_4.5.0 rlang_1.1.6
#> [13] tools_4.5.0 labeling_0.4.3 htmlwidgets_1.6.4
#> [16] mnormt_2.1.1 RColorBrewer_1.1-3 withr_3.0.2
#> [19] nnet_7.3-20 grid_4.5.0 jomo_2.7-6
#> [22] iterators_1.0.14 MASS_7.3-65 cli_3.6.5
#> [25] rmarkdown_2.29 reformulas_0.4.1 generics_0.1.4
#> [28] rstudioapi_0.17.1 tzdb_0.5.0 minqa_1.2.8
#> [31] splines_4.5.0 parallel_4.5.0 vctrs_0.6.5
#> [34] boot_1.3-31 glmnet_4.1-8 Matrix_1.7-3
#> [37] jsonlite_2.0.0 hms_1.1.3 mitml_0.4-5
#> [40] foreach_1.5.2 glue_1.8.0 nloptr_2.2.1
#> [43] pan_1.9 codetools_0.2-20 stringi_1.8.7
#> [46] shape_1.4.6.1 gtable_0.3.6 lme4_1.1-37
#> [49] pillar_1.10.2 htmltools_0.5.8.1 R6_2.6.1
#> [52] Rdpack_2.6.4 rprojroot_2.0.4 evaluate_1.0.3
#> [55] lattice_0.22-7 rbibutils_2.3 backports_1.5.0
#> [58] broom_1.0.8 Rcpp_1.0.14 nlme_3.1-168
#> [61] xfun_0.52 pkgconfig_2.0.3