NMath Stats User's Guide

TOC | Previous | Next | Index

5.3 One Sample T-Test (.NET, C#, CSharp, VB, Visual Basic, F#)

Class OneSampleTTest determines whether a sample from a normal distribution with unknown standard deviation could have a given mean. For example, suppose we wish to determine whether the self-esteem of children from a particular school differ from average, given a known population value of 3.9 on the Rosenberg Self­-Esteem Scale. 113 children are tested, with a mean score of 4.0408 and a standard deviation of .6542.

As described Section 5.1, all hypothesis test classes provide two paths for constructing instances of that type: a parameter-based method and a data-based method. Thus, you can construct a OneSampleTTest object by explicitly specifying a sample mean (), sample standard deviation (), sample size (), and population mean (), like so:

Code Example – C# t-test

double xbar = 4.0408;
double s = .6542;
int n = 113;
double mu0 = 3.9;
var test = new OneSampleTTest( xbar, s, n, mu0 );

Or by supplying a set of sample data, and the necessary population parameters. For instance, if the sample data is in column 3 of DataFrame df:

Code Example – C# t-test

double mu0 = 3.9;
var test = new OneSampleTTest( df[3], mu0 );

In this case, the sample mean, standard deviation, and size are calculated from the given data.

In addition to the properties common to all hypothesis test objects (Section 5.1), a OneSampleTTest object provides the following read-only properties:

Xbar gets the sample mean.

S gets the sample standard deviation.

N gets the sample size.

Mu0 gets the population mean.

DegreesOfFreedom gets the degrees of freedom.

By default, a OneSampleTTest object performs a two-sided hypothesis test () with . Non-default test parameters can be specified at the time of construction using constructor overloads, or after construction using the provided Alpha and Type properties, like so:

Code Example – C# t-test

test.Alpha = 0.05;

Once you've constructed and configured a OneSampleTTest object, you can access the various test results using the provided properties, as described in Section 5.1:

Code Example – C# t-test

Console.WriteLine( "t-statistic = " + test.Statistic );
Console.WriteLine( "deg of freedom = " + test.DegreesOfFreedom );
Console.WriteLine( "p-value = " + test.P );
Console.WriteLine( "reject the null hypothesis? " + test.Reject);

The output is:

t-statistic = 2.28786996397591
deg of freedom = 112
p-value = 0.0240223660991041
reject the null hypothesis? True

This indicates that we can reject the null hypotheses (). We can conclude that the children have self-esteem scores significantly different than average.

Finally, remember that the ToString() method returns a formatted string representation of the complete test results:

One Sample t Test

Sample mean = 4.0408
Sample standard deviation = 0.6542
Sample size = 113
Population mean = 3.9
Computed t statistic: 2.28786996397591, df = 112

Hypothesis type: two-sided
Null hypothesis: sample mean = population mean
Alt hypothesis: sample mean != population mean
P-value: 0.0240223660991041
REJECT the null hypothesis for alpha = 0.05
0.95 confidence interval: 3.91886249658971 4.16273750341029