Con i pacchetti Stan e frontend rstanarm
o brms
posso facilmente analizzare i dati nel modo bayesiano come facevo prima con modelli misti come lme
. Mentre ho la maggior parte del libro e degli articoli di Kruschke-Gelman-Wagenmakers-ecc. Sulla mia scrivania, questi non mi dicono come sintetizzare i risultati per un pubblico medico, diviso tra l'ira di Skesla dei bayesiani e i cariddi dei revisori medici ( "vogliamo significati, non quella roba diffusa").
Un esempio: la frequenza gastrica (1 / min) è misurata in tre gruppi; controlli sani sono il riferimento. Esistono diverse misurazioni per ciascun partecipante, quindi alla frequentista ho usato il seguente modello misto lme
:
summary(lme(freq_min~ group, random = ~1|study_id, data = mo))
Risultati leggermente modificati:
Fixed effects: freq_min ~ group
Value Std.Error DF t-value p-value
(Intercept) 2.712 0.0804 70 33.7 0.0000
groupno_symptoms 0.353 0.1180 27 3.0 0.0058
groupwith_symptoms 0.195 0.1174 27 1.7 0.1086
Per semplicità, userò l'errore 2 * std come IC al 95%.
In un contesto frequentista, avrei riassunto questo come:
- Nel gruppo di controllo la frequenza stimata era di 2,7 / min (forse aggiungere qui CI, ma a volte lo evito a causa della confusione creata dall'assoluto e differenziale CI).
- Nel gruppo no_symptoms, la frequenza era superiore di 0,4 / min, CI (da 0,11 a 0,59) / min, p = 0,006 rispetto al controllo.
- Nel gruppo with_symptoms, la frequenza era maggiore di 0,2 / min, CI (da -0,04 a 0,4) / min, p = 0,11 rispetto al controllo.
Si tratta della massima complessità accettabile per una pubblicazione medica, il revisore probabilmente mi chiederà di aggiungere "non significativo" nel secondo caso.
Qui è lo stesso con stan_lmer
e priori predefiniti.
freq_stan = stan_lmer(freq_min~ group + (1|study_id), data = mo)
contrast lower_CredI frequency upper_CredI
(Intercept) 2.58322 2.714 2.846
groupno_symptoms 0.15579 0.346 0.535
groupwith_symptoms -0.00382 0.188 0.384
dove CredI sono intervalli credibili del 90% (vedere la vignetta rstanarm perché il 90% viene utilizzato come predefinito).
Domande:
- Come tradurre il riassunto di cui sopra nel mondo bayesiano?
- Fino a che punto è richiesta una discussione preliminare? Sono abbastanza sicuro che il documento tornerà con la solita "assunzione soggettiva" quando menzionerò i priori; o almeno con "nessuna discussione tecnica, per favore". Ma tutte le autorità bayesiane richiedono che l'interpretazione sia valida solo nel contesto dei priori.
- Come posso fornire un surrogato "significativo" nella formulazione, senza tradire i concetti bayesiani? Qualcosa di simile a "credibilmente diverso" (uuuh ...) o quasi credibilmente diverso (buoha ..., suona come "sull'orlo del significato).
Jonah Gabry e Ben Goodrich (2016). rstanarm: modellazione della regressione applicata bayesiana via Stan. R pacchetto versione 2.9.0-3. https://CRAN.R-project.org/package=rstanarm
Stan Development Team (2015). Stan: una libreria C ++ per probabilità e campionamento, versione 2.8.0. URL http://mc-stan.org/ .
Paul-Christian Buerkner (2016). brms: modelli di regressione bayesiana usando Stan. Versione pacchetto R 0.8.0. https://CRAN.R-project.org/package=brms
Pinheiro J, Bates D, DebRoy S, Sarkar D e R Core Team (2016). nlme: modelli di effetti misti lineari e non lineari . R pacchetto versione 3.1-124, http://CRAN.R-project.org/package=nlme>.
group_nosymptoms
e poi dire che la probabilità che sia negativo è 1 / draws
. Ma per l'intercettazione, la catena non andrà mai in territorio negativo per questi dati, quindi immagino che potresti dire che la probabilità è inferiore a 1 / draws
.
mean(as.matrix(freq_stan)[,"groupwith_symptoms"] < 0)
.