Load Libraries
In [1]:
using IntervalStatistic
using Distributions
using ValidatedNumerics
using Plots
pyplot(reuse=true)
srand(10)
Out[1]:
In [2]:
to_errors = (i) -> [i.lo i.hi] - mid(i)
function show_result(value, position)
label = value[2]
data = value[1]
println(label, ": ", data)
scatter!(
[position], (x) -> mid(data), yerror=to_errors(data),
label=label
)
end
Out[2]:
Generate samples of normal distribution
In [3]:
d = Normal()
length = 100
confidence_probability = 0.95
values = rand(d, length)
mu, sigma = params(d)
average = reduce(+, values) / length
Out[3]:
In [4]:
result_by_known_variance = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byKnownVariance(
confidence_probability, sigma^2
)),
"known variance"
]
result_by_inter_quartile_range = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byInterQuartileRange(
confidence_probability
)),
"inter quartile range"
]
result_by_standard_errror = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byStandardError()),
"standard error"
]
result_by_unknown_variance = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byUnknownVariance(
confidence_probability
)),
"unknown variance"
]
plot([1.0;2.0;4.0], (x) -> mu, label="mu")
plot!([1.0;2.0;4.0], (x) -> average, label="average")
show_result(result_by_known_variance, 1)
show_result(result_by_inter_quartile_range, 2)
show_result(result_by_unknown_variance, 3)
show_result(result_by_standard_errror, 4)
Out[4]:
Generate samples of normal distribution with mu=100 sigma=4
In [5]:
d = Normal(100, 4)
length = 100
confidence_probability = 0.95
values = rand(d, length)
mu, sigma = params(d)
average = reduce(+, values) / length
Out[5]:
In [6]:
result_by_known_variance = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byKnownVariance(
confidence_probability, sigma^2
)),
"known variance"
]
result_by_inter_quartile_range = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byInterQuartileRange(
confidence_probability
)),
"inter quartile range"
]
result_by_standard_errror = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byStandardError()),
"standard error"
]
result_by_unknown_variance = [
IntervalStatistic.mean(values, IntervalStatistic.Mean.byUnknownVariance(
confidence_probability
)),
"unknown variance"
]
plot([1.0;2.0;4.0], (x) -> mu, label="mu")
plot!([1.0;2.0;4.0], (x) -> average, label="average")
show_result(result_by_known_variance, 1)
show_result(result_by_inter_quartile_range, 2)
show_result(result_by_unknown_variance, 3)
show_result(result_by_standard_errror, 4)
Out[6]: