一、提出问题
T分布如何计算其数据的双侧置信区间
二、一、基本理论与操作说明
T分布与其置信区间:设X∼N(0,1),Y∼χ2(n),且X和Y相互独立,则称随机变量
服从自由度为n的t分布,记为 T∼t(n)。当n=1的t分布,就是柯西分布;期望不存在; 当n>1时,E(T)=0;当n≤2时,方差不存在;当n>2时,D(T)=n/n−2。 t分布的置信区间(Confidence Interval,CI)
式中 a=1-95% 是显著水平。S是样本标准差,当没有总体标准差 就使用是s。t分布曲线及95%置信区间表示图见图1,不同自由度和显著水平的对应表见表1。
三、举例说明
1、要求
2、实现代码
class ci
{
double mean(double data[])//计算样本均值
{
double mean=0;
for(int i=0;i<data.length;i++)
mean += data[i]/data.length;
return mean;
}
double s(double data[])//计算样本标准差S
{
double s=0;
double mean= mean(data);
for(int i=0;i<data.length;i++)
s += (data[i]-mean)*(data[i]-mean);
return Math.sqrt(s/(data.length-1));
}
double se(double data[])
{
return s(data) / Math.sqrt(data.length);
}
double[] sci(double data[])
{
double ci[]={0,0};//置信区间数组
double zvalue=2.447;//t分布临界值 查表获得
ci[0]= mean(data) - zvalue * se(data);
ci[1]= mean(data) + zvalue * se(data);
return ci;
}
void out(double data[])
{
for(int i=0;i<data.length;i++)
System.out.print(data[i]+",");
}
}
class test
{
public static void main(String[] args)
{
double data[]={26.7,22,24.1,21,27.2,25,23.4};
ci s= new ci();//创建新对象
double result[]=s.sci(data);
s.out(result);//22.076803170755408,26.32319682924459,
}
}
注:
-
double s(double data[])这个方法是计算样本标准差
-
double se(double data[])这个方法是计算样本标准误差
3、运行结果图