К разделу 'Математика' сайта AlgoList.

Домой Оглавление

Распределение Стьюдента

Другое название – T-распределение
 
Обозначение
Область значений
Параметры Параметр формы , число степеней свободы, целое положительное число
Плотность (функция вероятности)
Математическое ожидание 0
Дисперсия ,
Функция распределения Не выражается в элементарных функциях

  Связь с другими распределениями


Случайная величина , имеющая распределение Стьюдента с степенями свободы, следующими соотношениями связана с независимыми случайными величинами и имеющими соответственно F-распределение с степенями свободы 1 и , распределение хи-квадрат с степенями свободы и нормальное с параметрами 0 и 1:

Кроме того, .

При распределение Стьюдента достаточно для практических целей близко к нормальному распределению.

Пусть даны n независимых случайных величин, распределенных нормально с параметрами и. Определим случайные величины и обычным образом. Тогда случайная величина подчиняется T-распределению с n степенями свободы. На этом свойстве основан одновыборочный T-критерий.

Пусть даны два набора из n1 и n2 случайных величин, распределенных нормально с параметрами , и , соответственно. Определим случайные величины , и , обычным образом. Тогда случайная величина

подчиняется T-распределению с n1+n2-2 степенями свободы. На этом свойстве основан двухвыборочный T-критерий.
  Вычисление функции распределения и ее квантилей


Выше указано соотношение, связывающее распределение Стьюдента с F-распределением, которое, в свою очередь, является частным случаем бета. Это и дает нам способ вычисления функции распределения Стьюдента.

Файл studentDF.h

/****************************************************/
/*         Распределение Стьюдента                  */
/****************************************************/
#ifndef __STUDENT_H__

#define ENTRY   extern
#define LOCAL   static

ENTRY double
studentDF(double n, double x);
//Вычисляется вероятность того, что случайная величина,
// подчиняющаяся распределению Стьюдента (T-распределению)
// c n степенями свободы, не превосходит (меньше или равна) x.

ENTRY double
inv_studentDF(double n, double p);
// По данной вероятности p вычисляется значение q,
// для которого studentDF(n,q) вернет p.

#define	__STUDENT_H__	/* Prevents redefinition	*/
#endif              	/* Ends #ifndef __STUDENT_H__	*/

Файл studentDF.cpp

/****************************************************/
/*         Распределение Стьюдента                  */
/****************************************************/

#include <assert.h>
#include <math.h>

#include "betaDF.h"

ENTRY double
studentDF(double n, double x)
/*
 * Вычисляется вероятность того, что случайная величина,
 * подчиняющаяся распределению Стьюдента (T-распределению)
 * c n степенями свободы, не превосходит (меньше или равна) x.
 */
{
   assert(n > 0);

   if (x == 0.0)
      return 0.5;
   BetaDF b=BetaDF(0.5 * n, 0.5);
   double z = 0.5 * b.value(n / (n + x * x));
   return (x > 0.0) ? 1.0 - z : z;
}/*studentDF*/

ENTRY double
inv_studentDF(double n, double p)
/*
 * По данной вероятности p вычисляется значение q,
 * для которого studentDF(n,q) вернет p.
 */
{
   if (p == 0.5) return 0.0;
   double z = 1.0 - 2.0 * p;
   BetaDF b=BetaDF(0.5, 0.5*n);
   z = b.quantile(fabs(z));
   double q = sqrt(n*z/(1.0-z));
   return (p < 0.5) ? -q : q;
}

Дата последней модификации: 25 октября 2000 г.