commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From William J Rust <...@weru.ksu.edu>
Subject normal deviates don't pass t test
Date Mon, 17 Sep 2007 21:36:49 GMT
I'm working on a climate simulation program that takes monthly averages 
and generates daily readings that are assumed to be normally 
distributed. The following program creates 10 sets of 100,000 random 
deviates with mean 10 and SD 5. It then applies a t test (results below) 
to ensure that the generated numbers are good enough. As the results 
show, they aren't. I'm wondering a) I am doing something wrong or b) is 
there something wrong with the stats routines?

Thanks,

wjr

package usda.weru.cligen2;

import org.apache.commons.math.MathException;

/**
 *
 * @author wjr
 */
public class TestNormal {
        
    static org.apache.commons.math.distribution.NormalDistributionImpl nd =
            new 
org.apache.commons.math.distribution.NormalDistributionImpl(10, 5);

    public static void main(String[] args) {
        double[] arry = new double[100000];
        java.util.Random ran = new java.util.Random(1l);
        
        for (int jdx = 0; jdx < 10; jdx++) {
            for (int idx = 0; idx < arry.length; idx++) {
                try {
                    arry[idx] = 
nd.inverseCumulativeProbability(ran.nextDouble());
                } catch (MathException ex) {
                    ex.printStackTrace();
                }
            }
            try {
                System.out.println("ttest " + 
org.apache.commons.math.stat.inference.TestUtils.tTest(10,arry));
            } catch (IllegalArgumentException ex) {
                ex.printStackTrace();
            } catch (MathException ex) {
                ex.printStackTrace();
            }
        }
    }
}

Output:

>
> run-single:
> ttest 0.3433300114960922
> ttest 0.1431930575825282
> ttest 0.12336027805916228
> ttest 0.49478850669361796
> ttest 0.9216887341410063
> ttest 0.9937228334312525
> ttest 0.13669784550400177
> ttest 0.9646134537758599
> ttest 0.9965741269090211
> ttest 0.03815948891784959
> BUILD SUCCESSFUL (total time: 20 seconds)



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message