Lecture 17
Shiny is an R package that makes it easy to build interactive web apps straight from R. You can host standalone apps on a webpage or embed them in R Markdown documents or build dashboards. You can also extend your Shiny apps with CSS themes, htmlwidgets, and JavaScript actions.
Server
+
⇄
Client / Browser
+ +
The bslib R package provides a modern UI toolkit for Shiny, R Markdown, and Quarto based on Bootstrap.
We will be talking more about this package and its features next week.
For now we will be loading it alongside Shiny and using some of its layout features today.
I’ve brought a coin with me to class and I’m claiming that it is fair (equally likely to come up heads or tails).
I flip the coin 10 times and we observe 7 heads and 3 tails, should you believe me that the coin is fair? Or more generally what should you believe about the coin’s fairness now?
Let \(y\) be the number of successes (heads) in \(n\) trials then,
Likelihood: \[ \begin{aligned} y|n,p &\sim \text{Binom}(n,p) \\ f(y|n,p) &= {n \choose y} p^y(1-p)^{n-y} \\ &= \frac{n!}{y!(n-y)!} p^y(1-p)^{n-y} \end{aligned} \]
Prior: \[ \begin{aligned} p &\sim \text{Beta}(a,b) \\ \pi(p|a,b) &= \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} p^{a-1} (1-p)^{b-1} \end{aligned} \]
From the definition of Bayes’ rule:
\[ \begin{aligned} f(p|y,n,a,b) &= \frac{f(y|n,p)}{\int^\infty_{-\infty} f(y|n,p) \, dp} \pi(p|a,b) \\ &\propto f(y|n,p) \, \pi(p|a,b) \\ \end{aligned} \]
We then plug in the likelihood and prior and then simplify by dropping any terms not involving \(p\),
\[ \begin{aligned} f(p|y,n,a,b) &\propto \left( \frac{n!}{y!(n-y)!} p^y(1-p)^{n-y} \right) \left(\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} p^{a-1} (1-p)^{b-1}\right) \\ &\propto \Big( p^y(1-p)^{n-y} \Big) \Big( p^{a-1} (1-p)^{b-1}\Big) \\ &\propto p^{y+a-1} (1-p)^{n-y + b-1} \end{aligned} \]
Based on the form of the density we can see that the posterior of \(p\) must also be a Beta distribution with parameters,
\[ p|y,n,a,b \sim \text{Beta}(y+a, n-y + b) \]
Sta 523 - Fall 2025