Предположим, мы проведем тест Чи Квадрата на стандартное отклонение, и результат будет пограничным, законный вопрос, который нужно задать: «Насколько большим должен быть размер выборки, чтобы получить окончательный результат?»
Шаблон классаchi_squared_distributionимеет статический метод<find_degrees_of_freedom>, который вычислит это значение для некоторого приемлемого риска отказа типа Iальфа, отказ типа IIбета, и отличие от стандартного отклоненияДифф. Обратите внимание, что используемый метод работает на дисперсии, а не на стандартном отклонении, как обычно для теста Чи Квадрат.
Код для этого примера находится вchi_square_std_dev_test.cpp.
Начнем с определения процедуры распечатки образцов, необходимых для различных уровней риска:
void chi_squared_sample_sized(
     double diff,      
     double variance)  
{
Процедура начинается с распечатки входных данных:
using namespace std;
using namespace boost::math;
cout <<
   "_____________________________________________________________\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";
И определяет таблицу уровней значимости, для которой мы будем вычислять размеры выборки:
double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 };
Для каждого значения альфа мы можем вычислить два размера выборки: один, где дисперсия выборки меньше истинного значения надиффи один, где она больше истинного значения надифф. Благодаря асимметричности распределения Чи Квадрата эти два значения не будут одинаковыми, разница в их вычислении отличается только знакомдифф, который передается<find_degrees_of_freedom>. Наконец, в этом примере мы будем просто вещи, и пусть уровень рискабетабудет таким же, какальфа:
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";
for(unsigned i = 0; i < sizeof(alpha)/sizeof(alpha[0]); ++i)
{
   
   cout << fixed << setprecision(3) << setw(10) << right << 100 * (1-alpha[i]);
   
   double df = chi_squared::find_degrees_of_freedom(
      -diff, alpha[i], alpha[i], variance);
   
   double size = ceil(df) + 1;
   
   cout << fixed << setprecision(0) << setw(16) << right << size;
   
   df = chi_squared::find_degrees_of_freedom(
      diff, alpha[i], alpha[i], variance);
   
   size = ceil(df) + 1;
   
   cout << fixed << setprecision(0) << setw(16) << right << size << endl;
}
cout << endl;
В качестве примера рассмотрим данныекремниевых пластинизэлектронного справочника статистических методов NIST/SEMATECH.. В этом сценарии поставщик кремниевых пластин 100 ohm.cm утверждает, что его процесс изготовления может производить пластины с достаточной консистенцией, чтобы стандартное отклонение сопротивления для партии не превышало 10 ohm.cm. Образец N = 10 пластин, взятый из партии, имеет стандартное отклонение 13,97 ohm.cm, и вопрос, который мы задаем себе, заключается в том, насколько большим должен быть наш образец, чтобы надежно обнаружить эту разницу?
Чтобы использовать нашу процедуру выше, мы должны преобразовать стандартные отклонения в дисперсию (квадратировать их), после чего вывод программы выглядит следующим образом:
_____________________________________________________________
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
    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
В этом случае мы заинтересованы в верхнем однобоком тесте. Так, например, если максимально допустимый риск ложного отклонения нулевой гипотезы составляет 0,05 (ошибка I типа), а максимально допустимый риск отказа от нулевой гипотезы также составляет 0,05 (ошибка II типа), мы оцениваем, что нам потребуется размер выборки 51.