Shiny

Lecture 18

Dr. Colin Rundel

Shiny

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.

Shiny App


Server

+


Client / Browser

+ +

Anatomy of an App

library(shiny)

shinyApp(
  ui = list(),
  
  server = function(input, output, session) {
  
  }
)

Multi-row layout

Other layouts

A brief widget tour

rundel.shinyapps.io/widgets/

App background

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?

Model

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} \]

Posterior

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} \]

Posterior distribution

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) \]