在概率论和统计学中,学生t-分布(Student's t-distribution)经常应用在对呈正态分布的总体的均值进行估计。它是对两个样本均值差异进行显著性测试的学生t测定的基础。t检定改进了Z检定(en:Z-test),不论样本数量大或小皆可应用。在样本数量大(超过120等)时,可以应用Z检定,但Z检定用在小的样本会产生很大的误差,因此样本很小的情况下得改用学生t检定。在数据有三组以上时,因为误差无法压低,此时可以用变异数分析代替学生t检定。
当母群体的标准差是未知的但却又需要估计时,我们可以运用学生t-分布。
学生t-分布可简称为t分布。其推导由威廉·戈塞于1908年首先发表,当时他还在都柏林的健力士酿酒厂工作。因为不能以他本人的名义发表,所以论文使用了学生(Student)这一笔名。之后t检验以及相关理论经由罗纳德·费雪的工作发扬光大,而正是他将此分布称为学生分布。
在概率论和统计学中,t-分布(t-distribution)用于根据小样本来估计呈正态分布且方差未知的总体的均值。如果总体方差已知(例如在样本数量足够多时),则应该用正态分布来估计总体均值。
t分布曲线形态与n(确切地说与自由度df)大小有关。与标准正态分布曲线相比,自由度df越小,t分布曲线愈平坦,曲线中间愈低,曲线双侧尾部翘得愈高;自由度df愈大,t分布曲线愈接近正态分布曲线,当自由度df=∞时,t分布曲线为标准正态分布曲线。
using System;
namespace Legalsoft.Truffer
{
public class Studenttdist : Beta
{
private double nu { get; set; }
private double mu { get; set; }
private double sig { get; set; }
private double np { get; set; }
private double fac { get; set; }
public Studenttdist(double nnu, double mmu = 0.0, double ssig = 1.0)
{
this.nu = nnu;
this.mu = mmu;
this.sig = ssig;
if (sig <= 0.0 || nu <= 0.0)
{
throw new Exception("bad sig,nu in Studentdist");
}
np = 0.5 * (nu + 1.0);
fac = Globals.gammln(np) - Globals.gammln(0.5 * nu);
}
public double p(double t)
{
return Math.Exp(-np * Math.Log(1.0 + Globals.SQR((t - mu) / sig) / nu) + fac) / (Math.Sqrt(3.14159265358979324 * nu) * sig);
}
public double cdf(double t)
{
double p = 0.5 * betai(0.5 * nu, 0.5, nu / (nu + Globals.SQR((t - mu) / sig)));
if (t >= mu)
{
return 1.0 - p;
}
else
{
return p;
}
}
public double invcdf(double p)
{
if (p <= 0.0 || p >= 1.0)
{
throw new Exception("bad p in Studentdist");
}
double x = invbetai(2.0 * Math.Min(p, 1.0 - p), 0.5 * nu, 0.5);
x = sig * Math.Sqrt(nu * (1.0 - x) / x);
return (p >= 0.5 ? mu + x : mu - x);
}
public double aa(double t)
{
if (t < 0.0)
{
throw new Exception("bad t in Studentdist");
}
return 1.0 - betai(0.5 * nu, 0.5, nu / (nu + Globals.SQR(t)));
}
public double invaa(double p)
{
if (p < 0.0 || p >= 1.0)
{
throw new Exception("bad p in Studentdist");
}
double x = invbetai(1.0 - p, 0.5 * nu, 0.5);
return Math.Sqrt(nu * (1.0 - x) / x);
}
}
}