Contesto : ho un dottorato di ricerca in psicologia sociale, in cui la statistica teorica e la matematica erano a malapena trattate nei miei corsi quantitativi. Attraverso gli studi universitari e la scuola di specializzazione, mi è stato insegnato (come molti di voi anche nelle scienze sociali, probabilmente) attraverso il quadro frequentatore "classico". Ora, adoro anche R e usare i metodi di simulazione per verificare che i metodi di lavoro si facciano stradapiù senso per me delle prove matematiche (di nuovo: background in una scienza sociale quantitativa, non statistica teorica). I metodi frequentista e i metodi di simulazione insieme hanno molto senso per me. Perché i frequentatori vedono la probabilità come probabilità a lungo termine (ad esempio, se lo faccio un numero arbitrariamente grande di volte, e succede il 50% delle volte, allora c'è una probabilità del 50%). Possiamo simulare questo lungo periodo con i metodi Monte Carlo!
Complicazioni : da quando ero studente, sono stato molto consapevole dei metodi bayesiani, e ci sono sempre state persone nella mia vita che mi chiamavano dalla parte bayesiana, dicendo che i risultati erano più facili da interpretare, che otteniamo probabilità per un'ipotesi invece dei dati dato un'ipotesi, ecc. Mi sono davvero appassionato e ho seguito una lezione bayesiana, ho letto alcuni libri e documenti bayesiani e ora ho una buona conoscenza di Stan e dei suoi pacchetti R associati.
Enter Mayo : Dopo aver pensato che "Bayesian è probabilmente la strada per il futuro" per un po ', ho letto l' inferenza statistica di Deborah Mayo come test severi . Dice di non scegliere un lato all'inizio del libro, ma lo fa: è una frequentatrice e gran parte del libro difende le metodologie frequentiste. Non voglio necessariamente entrare in discussione se pensiamo o meno il modo in cui vede le prove valide, ma questo mi ha fatto pensare: Bayes è davvero tutto ciò che viene pubblicizzato? Voglio dire, la folla di Bayes è così frammentata che non conosco nemmeno il modo "giusto" di analizzare spesso i dati in un quadro bayesiano. Di solito, userei solorstanarm
e presentare stime puntuali e intervalli credibili ... che spesso si allineano strettamente con stime e intervalli di confidenza del frequentista. Potrei fare confronti tra modelli, ma ho sempre paura di descrivere i fattori di Bayes come confronti di probabilità posteriori, ecc.
Altre riflessioni : quello che continuavo a pensare nel libro di Mayo era: Esiste un modo in cui possiamo usare i computer per assicurarci che i nostri metodi frequentisti funzionino, perché la probabilità è ciò che vediamo a lungo termine e possiamo simularlo. I bayesiani non sono nemmeno d'accordo su quale sia la probabilità, a seconda della scuola bayesiana (impostazione predefinita, soggettiva, ecc.). Il che mi porta alla mia domanda:
Domanda : In che modo i bayesiani verificano che i loro metodi definiscano correttamente l'incertezza (ovvero, calcolano intervalli credibili validi e distribuzioni posteriori) usando i metodi di simulazione Monte Carlo, se la probabilità non è definita come tassi a lungo termine?
Esempio : creo un generatore di dati. Questo simulerà da una distribuzione di Bernoulli con una probabilità di 0,5:
set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
rbinom(n, 1, p)
}
Ora, diciamo che voglio assicurarmi che gli intervalli di confidenza in una regressione logistica siano effettivamente validi. Posso simulare una regressione un gran numero di volte e assicurarmi che il valore effettivo della popolazione rientri nell'intervallo di confidenza al 95% il 95% delle volte. È un modello solo per intercettazione, quindi voglio solo assicurarmi di stimare p
correttamente:
set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
mod <- glm(gen_dat(n, p) ~ 1, binomial)
conf <- suppressMessages(confint(mod))
log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)
Questo richiede alcuni minuti, ma finiamo con la mean(results)
chiamata che ci dà 0.9416
. Si tratta di circa il 95% e sono fiducioso nel dire che il glm
comando sta descrivendo l'incertezza in modo valido. Sono sicuro che se mi fossi alzato iter
e avessi voluto aspettare più a lungo sul mio portatile, mi sarei avvicinato al naso al 95% .
D'altra parte, adattiamo un modello bayesiano per la stessa cosa:
library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)
In parte, questo mi dà:
Estimates:
mean sd 2.5% 25% 50% 75% 97.5%
(Intercept) -0.1 0.2 -0.5 -0.2 -0.1 0.0 0.3
mean_PPD 0.5 0.1 0.3 0.4 0.5 0.5 0.6
log-posterior -73.0 0.7 -75.1 -73.1 -72.7 -72.5 -72.5
Dato che i bayesiani non definiscono la probabilità come ciò che vediamo a lungo termine, come posso usare i metodi di simulazione per verificare che stan_glm
catturare accuratamente l'incertezza? Cioè, come potrei fidarmi che questi intervalli credibili siano validi, usando i metodi di simulazione? E in questo momento, non sto nemmeno definendo un precedente: come entra in gioco l'inclusione dei priori, poiché ciò influenzerà le nostre misure di incertezza?
Quando stavo provando a scrivere una regressione beta con un componente del modello di ostacolo in Stan da zero una volta, ho avuto qualcuno che mi raccomandava: "Simula dati. Fallo un sacco di volte e le stime vere dovrebbero essere nell'intervallo credibile circa 95 % del tempo." Ma per me questo va contro la stessa cosa in cui i bayesiani credono! Ciò si basa sulla comprensione frequente della probabilità! Quindi, come potrebbe un bayesiano convincermi che l'intervallo credibile che sto ricevendo dalla summary()
chiamata al mio modello sta descrivendo accuratamente l'incertezza, usando i metodi di simulazione?
Scopo della domanda : questo è un esempio banale, ma molte volte i clienti mi danno problemi difficili. E provo cose con cui non ho familiarità, quindi spesso eseguo uno studio di simulazione per assicurarmi che ciò che sto facendo sia valido. Se dovessi scrivere un modello personalizzato a Stan, come potrei sapere che quello che sto facendo è legittimo? Come potrei usare i metodi di simulazione per verificare che ciò che sto facendo a Stan mi dirà cosa voglio sapere?