Skip to content

Instantly share code, notes, and snippets.

@mooresm
Last active March 12, 2023 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mooresm/a93d20f692694b8f3516d3826dca3785 to your computer and use it in GitHub Desktop.
Save mooresm/a93d20f692694b8f3516d3826dca3785 to your computer and use it in GitHub Desktop.
BayesComp 2023 conference programme booklet
---
title: "BayesComp 2023 abstract booklet"
format: pdf
editor: visual
params:
echo: FALSE
---
```{r, echo=FALSE, eval=TRUE, results='hide'}
library(stringr)
library(readxl)
data <- read.csv("BayesComp programme FINAL - Sessions (details).csv",
comment.char="#")
colnames(data)
dim(data)
roomstring <- rep(NA, dim(data)[1])
for (r in 1:(dim(data)[1])){
if(data$Room.nr[r]==0){
if(data$Online[r]=="YES"){
roomstring[r] <- "Auditorium and Online"
}else{
roomstring[r] <- "Auditorium"
}
}else{
if(data$Online[r]=="YES"){
roomstring[r] <- paste("Room ",data$Room.nr[r]," and Online", sep="")
}else{
roomstring[r] <- paste("Room ",data$Room.nr[r], sep="")
}
}
}
roomstring
cbind(data$Room.nr, roomstring)
data$Room.st <- roomstring
# select last names and initials of speakers and chairs
data$id.chair <- paste(word(data$Session.Chair,-1), substr(data$Session.Chair,1, 1))
data$id.s1 <- paste(word(data$Talk.1.presenter.name,-1), substr(data$Talk.1.presenter.name,1, 1))
data$id.s2 <- paste(word(data$Talk.2..presenter.name,-1), substr(data$Talk.2..presenter.name,1, 1))
data$id.s3 <- paste(word(data$Talk.3..presenter.name,-1), substr(data$Talk.3..presenter.name,1, 1))
```
3$^\textrm{rd}$ biennial meeting of the ISBA Section on Bayesian Computation
Levi Summit, Finland
15--17 March, 2023 *(with satellite meetings March 12--14)*
# Keynote Talks
## Tamara Broderick
Massachusetts Institute of Technology, USA
**Title:** An Automatic Finite-Sample Robustness Check for Bayes and Beyond: Can Dropping a Little Data Change Conclusions?
Commonly researchers will run a statistical analysis on a data sample, with the goal of applying any conclusions to a new population. For instance, if economists conclude microcredit is effective at alleviating poverty based on observed data, policymakers might decide to distribute microcredit in other locations or future years.
Typically, the original data is not a perfect random sample of the population where policy is applied -- but researchers might feel comfortable generalizing anyway so long as deviations from random sampling are small, and the corresponding impact on conclusions is small as well. Conversely, researchers might worry if a very small proportion of the data sample was instrumental to the original conclusion. So we propose a method to assess the sensitivity of statistical conclusions to the removal of a very small fraction of the data set. Manually checking all small data subsets is computationally infeasible, so we propose an approximation based on the classical influence function. Our method is automatically computable for MAP, variational Bayes, MLE, and other common estimators -- and we discuss extensions to MCMC. We provide finite-sample error bounds on approximation performance and a low-cost exact lower bound on sensitivity. We find that sensitivity is driven by a signal-to-noise ratio in the inference problem, does not disappear asymptotically, is not decided by misspecification, and is not eliminated by taking a Bayesian approach. While some empirical applications are robust, conclusions of several influential economics papers can be changed by removing (much) less than 1% of the data.
## Anthony Lee
University of Bristol, UK
**Title:** How many steps are needed for random walk Metropolis? Explicit convergence bounds for Metropolis Markov chains
One of the simplest and enduringly popular general-purpose Monte Carlo Markov chains evolving on $\mathbb{R}^d$ is the random walk Metropolis (RWM) Markov chain. Despite its relative simplicity, explicit convergence bounds that scale suitably with dimension have proved elusive for decades. In recent years, progress has been made to show that for distributions with strongly convex and gradient-Lipschitz potentials there exists a specific proposal variance giving an explicit bound on the $\mathscr{L}^2$-mixing time. We refine these results and obtain explicit spectral gap and $\mathscr{L}^2$-mixing time bounds for RWM with arbitrary proposal variances in any dimension, demonstrating the robustness of the algorithm. We obtain the correct scaling with dimension of the spectral gap for sufficiently regular target distributions, and the mixing time bounds are of reasonable (not astronomical) order. Our positive results are quite generally applicable in principle. Essentially the same analysis can be performed for the preconditioned Crank--Nicolson Markov chain, obtaining dimension-independent bounds under suitable assumptions.
This is joint work with C. Andrieu, S. Power and A. Wang.
## Veronika Rockova
The University of Chicago Booth School of Business, USA
**Title:** Adversarial Bayesian Simulation
In the absence of explicit or tractable likelihoods, Bayesians often resort to approximate Bayesian computation (ABC) for inference. Going beyond ABC, my talk surveys recent optimization approaches to simulation-based Bayesian inference in likelihood-free situations. In particular, I will focus on deep neural samplers based on generative adversarial networks (GANs) and on adversarial variational Bayes. Both ABC and GANs compare aspects of observed and fake data to simulate from posteriors and likelihoods, respectively. I will discuss the Bayesian GAN (B-GAN) sampler that directly targets the posterior by solving an adversarial optimization problem. B-GAN is driven by a deterministic mapping learned on the ABC reference by conditional GANs. Once the mapping has been trained, iid posterior samples are obtained by filtering noise at a negligible additional cost. My talk also mentions more traditional posterior sampling approaches (ABC and Metropolis-Hastings) based on classification.
\clearpage
# Invited Sessions
## Parallel I
10:30 --- 12:00, Wednesday 15 March
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
session <- data[which(data$Session.nr==1), ]
for(r in 0:3){
row <- which(session$Room.nr==r)
b <- c("\\begin{center}\n \\textbf{",session$Session.Title[row], "} \n
\\textit{Location}: ", session$Room.st[row], " - \\textit{Chair} : ",session$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", session$Talk.1.presenter.name[row], " (", session$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", session$Talk.2..presenter.name[row], " (", session$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
session$Talk.3..presenter.name[row], " (", session$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
## Parallel II
15:00 --- 16:30, Wednesday 15 March
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
session <- data[which(data$Session.nr==2), ]
for(r in 0:3){
row <- which(session$Room.nr==r)
b <- c("\\begin{center}\n \\textbf{",session$Session.Title[row], "} \n
\\textit{Location}: ", session$Room.st[row], " - \\textit{Chair} : ",session$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", session$Talk.1.presenter.name[row], " (", session$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", session$Talk.2..presenter.name[row], " (", session$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
session$Talk.3..presenter.name[row], " (", session$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
## Parallel III
16:30 --- 18:00, Wednesday 15 March
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
session <- data[which(data$Session.nr==3), ]
# here we start from r=1 because in the auditorium there are lighting talks
for(r in 1:3){
row <- which(session$Room.nr==r)
b <- c("\\begin{center}\n \\textbf{",session$Session.Title[row], "} \n
\\textit{Location}: ", session$Room.st[row], " - \\textit{Chair} : ",session$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", session$Talk.1.presenter.name[row], " (", session$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", session$Talk.2..presenter.name[row], " (", session$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
session$Talk.3..presenter.name[row], " (", session$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
## Parallel IV
10:30 --- 12:00, Thursday 16 March
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
session <- data[which(data$Session.nr==4), ]
for(r in 0:3){
row <- which(session$Room.nr==r)
b <- c("\\begin{center}\n \\textbf{",session$Session.Title[row], "} \n
\\textit{Location}: ", session$Room.st[row], " - \\textit{Chair} : ",session$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", session$Talk.1.presenter.name[row], " (", session$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", session$Talk.2..presenter.name[row], " (", session$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
session$Talk.3..presenter.name[row], " (", session$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
## Parallel V
15:00 --- 16:30, Thursday 16 March
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
session <- data[which(data$Session.nr==5), ]
for(r in 0:3){
row <- which(session$Room.nr==r)
b <- c("\\begin{center}\n \\textbf{",session$Session.Title[row], "} \n
\\textit{Location}: ", session$Room.st[row], " - \\textit{Chair} : ",session$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", session$Talk.1.presenter.name[row], " (", session$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", session$Talk.2..presenter.name[row], " (", session$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
session$Talk.3..presenter.name[row], " (", session$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
## Parallel VI
10:30 --- 12:00, Friday 17 March
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
session <- data[which(data$Session.nr==6), ]
for(r in 0:3){
row <- which(session$Room.nr==r)
b <- c("\\begin{center}\n \\textbf{",session$Session.Title[row], "} \n
\\textit{Location}: ", session$Room.st[row], " - \\textit{Chair} : ",session$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", session$Talk.1.presenter.name[row], " (", session$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", session$Talk.2..presenter.name[row], " (", session$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
session$Talk.3..presenter.name[row], " (", session$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
## Parallel VII
13:00 --- 14:30, Friday 17 March
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
session <- data[which(data$Session.nr==7), ]
for(r in 0:3){
row <- which(session$Room.nr==r)
b <- c("\\begin{center}\n \\textbf{",session$Session.Title[row], "} \n
\\textit{Location}: ", session$Room.st[row], " - \\textit{Chair} : ",session$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", session$Talk.1.presenter.name[row], " (", session$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", session$Talk.2..presenter.name[row], " (", session$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
session$Talk.3..presenter.name[row], " (", session$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
session$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
session$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
\clearpage
# Contributed Sessions
## Parallel VIII
14.30 --- 16.00, Friday 17 March
**note:** each contributed talk will be allocated 20 minutes, including time for questions.
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
contrib <- read.csv("BayesComp programme FINAL - Contrib.csv",
comment.char="#")
roomstring <- rep(NA, dim(contrib)[1])
for (r in 1:(dim(contrib)[1])){
if(contrib$Room.nr[r]==0){
if(contrib$Online[r]=="YES"){
roomstring[r] <- "Auditorium and Online"
}else{
roomstring[r] <- "Auditorium"
}
}else{
if(contrib$Online[r]=="YES"){
roomstring[r] <- paste("Room ",contrib$Room.nr[r]," and Online", sep="")
}else{
roomstring[r] <- paste("Room ",contrib$Room.nr[r], sep="")
}
}
}
contrib$Room.st <- roomstring
row <- 1
b <- c("\\begin{center}\n \\textbf{",contrib$Session.Title[row], "} \n
\\textit{Location}: ", contrib$Room.st[row], " - \\textit{Chair} : ",contrib$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", contrib$Talk.1.presenter.name[row], " (", contrib$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", contrib$Talk.2..presenter.name[row], " (", contrib$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
contrib$Talk.3..presenter.name[row], " (", contrib$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
for (row in 2:3) {
b <- c("\\begin{center}\n \\textbf{",contrib$Session.Title[row], "} \n
\\textit{Location}: ", contrib$Room.st[row], " - \\textit{Chair} : ",contrib$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", contrib$Talk.1.presenter.name[row], " (", contrib$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", contrib$Talk.2..presenter.name[row], " (", contrib$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
contrib$Talk.3..presenter.name[row], " (", contrib$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.3.abstract[row],"\n\n\\textit{Speaker}: ",
contrib$Talk.4.presenter.name[row], " (", contrib$Talk.4.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.4.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.4.abstract[row],
"\n\n ____________\n "
)
cat(b)
}
row <- 4
b <- c("\\begin{center}\n \\textbf{",contrib$Session.Title[row], "} \n
\\textit{Location}: ", contrib$Room.st[row], " - \\textit{Chair} : ",contrib$Session.Chair[row], " \\end{center} \n\n \\textit{Speaker}: ", contrib$Talk.1.presenter.name[row], " (", contrib$Talk.1.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.1.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.1.abstract[row], "\n\n \\textit{Speaker}: ", contrib$Talk.2..presenter.name[row], " (", contrib$Talk.2.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.2.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.2.abstract[row], "\n\n\\textit{Speaker}: ",
contrib$Talk.3..presenter.name[row], " (", contrib$Talk.3.presenter.affiliation[row],")\n\n\\textit{Title}: ",
contrib$Talk.3.title[row], "\n\n\\textit{Abstract}: ",
contrib$Talk.3.abstract[row],
"\n\n ____________\n "
)
cat(b)
```
\clearpage
# Lightning Talks
## Parallel III
16.30 --- 18.00, Wednesday 15 March
**note:** each lightning talk will be allocated 3 minutes (a single slide)
\begin{center}
\textit{Location}: Auditorium and Online - \textit{Chair} : Christian Robert
\end{center}
\clearpage
# Posters
18.00 --- 20.00, Wednesday 15 March
____________
```{r, results='asis', message=FALSE, warning=FALSE, echo=FALSE}
post <- read.csv("BayesComp programme FINAL - Posters.csv",
comment.char="#")
for(row in 1:nrow(post)){
b <- c("\\textit{Presenter}: \\textbf{", post$Presenter[row], "} (", post$Affiliation[row],")\n\n\\textit{Title}: ",
post$Title[row], "\n\n\\textit{Abstract}: ",
post$Abstract[row],
"\n\n ____________\n "
)
cat(b)
}
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment