Example: Random Number Generation
In this example, a discrete normal random sample of size 1000 is generated via NextNormal
. After the ChiSquaredTest
constructor is called, the random observations are added to the test one at a time to simulate streaming data. The Chi-squared test is performed using Cdf.Normal
as the cumulative distribution function object to see how well the random numbers fit the normal distribution.
using System;
using Imsl.Stat;
public class RandomEx1 : ICdfFunction
{
public double CdfFunction(double x)
{
return Cdf.Normal(x);
}
public static void Main(String[] args)
{
int nObservations = 1000;
Imsl.Stat.Random r = new Imsl.Stat.Random(123457);
ICdfFunction normal = new RandomEx1();
ChiSquaredTest test = new ChiSquaredTest(normal, 10, 0);
for (int k = 0; k < nObservations; k++)
{
test.Update(r.NextNormal(), 1.0);
}
double p = test.P;
Console.Out.WriteLine("The P-value is " + p);
}
}
Output
The P-value is 0.496307043723263
Link to C# source.