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

Calculating confidence intervals on the mean with the Students-t distribution

Boost , Math Toolkit 2.5.0 , Student's t 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

Допустим, у вас есть среднее значение выборки, вы можете узнать, какие доверительные интервалы вы можете разместить на этом значении. В разговорной речи: «Я хочу интервал, который я могу быть уверен, что P% содержит истинное среднее». (В техническом отношении отметим, что интервал либо содержит истинное среднее, либо нет: значение уровня доверия тонко отличается от этого разговорного. Более подробную информацию можно найти на сайте NIST.

Формула для интервала может быть выражена как:

Где Y - среднее значение выборки, - стандартное отклонение выборки, N - размер выборки, /α/ - желаемый уровень значимости и t(α/2,N-1) - верхнее критическое значение распределения Студентов-т с N-1 степенями свободы.

[Note] Note

Количество α   является максимально приемлемым риском ложного отклонения нулевой гипотезы. Чем меньше значение α, тем больше прочность теста.

Уровень достоверности теста определяется как 1 - & #945; и часто выражается в процентах. Так, например, уровень значимости 0,05 эквивалентен уровню доверия 95%. См. "Что такое доверительные интервалы?" в NIST/SEMATECH e-Handbook of Statistical Methods. для получения дополнительной информации.

[Note] Note

Обычные предположения о независимых и одинаково распределенных (i.i.d.) переменных и нормальном распределении , конечно, применяются здесь, как и в других примерах.

Из формулы должно быть ясно, что:

  • Ширина доверительного интервала уменьшается по мере увеличения размера выборки.
  • Ширина увеличивается по мере увеличения стандартного отклонения.
  • Ширина увеличивается по мере повышения уровня уверенности (0,5 к 0,99999 - сильнее).
  • Ширина увеличивается по мере снижения уровня значимости (0,5 в сторону 0,00000...01 - сильнее).

Следующий примерный код взят из примера программы students_t_single_sample.cpp.

Мы начнем с определения процедуры для расчета интервалов для различных уровней доверия; процедура распечатает их в виде таблицы:

// Needed includes:
#include <boost/math/distributions/students_t.hpp>
#include <iostream>
#include <iomanip>
// Bring everything into global namespace for ease of use:
using namespace boost::math;
using namespace std;
void confidence_limits_on_mean(
   double Sm,           // Sm = Sample Mean.
   double Sd,           // Sd = Sample Standard Deviation.
   unsigned Sn)         // Sn = Sample Size.
{
   using namespace std;
   using namespace boost::math;
   // Print out general info:
   cout <<
      "__________________________________\n"
      "2-Sided Confidence Limits For Mean\n"
      "__________________________________\n\n";
   cout << setprecision(7);
   cout << setw(40) << left << "Number of Observations" << "=  " << Sn << "\n";
   cout << setw(40) << left << "Mean" << "=  " << Sm << "\n";
   cout << setw(40) << left << "Standard Deviation" << "=  " << Sd << "\n";

Определим таблицу уровней значимости/риска, для которой вычислим интервалы:

double alpha[] = { 0.5, 0.25, 0.1, 0.05, 0.01, 0.001, 0.0001, 0.00001 };

Обратите внимание, что это дополнения уровней достоверности/вероятности: 0,5, 0,75, 0,9 .. 0,9999.

Далее мы объявим нужный нам объект распределения, заметим, что параметр степеней свободы является размером выборки меньше единицы:

students_t dist(Sn - 1);

Большая часть того, что следует в программе, - это красивая печать, поэтому давайте сосредоточимся на расчете интервала. Для начала нам нужна t-статистика, вычисляемая с помощью функции quantile и нашего уровня значимости. Обратите внимание, что поскольку уровни значимости являются дополнением вероятности, мы должны обернуть аргументы в призыв к комплементу (...):

double T = quantile(complement(dist, alpha[i] / 2));

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

Теперь, чтобы завершить картину, мы получим (одностороннюю) ширину интервала от t-статистики путем умножения на стандартное отклонение и деления на квадратный корень размера выборки:

double w = T * Sd / sqrt(double(Sn));

Двусторонний интервал представляет собой среднее значение выборки плюс и минус этой ширины.

И кроме более красивой печати, которая завершает процедуру.

Давайте посмотрим на некоторые результаты выборки, сначала используя данные Тепловой поток с сайта NIST. Набор данных был собран Бобом Зарром из NIST в январе 1990 года с помощью калибровки и анализа устойчивости счетчика теплового потока. Соответствующий вывод диаграммы данных для этого теста можно найти в разделе 3.5.2 электронного справочника статистических методов NIST/SEMATECH.

   __________________________________
   2-Sided Confidence Limits For Mean
   __________________________________
   Number of Observations                  =  195
   Mean                                    =  9.26146
   Standard Deviation                      =  0.02278881
   ___________________________________________________________________
   Confidence       T           Interval          Lower          Upper
    Value (%)     Value          Width            Limit          Limit
   ___________________________________________________________________
       50.000     0.676       1.103e-003        9.26036        9.26256
       75.000     1.154       1.883e-003        9.25958        9.26334
       90.000     1.653       2.697e-003        9.25876        9.26416
       95.000     1.972       3.219e-003        9.25824        9.26468
       99.000     2.601       4.245e-003        9.25721        9.26571
       99.900     3.341       5.453e-003        9.25601        9.26691
       99.990     3.973       6.484e-003        9.25498        9.26794
       99.999     4.537       7.404e-003        9.25406        9.26886

Как вы можете видеть, большой размер выборки (195) и небольшое стандартное отклонение (0,023) объединены, чтобы дать очень маленькие интервалы, действительно, мы можем быть очень уверены, что истинное среднее значение составляет 9,2.

Для сравнения следующий пример вывода данных взят из P.K.Hou, O.W. Lau & M.C. Wong, Analyst (1983) vol. 108, p 64. и от Statistics for Analytical Chemistry, 3rd ed. (1994), pp 54-55 J. C. Miller and J. N. Miller, Ellis Horwood ISBN 0 13 0309907. Значения являются результатом определения ртути путем атомного поглощения холодного пара.

   __________________________________
   2-Sided Confidence Limits For Mean
   __________________________________
   Number of Observations                  =  3
   Mean                                    =  37.8000000
   Standard Deviation                      =  0.9643650
   ___________________________________________________________________
   Confidence       T           Interval          Lower          Upper
    Value (%)     Value          Width            Limit          Limit
   ___________________________________________________________________
       50.000     0.816            0.455       37.34539       38.25461
       75.000     1.604            0.893       36.90717       38.69283
       90.000     2.920            1.626       36.17422       39.42578
       95.000     4.303            2.396       35.40438       40.19562
       99.000     9.925            5.526       32.27408       43.32592
       99.900    31.599           17.594       20.20639       55.39361
       99.990    99.992           55.673      -17.87346       93.47346
       99.999   316.225          176.067     -138.26683      213.86683

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


PrevUpHomeNext

Статья Calculating confidence intervals on the mean with the Students-t distribution раздела Math Toolkit 2.5.0 Student's t Distribution Examples может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Student's t Distribution Examples ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:21:11/0.0077850818634033/0