public ConfidenceInterval(double estimation, double lower, double upper, ConfidenceLevel confidenceLevel)
 {
     Estimation      = estimation;
     Lower           = lower;
     Upper           = upper;
     ConfidenceLevel = confidenceLevel;
 }
Beispiel #2
0
 /// <summary>
 /// Calculates Z value (z-star) for confidence interval
 /// </summary>
 /// <param name="level">ConfidenceLevel for a confidence interval</param>
 /// <param name="n">Sample size (n >= 3)</param>
 public static double GetZValue(this ConfidenceLevel level, int n)
 {
     if (n <= 1)
     {
         throw new ArgumentOutOfRangeException(nameof(n), "n should be >= 2");
     }
     return(StudentDistribution.InverseTwoTailStudent(1 - level.ToPercent(), n - 1));
 }
Beispiel #3
0
        public ConfidenceInterval GetConfidenceInterval(ConfidenceLevel confidenceLevel)
        {
            if (DegreeOfFreedom <= 0)
            {
                return(new ConfidenceInterval(Estimation, double.NaN, double.NaN, confidenceLevel));
            }
            double margin = StandardError * GetZLevel(confidenceLevel);

            return(new ConfidenceInterval(Estimation, Estimation - margin, Estimation + margin, confidenceLevel));
        }
Beispiel #4
0
        public static string ToPercentStr(this ConfidenceLevel level)
        {
            string s = level.ToString().Substring(1);

            if (s.Length > 2)
            {
                s = s.Substring(0, 2) + "." + s.Substring(2);
            }
            return(s + "%");
        }
Beispiel #5
0
        private double GetZLevel(ConfidenceLevel confidenceLevel)
        {
            double x = 1 - (1 - confidenceLevel) / 2;

            return(new StudentDistribution(DegreeOfFreedom).Quantile(x));
        }
Beispiel #6
0
        [PublicAPI] public static double ToPercent(this ConfidenceLevel level)
        {
            (int value, int digits) = ConfidenceLevelDetails[level];

            return(value / Math.Pow(10, digits));
        }
        public ConfidenceInterval GetConfidenceInterval(ConfidenceLevel confidenceLevel)
        {
            double margin = StandardError * GetZLevel(confidenceLevel);

            return(new ConfidenceInterval(Estimation, Estimation - margin, Estimation + margin, confidenceLevel));
        }