power1d.stats¶
A module containing test statistic functions for simple experiment designs.
The following functions are available:
t_1sample_fn —— one sample t test
t_2sample_fn —— two sample t test
t_regress_fn —— linear regression
f_anova1_fn —— one-way ANOVA
All functions accept two-dimensional numpy arrays as the dependent variable input argument(s). The arrays must have shape (J,Q) where:
J —— sample size
Q —— continuum size
All functions return a test statistic continuum as a one-dimensional numpy array of size Q.
Slightly more efficient versions of the functions above are also available:
t_1sample_fn
t_2sample_fn
t_regress_fn
f_anova1_fn
The output from each of these functions is itself a function whose input arguments are identical to the normal versions above. However, the _fn versions store information like degrees of freedom and matrix inversion results so they needn’t be re-computed. This makes iterative simulation somewhat more efficient.
Main functions¶
t_1sample¶
- power1d.stats.t_1sample(y)¶
t statistic for a one-sample test
Arguments:
y —— (J x Q) data sample array
Outputs:
t continuum as a numpy array with shape = (Q,)
Example:
>>> import numpy as np >>> import power1d >>> J,Q = 8, 101 >>> y = np.random.randn( J, Q ) >>> t = power1d.stats.t_1sample( y )
t_2sample¶
- power1d.stats.t_2sample(yA, yB)¶
t statistic for a two-sample test
Arguments:
yA —— (J x Q) data sample array
yB —— (J x Q) data sample array
Outputs:
t continuum as a numpy array with shape = (Q,)
Example:
>>> import numpy as np >>> import power1d >>> J,Q = 8, 101 >>> yA = np.random.randn( J, Q ) >>> yB = np.random.randn( J, Q ) >>> t = power1d.stats.t_2sample( yA, yB )
t_regress¶
- power1d.stats.t_regress(y, x)¶
t statistic for linear regression
Arguments:
y —— (J x Q) data sample array
x —— (J,) array of independent variable values
Outputs:
t continuum as a numpy array with shape = (Q,)
Example:
>>> import numpy as np >>> import power1d >>> J,Q = 8, 101 >>> y = np.random.randn( J, Q ) >>> x = np.random.randn( J ) >>> t = power1d.stats.t_regress( y, x )
f_anova1¶
- power1d.stats.f_anova1(*yy)¶
F statistic for a one-way ANOVA
Arguments:
yy —— an arbitrary number of (J x Q) data sample arrays
Outputs:
f continuum as a numpy array with shape = (Q,)
Example:
>>> import numpy as np >>> import power1d >>> Q = 8, 101 >>> yA = np.random.randn( 8, Q ) >>> yB = np.random.randn( 5, Q ) >>> yC = np.random.randn( 12, Q ) >>> f = power1d.stats.f_anova1( yA, yB, yC )
Efficient functions¶
t_1sample_fn¶
- power1d.stats.t_1sample_fn(J)¶
t statistic for a one-sample test
Arguments:
J —— sample size
Outputs:
A function for computing the t statistic.
Example:
>>> import numpy as np >>> import power1d >>> J,Q = 8, 101 >>> y = np.random.randn( J, Q ) >>> fn = power1d.stats.t_1sample_fn( J ) >>> t = fn( y )
t_2sample_fn¶
- power1d.stats.t_2sample_fn(JA, JB)¶
t statistic for a two-sample test
Arguments:
JA —— sample size for group A
JB —— sample size for group B
Outputs:
A function for computing the t statistic.
Example:
>>> import numpy as np >>> import power1d >>> JA,JB = 8, 10 >>> Q = 101 >>> yA = np.random.randn( J, Q ) >>> yB = np.random.randn( J, Q ) >>> fn = power1d.stats.t_2sample_fn( JA, JB ) >>> t = fn( yA, yB )
t_regress_fn¶
- power1d.stats.t_regress_fn(x)¶
t statistic for linear regression
Arguments:
x —— (J,) array of independent variable values
Outputs:
A function for computing the t statistic.
Example:
>>> import numpy as np >>> import power1d >>> J,Q = 8, 101 >>> y = np.random.randn( J, Q ) >>> x = np.random.randn( J ) >>> fn = power1d.stats.t_regress_fn( x ) >>> t = fn( y )
f_anova1_fn¶
- power1d.stats.f_anova1_fn(*JJ)¶
F statistic for a one-way ANOVA
Arguments:
JJ —— an arbitrary number sample sizes
Outputs:
A function for computing the f statistic.
Example:
>>> import numpy as np >>> import power1d >>> JA = 8 >>> JB = 12 >>> JC = 9 >>> Q = 101 >>> yA = np.random.randn( JA, Q ) >>> yB = np.random.randn( JB, Q ) >>> yC = np.random.randn( JC, Q ) >>> fn = power1d.stats.f_anova1_fn( JA, JB, JC ) >>> f = fn( yA, yB, yC )