Java计算置信区间
我正在寻找一些方法,可以采用或不采用参数来计算置信区间。Java计算置信区间,java,confidence-interval,Java,Confidence Interval,我正在寻找一些方法,可以采用或不采用参数来计算置信区间。 我不想要apache方法, 只需一个简单的方法或som类型的代码就可以做到这一点。这是计算置信区间的代码 /** * * @author alaaabuzaghleh */ public class TestCI { public static void main(String[] args) { int maximumNumber = 100000; int num = 0;
我不想要apache方法,
只需一个简单的方法或som类型的代码就可以做到这一点。这是计算置信区间的代码
/**
*
* @author alaaabuzaghleh
*/
public class TestCI {
public static void main(String[] args) {
int maximumNumber = 100000;
int num = 0;
double[] data = new double[maximumNumber];
// first pass: read in data, compute sample mean
double dataSum = 0.0;
while (num<maximumNumber) {
data[num] = num*10;
dataSum += data[num];
num++;
}
double ave = dataSum / num;
double variance1 = 0.0;
for (int i = 0; i < num; i++) {
variance1 += (data[i] - ave) * (data[i] - ave);
}
double variance = variance1 / (num - 1);
double standardDaviation= Math.sqrt(variance);
double lower = ave - 1.96 * standardDaviation;
double higher = ave + 1.96 * standardDaviation;
// print results
System.out.println("average = " + ave);
System.out.println("sample variance = " + variance);
System.out.println("sample standard daviation = " + standardDaviation);
System.out.println("approximate confidence interval");
System.out.println("[ " + lower + ", " + higher + " ]");
}
}
/**
*
*@作者alaaabuzaghleh
*/
公共类TestCI{
公共静态void main(字符串[]args){
int最大数=100000;
int num=0;
double[]数据=新的double[maximumNumber];
//第一遍:读取数据,计算样本平均值
双数据量=0.0;
虽然(num我的知识有限,但基本上可以归结为根据一组预期答案完成一项在线任务()
然而,据我所知,给出的答案中有错误,我想纠正这些错误。
我的资料来源几乎是维基百科
自信的间隔意味着什么?你的工作如何?你想做什么,你尝试了什么,你具体不了解什么?不要因为投票被否决而气馁,慢慢来,为你所面临的问题写一个适当的描述,并举例说明facing@RiteshK-据我所知,这个计算是错误的-应该是ave+1.96*标准偏差/数学sqrt(num-1)
respave-1.96*标准偏差/数学sqrt(num-1)
。此外,令人困惑的是,num似乎比上述代码中的样本大小多了一个……而且打字错误也无助于读者的理解!对于小样本,这种计算似乎是正确的。但是,我已经阅读了,对于小样本,它似乎可以改进?
/**
*
* @return int[]{lower, upper}, i.e. int array with Lower and Upper Boundary of the 95% Confidence Interval for the given numbers
*/
private static double[] calculateLowerUpperConfidenceBoundary95Percent(int[] givenNumbers) {
// calculate the mean value (= average)
double sum = 0.0;
for (int num : givenNumbers) {
sum += num;
}
double mean = sum / givenNumbers.length;
// calculate standard deviation
double squaredDifferenceSum = 0.0;
for (int num : givenNumbers) {
squaredDifferenceSum += (num - mean) * (num - mean);
}
double variance = squaredDifferenceSum / givenNumbers.length;
double standardDeviation = Math.sqrt(variance);
// value for 95% confidence interval, source: https://en.wikipedia.org/wiki/Confidence_interval#Basic_Steps
double confidenceLevel = 1.96;
double temp = confidenceLevel * standardDeviation / Math.sqrt(givenNumbers.length);
return new double[]{mean - temp, mean + temp};
}