Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Chi-Square Test for the Standard Deviation

Boost , Math Toolkit 2.5.0 , Chi Squared Distribution Examples

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Мы используем этот тест для определения того, отличается ли стандартное отклонение образца от заданного значения. Обычно это происходит в ситуациях изменения процесса, когда мы хотим сравнить стандартное отклонение нового процесса с установленным.

Код для этого примера содержится вchi_square_std_dev_test.cpp, и мы начнем с определения процедуры, которая распечатает статистику испытаний:

void chi_squared_test(
    double Sd,     // Sample std deviation
    double D,      // True std deviation
    unsigned N,    // Sample size
    double alpha)  // Significance level
{

Процедура начинается с печати резюме входных данных:

using namespace std;
using namespace boost::math;
// 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";

Тестовая статистика (Т) — это просто соотношение выборки и «истинных» стандартных отклонений в квадрате, умноженное на число степеней свободы (размер выборки меньше единицы):

double t_stat = (N - 1) * (Sd / D) * (Sd / D);
cout << setw(55) << left << "Test Statistic" << "=  " << t_stat << "\n";

Распределение, которое мы должны использовать, представляет собой распределение Чи Квадрат с N-1 степенями свободы:

chi_squared dist(N - 1);

Различные гипотезы, которые могут быть проверены, суммируются в следующей таблице:

гипотеза

Тест

Нулевая гипотеза: нет разницы в стандартном отклонении от указанного значения

Отклонить, если T< & #967;2(1-альфа/2; N-1)или T >& #967;2(альфа/2; N-1)

Альтернативная гипотеза: существует разница в стандартном отклонении от указанного значения

Отклонить, если χ2(1-альфа/2; N-1)>= T >= χ2(альфа/2; N-1)

Альтернативная гипотеза: стандартное отклонение меньше указанного значения

Отклонить, если χ2(1-альфа; N-1)<= T

Альтернативная гипотеза: стандартное отклонение больше указанного значения

Отклонить, если χ2(альфа; N-1)>= T

Где χ2(альфа; N-1)— верхнее критическое значение распределения Чи Квадрата, и χ2(1-альфа; N-1)— нижнее критическое значение.

Напомним, что нижняя критическая величина такая же, как и квантиль, а верхняя критическая величина такая же, как квантиль от дополнения вероятности, что дает нам следующий код для вычисления критических значений:

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";

Теперь, когда у нас есть критические значения, мы можем сравнить их с нашей тестовой статистикой и распечатать результат каждой гипотезы и теста:

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 << "ACCEPTED\n";
else
   cout << "REJECTED\n";
cout << "Standard Deviation  < " << setprecision(3) << fixed << D << "            ";
if(lcv > t_stat)
   cout << "ACCEPTED\n";
else
   cout << "REJECTED\n";
cout << "Standard Deviation  > " << setprecision(3) << fixed << D << "            ";
if(ucv < t_stat)
   cout << "ACCEPTED\n";
else
   cout << "REJECTED\n";
cout << endl << endl;

Чтобы увидеть некоторые примеры вывода, мы будем использоватьпередачи данныхизNIST / SEMATECH e-Handbook of Statistical Methods.. Данные представляют собой измерения диаметра передач от производственного процесса. Вывод программы специально разработан для отражения вывода DATAPLOT, показанного вПримере справочника NIST.

______________________________________________
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            ACCEPTED
Standard Deviation  < 0.100            ACCEPTED
Standard Deviation  > 0.100            REJECTED

В этом случае мы проверяем, является ли стандартное отклонение образца 0,1, и нулевая гипотеза отвергается, поэтому мы заключаем, что стандартное отклонениене0,1.

В качестве альтернативного примера рассмотрим данныекремниевых пластинизNIST/SEMATECH e-Handbook of Statistical Methods.. В этом сценарии поставщик кремниевых пластин 100 ohm.cm утверждает, что его процесс изготовления может производить пластины с достаточной консистенцией, чтобы стандартное отклонение сопротивления для партии не превышало 10 ohm.cm. Образец N = 10 пластин, взятый из партии, имеет стандартное отклонение 13,97 ohm.cm, и вопрос, который мы задаем себе: «Правильны ли требования поставщиков?».

Результат программы теперь выглядит так:

______________________________________________
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            ACCEPTED

В этом случае наша нулевая гипотеза состоит в том, что стандартное отклонение выборки меньше 10: эта гипотеза отвергается в анализе выше, и поэтому мы отвергаем утверждение производителей.


PrevUpHomeNext

Статья Chi-Square Test for the Standard Deviation раздела Math Toolkit 2.5.0 Chi Squared Distribution Examples может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chi Squared Distribution Examples ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 01:30:08/0.0045490264892578/0