squiggle/packages/website/docs/Internal/Processing-Confidence-Intervals.md
Quinn Dougherty 6bd8aecb31 Fixed 95->90
Value: [1e-4 to 3e-3]
2022-04-27 16:51:23 -04:00

1.2 KiB

title author
Processing Confidence Intervals Nuño Sempere

This page explains what we are doing when we take a 90% confidence interval, and we get a mean and a standard deviation from it.

For normals

module Normal = {
  //...
  let from90PercentCI = (low, high) => {
    let mean = E.A.Floats.mean([low, high])
    let stdev = (high -. low) /. (2. *. 1.6448536269514722)
    #Normal({mean: mean, stdev: stdev})
  }
  //...
}

We know that for a normal with mean \mu and standard deviation \sigma,


a \cdot Normal(\mu, \sigma) = Normal(a \cdot \mu, |a| \cdot \sigma)

We can now look at the inverse cdf of a Normal(0,1). We find that the 90% point is reached at 1.6448536269514722. (source) This means that the 90% confidence interval is [-1.6448536269514722, 1.6448536269514722], which has a width of 2 \cdot 1.6448536269514722.

So then, if we take a Normal(0,1) and we multiply it by \frac{(high -. low)}{(2. *. 1.6448536269514722)}, it's 90% confidence interval will be multiplied by the same amount. Then we just have to shift it by the mean to get our target normal.

For lognormals

TODO