Source code for simplestatistics.statistics.t_test

# I need sane division that returns a float not int
from __future__ import division

from .decimalize import decimalize
from .mean import mean
from .standard_deviation import standard_deviation

[docs]def t_test(sample, x): """ A one-sample `t-test`_ is a test that compares the mean of a sample to a known value, x. In this case, we're trying to determine whether the sample mean is equal to the value that we know, which is `x`. Usually the results are used to look up a `p-value`_, which, for a certain level of significance, will let you determine whether the null hypothesis (that there is no real difference between the mean of the sample and provided `x`) can be rejected or not. .. _`t-test`: http://en.wikipedia.org/wiki/Student's_t-test .. _`p-value`: http://en.wikipedia.org/wiki/P-value Equation: .. math:: t = \\frac{\\bar{X} - \\mu}{sd_X} :math:`\\bar{X}` is the sample mean :math:`\\mu` is the provided value :math:`sd_X` is the sample standard deviation Args: sample: A list of numerical objects (the sample) x: The provided value to compare the mean of the sample to. Returns: A numerical object. Example: >>> t_test([1, 2, 3, 4, 5, 6], 3.385) 0.150570344262835 """ sample = decimalize(sample) x = decimalize(x) mean_sample = decimalize(mean(sample)) # Square root the length of the sample rootN = pow(len(sample), 0.5) rootN = decimalize(rootN) # get standard deviation of sample sample_sd = decimalize(standard_deviation(sample)) # Compute the known value against the sample, # returning the t value t_statistic = ((mean_sample - x) / sample_sd) * rootN return(float(t_statistic))