mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-27 11:00:32 -04:00 
			
		
		
		
	
		
			
	
	
		
			556 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			556 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|  | // Copyright John Maddock 2006, 2007
 | ||
|  | // Copyright Paul A. Bristow 2010
 | ||
|  | 
 | ||
|  | // Use, modification and distribution are subject to the
 | ||
|  | // Boost Software License, Version 1.0.
 | ||
|  | // (See accompanying file LICENSE_1_0.txt
 | ||
|  | // or copy at http://www.boost.org/LICENSE_1_0.txt)
 | ||
|  | 
 | ||
|  | #include <iostream>
 | ||
|  | using std::cout; using std::endl; | ||
|  | using std::left; using std::fixed; using std::right; using std::scientific; | ||
|  | #include <iomanip>
 | ||
|  | using std::setw; | ||
|  | using std::setprecision; | ||
|  | 
 | ||
|  | #include <boost/math/distributions/chi_squared.hpp>
 | ||
|  | 
 | ||
|  | int error_result = 0; | ||
|  | 
 | ||
|  | void confidence_limits_on_std_deviation( | ||
|  |         double Sd,    // Sample Standard Deviation
 | ||
|  |         unsigned N)   // Sample size
 | ||
|  | { | ||
|  |    // Calculate confidence intervals for the standard deviation.
 | ||
|  |    // For example if we set the confidence limit to
 | ||
|  |    // 0.95, we know that if we repeat the sampling
 | ||
|  |    // 100 times, then we expect that the true standard deviation
 | ||
|  |    // will be between out limits on 95 occations.
 | ||
|  |    // Note: this is not the same as saying a 95%
 | ||
|  |    // confidence interval means that there is a 95%
 | ||
|  |    // probability that the interval contains the true standard deviation.
 | ||
|  |    // The interval computed from a given sample either
 | ||
|  |    // contains the true standard deviation or it does not.
 | ||
|  |    // See http://www.itl.nist.gov/div898/handbook/eda/section3/eda358.htm
 | ||
|  | 
 | ||
|  |    // using namespace boost::math; // potential name ambiguity with std <random>
 | ||
|  |    using boost::math::chi_squared; | ||
|  |    using boost::math::quantile; | ||
|  |    using boost::math::complement; | ||
|  | 
 | ||
|  |    // Print out general info:
 | ||
|  |    cout << | ||
|  |       "________________________________________________\n" | ||
|  |       "2-Sided Confidence Limits For Standard Deviation\n" | ||
|  |       "________________________________________________\n\n"; | ||
|  |    cout << setprecision(7); | ||
|  |    cout << setw(40) << left << "Number of Observations" << "=  " << N << "\n"; | ||
|  |    cout << setw(40) << left << "Standard Deviation" << "=  " << Sd << "\n"; | ||
|  |    //
 | ||
|  |    // Define a table of significance/risk levels:
 | ||
|  |    double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 }; | ||
|  |    //
 | ||
|  |    // Start by declaring the distribution we'll need:
 | ||
|  |    chi_squared dist(N - 1); | ||
|  |    //
 | ||
|  |    // Print table header:
 | ||
|  |    //
 | ||
|  |    cout << "\n\n" | ||
|  |            "_____________________________________________\n" | ||
|  |            "Confidence          Lower          Upper\n" | ||
|  |            " Value (%)          Limit          Limit\n" | ||
|  |            "_____________________________________________\n"; | ||
|  |    //
 | ||
|  |    // Now print out the data for the table rows.
 | ||
|  |    for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) | ||
|  |    { | ||
|  |       // Confidence value:
 | ||
|  |       cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); | ||
|  |       // Calculate limits:
 | ||
|  |       double lower_limit = sqrt((N - 1) * Sd * Sd / quantile(complement(dist, alpha[i] / 2))); | ||
|  |       double upper_limit = sqrt((N - 1) * Sd * Sd / quantile(dist, alpha[i] / 2)); | ||
|  |       // Print Limits:
 | ||
|  |       cout << fixed << setprecision(5) << setw(15) << right << lower_limit; | ||
|  |       cout << fixed << setprecision(5) << setw(15) << right << upper_limit << endl; | ||
|  |    } | ||
|  |    cout << endl; | ||
|  | } // void confidence_limits_on_std_deviation
 | ||
|  | 
 | ||
|  | void confidence_limits_on_std_deviation_alpha( | ||
|  |         double Sd,    // Sample Standard Deviation
 | ||
|  |         double alpha  // confidence
 | ||
|  |         ) | ||
|  | {  // Calculate confidence intervals for the standard deviation.
 | ||
|  |    // for the alpha parameter, for a range number of observations,
 | ||
|  |    // from a mere 2 up to a million.
 | ||
|  |    // O. L. Davies, Statistical Methods in Research and Production, ISBN 0 05 002437 X,
 | ||
|  |    // 4.33 Page 68, Table H, pp 452 459.
 | ||
|  | 
 | ||
|  |    //   using namespace std;
 | ||
|  |    // using namespace boost::math;
 | ||
|  |    using boost::math::chi_squared; | ||
|  |    using boost::math::quantile; | ||
|  |    using boost::math::complement; | ||
|  | 
 | ||
|  |    // Define a table of numbers of observations:
 | ||
|  |    unsigned int obs[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30, 40 , 50, 60, 100, 120, 1000, 10000, 50000, 100000, 1000000}; | ||
|  | 
 | ||
|  |    cout <<   // Print out heading:
 | ||
|  |       "________________________________________________\n" | ||
|  |       "2-Sided Confidence Limits For Standard Deviation\n" | ||
|  |       "________________________________________________\n\n"; | ||
|  |    cout << setprecision(7); | ||
|  |    cout << setw(40) << left << "Confidence level (two-sided) " << "=  " << alpha << "\n"; | ||
|  |    cout << setw(40) << left << "Standard Deviation" << "=  " << Sd << "\n"; | ||
|  | 
 | ||
|  |    cout << "\n\n"      // Print table header:
 | ||
|  |             "_____________________________________________\n" | ||
|  |            "Observations        Lower          Upper\n" | ||
|  |            "                    Limit          Limit\n" | ||
|  |            "_____________________________________________\n"; | ||
|  |     for(unsigned i = 0; i < sizeof(obs)/sizeof(obs[0]); ++i) | ||
|  |    { | ||
|  |      unsigned int N = obs[i]; // Observations
 | ||
|  |      // Start by declaring the distribution with the appropriate :
 | ||
|  |      chi_squared dist(N - 1); | ||
|  | 
 | ||
|  |      // Now print out the data for the table row.
 | ||
|  |       cout << fixed << setprecision(3) << setw(10) << right << N; | ||
|  |       // Calculate limits: (alpha /2 because it is a two-sided (upper and lower limit) test.
 | ||
|  |       double lower_limit = sqrt((N - 1) * Sd * Sd / quantile(complement(dist, alpha / 2))); | ||
|  |       double upper_limit = sqrt((N - 1) * Sd * Sd / quantile(dist, alpha / 2)); | ||
|  |       // Print Limits:
 | ||
|  |       cout << fixed << setprecision(4) << setw(15) << right << lower_limit; | ||
|  |       cout << fixed << setprecision(4) << setw(15) << right << upper_limit << endl; | ||
|  |    } | ||
|  |    cout << endl; | ||
|  | }// void confidence_limits_on_std_deviation_alpha
 | ||
|  | 
 | ||
|  | void chi_squared_test( | ||
|  |        double Sd,     // Sample std deviation
 | ||
|  |        double D,      // True std deviation
 | ||
|  |        unsigned N,    // Sample size
 | ||
|  |        double alpha)  // Significance level
 | ||
|  | { | ||
|  |    //
 | ||
|  |    // A Chi Squared test applied to a single set of data.
 | ||
|  |    // We are testing the null hypothesis that the true
 | ||
|  |    // standard deviation of the sample is D, and that any variation is down
 | ||
|  |    // to chance.  We can also test the alternative hypothesis
 | ||
|  |    // that any difference is not down to chance.
 | ||
|  |    // See http://www.itl.nist.gov/div898/handbook/eda/section3/eda358.htm
 | ||
|  |    //
 | ||
|  |    // using namespace boost::math;
 | ||
|  |    using boost::math::chi_squared; | ||
|  |    using boost::math::quantile; | ||
|  |    using boost::math::complement; | ||
|  |    using boost::math::cdf; | ||
|  | 
 | ||
|  |    // Print header:
 | ||
|  |    cout << | ||
|  |       "______________________________________________\n" | ||
|  |       "Chi Squared test for sample standard deviation\n" | ||
|  |       "______________________________________________\n\n"; | ||
|  |    cout << setprecision(5); | ||
|  |    cout << setw(55) << left << "Number of Observations" << "=  " << N << "\n"; | ||
|  |    cout << setw(55) << left << "Sample Standard Deviation" << "=  " << Sd << "\n"; | ||
|  |    cout << setw(55) << left << "Expected True Standard Deviation" << "=  " << D << "\n\n"; | ||
|  |    //
 | ||
|  |    // Now we can calculate and output some stats:
 | ||
|  |    //
 | ||
|  |    // test-statistic:
 | ||
|  |    double t_stat = (N - 1) * (Sd / D) * (Sd / D); | ||
|  |    cout << setw(55) << left << "Test Statistic" << "=  " << t_stat << "\n"; | ||
|  |    //
 | ||
|  |    // Finally define our distribution, and get the probability:
 | ||
|  |    //
 | ||
|  |    chi_squared dist(N - 1); | ||
|  |    double p = cdf(dist, t_stat); | ||
|  |    cout << setw(55) << left << "CDF of test statistic: " << "=  " | ||
|  |       << setprecision(3) << scientific << p << "\n"; | ||
|  |    double ucv = quantile(complement(dist, alpha)); | ||
|  |    double ucv2 = quantile(complement(dist, alpha / 2)); | ||
|  |    double lcv = quantile(dist, alpha); | ||
|  |    double lcv2 = quantile(dist, alpha / 2); | ||
|  |    cout << setw(55) << left << "Upper Critical Value at alpha: " << "=  " | ||
|  |       << setprecision(3) << scientific << ucv << "\n"; | ||
|  |    cout << setw(55) << left << "Upper Critical Value at alpha/2: " << "=  " | ||
|  |       << setprecision(3) << scientific << ucv2 << "\n"; | ||
|  |    cout << setw(55) << left << "Lower Critical Value at alpha: " << "=  " | ||
|  |       << setprecision(3) << scientific << lcv << "\n"; | ||
|  |    cout << setw(55) << left << "Lower Critical Value at alpha/2: " << "=  " | ||
|  |       << setprecision(3) << scientific << lcv2 << "\n\n"; | ||
|  |    //
 | ||
|  |    // Finally print out results of alternative hypothesis:
 | ||
|  |    //
 | ||
|  |    cout << setw(55) << left << | ||
|  |       "Results for Alternative Hypothesis and alpha" << "=  " | ||
|  |       << setprecision(4) << fixed << alpha << "\n\n"; | ||
|  |    cout << "Alternative Hypothesis              Conclusion\n"; | ||
|  |    cout << "Standard Deviation != " << setprecision(3) << fixed << D << "            "; | ||
|  |    if((ucv2 < t_stat) || (lcv2 > t_stat)) | ||
|  |       cout << "NOT REJECTED\n"; | ||
|  |    else | ||
|  |       cout << "REJECTED\n"; | ||
|  |    cout << "Standard Deviation  < " << setprecision(3) << fixed << D << "            "; | ||
|  |    if(lcv > t_stat) | ||
|  |       cout << "NOT REJECTED\n"; | ||
|  |    else | ||
|  |       cout << "REJECTED\n"; | ||
|  |    cout << "Standard Deviation  > " << setprecision(3) << fixed << D << "            "; | ||
|  |    if(ucv < t_stat) | ||
|  |       cout << "NOT REJECTED\n"; | ||
|  |    else | ||
|  |       cout << "REJECTED\n"; | ||
|  |    cout << endl << endl; | ||
|  | } // void chi_squared_test
 | ||
|  | 
 | ||
|  | void chi_squared_sample_sized( | ||
|  |         double diff,      // difference from variance to detect
 | ||
|  |         double variance)  // true variance
 | ||
|  | { | ||
|  |    using namespace std; | ||
|  |    // using boost::math;
 | ||
|  |    using boost::math::chi_squared; | ||
|  |    using boost::math::quantile; | ||
|  |    using boost::math::complement; | ||
|  |    using boost::math::cdf; | ||
|  | 
 | ||
|  |    try | ||
|  |    { | ||
|  |    cout <<   // Print out general info:
 | ||
|  |      "_____________________________________________________________\n" | ||
|  |       "Estimated sample sizes required for various confidence levels\n" | ||
|  |       "_____________________________________________________________\n\n"; | ||
|  |    cout << setprecision(5); | ||
|  |    cout << setw(40) << left << "True Variance" << "=  " << variance << "\n"; | ||
|  |    cout << setw(40) << left << "Difference to detect" << "=  " << diff << "\n"; | ||
|  |    //
 | ||
|  |    // Define a table of significance levels:
 | ||
|  |    //
 | ||
|  |    double alpha[] = { 0.5, 0.33333333333333333333333, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 }; | ||
|  |    //
 | ||
|  |    // Print table header:
 | ||
|  |    //
 | ||
|  |    cout << "\n\n" | ||
|  |            "_______________________________________________________________\n" | ||
|  |            "Confidence       Estimated          Estimated\n" | ||
|  |            " Value (%)      Sample Size        Sample Size\n" | ||
|  |            "                (lower one-         (upper one-\n" | ||
|  |            "                 sided test)        sided test)\n" | ||
|  |            "_______________________________________________________________\n"; | ||
|  |    //
 | ||
|  |    // Now print out the data for the table rows.
 | ||
|  |    //
 | ||
|  |    for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i) | ||
|  |    { | ||
|  |       // Confidence value:
 | ||
|  |       cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]); | ||
|  |       // Calculate df for a lower single-sided test:
 | ||
|  |       double df = chi_squared::find_degrees_of_freedom( | ||
|  |          -diff, alpha[i], alpha[i], variance); | ||
|  |       // Convert to integral sample size (df is a floating point value in this implementation):
 | ||
|  |       double size = ceil(df) + 1; | ||
|  |       // Print size:
 | ||
|  |       cout << fixed << setprecision(0) << setw(16) << right << size; | ||
|  |       // Calculate df for an upper single-sided test:
 | ||
|  |       df = chi_squared::find_degrees_of_freedom( | ||
|  |          diff, alpha[i], alpha[i], variance); | ||
|  |       // Convert to integral sample size:
 | ||
|  |       size = ceil(df) + 1; | ||
|  |       // Print size:
 | ||
|  |       cout << fixed << setprecision(0) << setw(16) << right << size << endl; | ||
|  |    } | ||
|  |    cout << endl; | ||
|  |    } | ||
|  |   catch(const std::exception& e) | ||
|  |   { // Always useful to include try & catch blocks because default policies
 | ||
|  |     // are to throw exceptions on arguments that cause errors like underflow, overflow.
 | ||
|  |     // Lacking try & catch blocks, the program will abort without a message below,
 | ||
|  |     // which may give some helpful clues as to the cause of the exception.
 | ||
|  |     std::cout << | ||
|  |       "\n""Message from thrown exception was:\n   " << e.what() << std::endl; | ||
|  |     ++error_result; | ||
|  |   } | ||
|  | } // chi_squared_sample_sized
 | ||
|  | 
 | ||
|  | int main() | ||
|  | { | ||
|  |    // Run tests for Gear data
 | ||
|  |    // see http://www.itl.nist.gov/div898/handbook/eda/section3/eda3581.htm
 | ||
|  |    // Tests measurements of gear diameter.
 | ||
|  |    //
 | ||
|  |    confidence_limits_on_std_deviation(0.6278908E-02, 100); | ||
|  |    chi_squared_test(0.6278908E-02, 0.1, 100, 0.05); | ||
|  |    chi_squared_sample_sized(0.1 - 0.6278908E-02, 0.1); | ||
|  |    //
 | ||
|  |    // Run tests for silicon wafer fabrication data.
 | ||
|  |    // see http://www.itl.nist.gov/div898/handbook/prc/section2/prc23.htm
 | ||
|  |    // A supplier of 100 ohm.cm silicon wafers claims that his fabrication
 | ||
|  |    // process can produce wafers with sufficient consistency so that the
 | ||
|  |    // standard deviation of resistivity for the lot does not exceed
 | ||
|  |    // 10 ohm.cm. A sample of N = 10 wafers taken from the lot has a
 | ||
|  |    // standard deviation of 13.97 ohm.cm
 | ||
|  |    //
 | ||
|  |    confidence_limits_on_std_deviation(13.97, 10); | ||
|  |    chi_squared_test(13.97, 10.0, 10, 0.05); | ||
|  |    chi_squared_sample_sized(13.97 * 13.97 - 100, 100); | ||
|  |    chi_squared_sample_sized(55, 100); | ||
|  |    chi_squared_sample_sized(1, 100); | ||
|  | 
 | ||
|  |    // List confidence interval multipliers for standard deviation
 | ||
|  |    // for a range of numbers of observations from 2 to a million,
 | ||
|  |    // and for a few alpha values, 0.1, 0.05, 0.01 for condfidences 90, 95, 99 %
 | ||
|  |    confidence_limits_on_std_deviation_alpha(1., 0.1); | ||
|  |    confidence_limits_on_std_deviation_alpha(1., 0.05); | ||
|  |    confidence_limits_on_std_deviation_alpha(1., 0.01); | ||
|  | 
 | ||
|  |    return error_result; | ||
|  | } | ||
|  | 
 | ||
|  | /*
 | ||
|  | 
 | ||
|  | ________________________________________________ | ||
|  | 2-Sided Confidence Limits For Standard Deviation | ||
|  | ________________________________________________ | ||
|  | Number of Observations                  =  100 | ||
|  | Standard Deviation                      =  0.006278908 | ||
|  | _____________________________________________ | ||
|  | Confidence          Lower          Upper | ||
|  |  Value (%)          Limit          Limit | ||
|  | _____________________________________________ | ||
|  |     50.000        0.00601        0.00662 | ||
|  |     75.000        0.00582        0.00685 | ||
|  |     90.000        0.00563        0.00712 | ||
|  |     95.000        0.00551        0.00729 | ||
|  |     99.000        0.00530        0.00766 | ||
|  |     99.900        0.00507        0.00812 | ||
|  |     99.990        0.00489        0.00855 | ||
|  |     99.999        0.00474        0.00895 | ||
|  | ______________________________________________ | ||
|  | Chi Squared test for sample standard deviation | ||
|  | ______________________________________________ | ||
|  | Number of Observations                                 =  100 | ||
|  | Sample Standard Deviation                              =  0.00628 | ||
|  | Expected True Standard Deviation                       =  0.10000 | ||
|  | Test Statistic                                         =  0.39030 | ||
|  | CDF of test statistic:                                 =  1.438e-099 | ||
|  | Upper Critical Value at alpha:                         =  1.232e+002 | ||
|  | Upper Critical Value at alpha/2:                       =  1.284e+002 | ||
|  | Lower Critical Value at alpha:                         =  7.705e+001 | ||
|  | Lower Critical Value at alpha/2:                       =  7.336e+001 | ||
|  | Results for Alternative Hypothesis and alpha           =  0.0500 | ||
|  | Alternative Hypothesis              Conclusion | ||
|  | Standard Deviation != 0.100            NOT REJECTED | ||
|  | Standard Deviation  < 0.100            NOT REJECTED | ||
|  | Standard Deviation  > 0.100            REJECTED | ||
|  | _____________________________________________________________ | ||
|  | Estimated sample sizes required for various confidence levels | ||
|  | _____________________________________________________________ | ||
|  | True Variance                           =  0.10000 | ||
|  | Difference to detect                    =  0.09372 | ||
|  | _______________________________________________________________ | ||
|  | Confidence       Estimated          Estimated | ||
|  |  Value (%)      Sample Size        Sample Size | ||
|  |                 (lower one-         (upper one- | ||
|  |                  sided test)        sided test) | ||
|  | _______________________________________________________________ | ||
|  |     50.000               2               2 | ||
|  |     66.667               2               5 | ||
|  |     75.000               2              10 | ||
|  |     90.000               4              32 | ||
|  |     95.000               5              52 | ||
|  |     99.000               8             102 | ||
|  |     99.900              13             178 | ||
|  |     99.990              18             257 | ||
|  |     99.999              23             337 | ||
|  | ________________________________________________ | ||
|  | 2-Sided Confidence Limits For Standard Deviation | ||
|  | ________________________________________________ | ||
|  | Number of Observations                  =  10 | ||
|  | Standard Deviation                      =  13.9700000 | ||
|  | _____________________________________________ | ||
|  | Confidence          Lower          Upper | ||
|  |  Value (%)          Limit          Limit | ||
|  | _____________________________________________ | ||
|  |     50.000       12.41880       17.25579 | ||
|  |     75.000       11.23084       19.74131 | ||
|  |     90.000       10.18898       22.98341 | ||
|  |     95.000        9.60906       25.50377 | ||
|  |     99.000        8.62898       31.81825 | ||
|  |     99.900        7.69466       42.51593 | ||
|  |     99.990        7.04085       55.93352 | ||
|  |     99.999        6.54517       73.00132 | ||
|  | ______________________________________________ | ||
|  | Chi Squared test for sample standard deviation | ||
|  | ______________________________________________ | ||
|  | Number of Observations                                 =  10 | ||
|  | Sample Standard Deviation                              =  13.97000 | ||
|  | Expected True Standard Deviation                       =  10.00000 | ||
|  | Test Statistic                                         =  17.56448 | ||
|  | CDF of test statistic:                                 =  9.594e-001 | ||
|  | Upper Critical Value at alpha:                         =  1.692e+001 | ||
|  | Upper Critical Value at alpha/2:                       =  1.902e+001 | ||
|  | Lower Critical Value at alpha:                         =  3.325e+000 | ||
|  | Lower Critical Value at alpha/2:                       =  2.700e+000 | ||
|  | Results for Alternative Hypothesis and alpha           =  0.0500 | ||
|  | Alternative Hypothesis              Conclusion | ||
|  | Standard Deviation != 10.000            REJECTED | ||
|  | Standard Deviation  < 10.000            REJECTED | ||
|  | Standard Deviation  > 10.000            NOT REJECTED | ||
|  | _____________________________________________________________ | ||
|  | Estimated sample sizes required for various confidence levels | ||
|  | _____________________________________________________________ | ||
|  | True Variance                           =  100.00000 | ||
|  | Difference to detect                    =  95.16090 | ||
|  | _______________________________________________________________ | ||
|  | Confidence       Estimated          Estimated | ||
|  |  Value (%)      Sample Size        Sample Size | ||
|  |                 (lower one-         (upper one- | ||
|  |                  sided test)        sided test) | ||
|  | _______________________________________________________________ | ||
|  |     50.000               2               2 | ||
|  |     66.667               2               5 | ||
|  |     75.000               2              10 | ||
|  |     90.000               4              32 | ||
|  |     95.000               5              51 | ||
|  |     99.000               7              99 | ||
|  |     99.900              11             174 | ||
|  |     99.990              15             251 | ||
|  |     99.999              20             330 | ||
|  | _____________________________________________________________ | ||
|  | Estimated sample sizes required for various confidence levels | ||
|  | _____________________________________________________________ | ||
|  | True Variance                           =  100.00000 | ||
|  | Difference to detect                    =  55.00000 | ||
|  | _______________________________________________________________ | ||
|  | Confidence       Estimated          Estimated | ||
|  |  Value (%)      Sample Size        Sample Size | ||
|  |                 (lower one-         (upper one- | ||
|  |                  sided test)        sided test) | ||
|  | _______________________________________________________________ | ||
|  |     50.000               2               2 | ||
|  |     66.667               4              10 | ||
|  |     75.000               8              21 | ||
|  |     90.000              23              71 | ||
|  |     95.000              36             115 | ||
|  |     99.000              71             228 | ||
|  |     99.900             123             401 | ||
|  |     99.990             177             580 | ||
|  |     99.999             232             762 | ||
|  | _____________________________________________________________ | ||
|  | Estimated sample sizes required for various confidence levels | ||
|  | _____________________________________________________________ | ||
|  | True Variance                           =  100.00000 | ||
|  | Difference to detect                    =  1.00000 | ||
|  | _______________________________________________________________ | ||
|  | Confidence       Estimated          Estimated | ||
|  |  Value (%)      Sample Size        Sample Size | ||
|  |                 (lower one-         (upper one- | ||
|  |                  sided test)        sided test) | ||
|  | _______________________________________________________________ | ||
|  |     50.000               2               2 | ||
|  |     66.667           14696           14993 | ||
|  |     75.000           36033           36761 | ||
|  |     90.000          130079          132707 | ||
|  |     95.000          214283          218612 | ||
|  |     99.000          428628          437287 | ||
|  |     99.900          756333          771612 | ||
|  |     99.990         1095435         1117564 | ||
|  |     99.999         1440608         1469711 | ||
|  | ________________________________________________ | ||
|  | 2-Sided Confidence Limits For Standard Deviation | ||
|  | ________________________________________________ | ||
|  | Confidence level (two-sided)            =  0.1000000 | ||
|  | Standard Deviation                      =  1.0000000 | ||
|  | _____________________________________________ | ||
|  | Observations        Lower          Upper | ||
|  |                     Limit          Limit | ||
|  | _____________________________________________ | ||
|  |          2         0.5102        15.9472 | ||
|  |          3         0.5778         4.4154 | ||
|  |          4         0.6196         2.9200 | ||
|  |          5         0.6493         2.3724 | ||
|  |          6         0.6720         2.0893 | ||
|  |          7         0.6903         1.9154 | ||
|  |          8         0.7054         1.7972 | ||
|  |          9         0.7183         1.7110 | ||
|  |         10         0.7293         1.6452 | ||
|  |         15         0.7688         1.4597 | ||
|  |         20         0.7939         1.3704 | ||
|  |         30         0.8255         1.2797 | ||
|  |         40         0.8454         1.2320 | ||
|  |         50         0.8594         1.2017 | ||
|  |         60         0.8701         1.1805 | ||
|  |        100         0.8963         1.1336 | ||
|  |        120         0.9045         1.1203 | ||
|  |       1000         0.9646         1.0383 | ||
|  |      10000         0.9885         1.0118 | ||
|  |      50000         0.9948         1.0052 | ||
|  |     100000         0.9963         1.0037 | ||
|  |    1000000         0.9988         1.0012 | ||
|  | ________________________________________________ | ||
|  | 2-Sided Confidence Limits For Standard Deviation | ||
|  | ________________________________________________ | ||
|  | Confidence level (two-sided)            =  0.0500000 | ||
|  | Standard Deviation                      =  1.0000000 | ||
|  | _____________________________________________ | ||
|  | Observations        Lower          Upper | ||
|  |                     Limit          Limit | ||
|  | _____________________________________________ | ||
|  |          2         0.4461        31.9102 | ||
|  |          3         0.5207         6.2847 | ||
|  |          4         0.5665         3.7285 | ||
|  |          5         0.5991         2.8736 | ||
|  |          6         0.6242         2.4526 | ||
|  |          7         0.6444         2.2021 | ||
|  |          8         0.6612         2.0353 | ||
|  |          9         0.6755         1.9158 | ||
|  |         10         0.6878         1.8256 | ||
|  |         15         0.7321         1.5771 | ||
|  |         20         0.7605         1.4606 | ||
|  |         30         0.7964         1.3443 | ||
|  |         40         0.8192         1.2840 | ||
|  |         50         0.8353         1.2461 | ||
|  |         60         0.8476         1.2197 | ||
|  |        100         0.8780         1.1617 | ||
|  |        120         0.8875         1.1454 | ||
|  |       1000         0.9580         1.0459 | ||
|  |      10000         0.9863         1.0141 | ||
|  |      50000         0.9938         1.0062 | ||
|  |     100000         0.9956         1.0044 | ||
|  |    1000000         0.9986         1.0014 | ||
|  | ________________________________________________ | ||
|  | 2-Sided Confidence Limits For Standard Deviation | ||
|  | ________________________________________________ | ||
|  | Confidence level (two-sided)            =  0.0100000 | ||
|  | Standard Deviation                      =  1.0000000 | ||
|  | _____________________________________________ | ||
|  | Observations        Lower          Upper | ||
|  |                     Limit          Limit | ||
|  | _____________________________________________ | ||
|  |          2         0.3562       159.5759 | ||
|  |          3         0.4344        14.1244 | ||
|  |          4         0.4834         6.4675 | ||
|  |          5         0.5188         4.3960 | ||
|  |          6         0.5464         3.4848 | ||
|  |          7         0.5688         2.9798 | ||
|  |          8         0.5875         2.6601 | ||
|  |          9         0.6036         2.4394 | ||
|  |         10         0.6177         2.2776 | ||
|  |         15         0.6686         1.8536 | ||
|  |         20         0.7018         1.6662 | ||
|  |         30         0.7444         1.4867 | ||
|  |         40         0.7718         1.3966 | ||
|  |         50         0.7914         1.3410 | ||
|  |         60         0.8065         1.3026 | ||
|  |        100         0.8440         1.2200 | ||
|  |        120         0.8558         1.1973 | ||
|  |       1000         0.9453         1.0609 | ||
|  |      10000         0.9821         1.0185 | ||
|  |      50000         0.9919         1.0082 | ||
|  |     100000         0.9943         1.0058 | ||
|  |    1000000         0.9982         1.0018 | ||
|  | */ | ||
|  | 
 |