# scipy.stats.ttest_rel

scipy.stats.ttest_rel(a, b, axis=0, nan_policy='propagate', alternative='two-sided')

  Calculate the t-test on TWO RELATED samples of scores, a and b.

  This is a two-sided test for the null hypothesis that 2 related or repeated samples have identical average (expected) values.

  Parameters
    a, b array_like

      The arrays must have the same shape.

    axis int or None, optional

      Axis along which to compute test. If None, compute over the whole arrays, a, and b.

    nan_policy{‘propagate’, ‘raise’, ‘omit’}, optional

      Defines how to handle when input contains nan. The following options are available (default is ‘propagate’):

      > - ‘propagate’: returns nan

      > - ‘raise’: throws an error

      > - ‘omit’: performs the calculations ignoring nan values

    alternative{‘two-sided’, ‘less’, ‘greater’}, optional

      Defines the alternative hypothesis. The following options are available (default is ‘two-sided’):

      > - ‘two-sided’

      > - ‘less’: one-sided

      > - ‘greater’: one-sided

      > New in version 1.6.0.

  Returns
    statistic float or array

      t-statistic.

    pvalue float or array

      Two-sided p-value.

  Notes

  Examples for use are scores of the same set of student in different exams, or repeated sampling from the same units. The test measures whether the average score differs significantly across samples (e.g. exams). If we observe a large p-value, for example greater than 0.05 or 0.1 then we cannot reject the null hypothesis of identical average scores. If the p-value is smaller than the threshold, e.g. 1%, 5% or 10%, then we reject the null hypothesis of equal averages. Small p-values are associated with large t-statistics.

  References

  https://en.wikipedia.org/wiki/T-test#Dependent_t-test_for_paired_samples

  Examples

      >>> from scipy import stats
      >>> rng = np.random.default_rng()

      >>> rvs1 = stats.norm.rvs(loc=5, scale=10, size=500, random_state=rng)
      >>> rvs2 = (stats.norm.rvs(loc=5, scale=10, size=500, random_state=rng)
      ...         + stats.norm.rvs(scale=0.2, size=500, random_state=rng))
      >>> stats.ttest_rel(rvs1, rvs2)
      Ttest_relResult(statistic=-0.4549717054410304, pvalue=0.6493274702088672)
      >>> rvs3 = (stats.norm.rvs(loc=8, scale=10, size=500, random_state=rng)
      ...         + stats.norm.rvs(scale=0.2, size=500, random_state=rng))
      >>> stats.ttest_rel(rvs1, rvs3)
      Ttest_relResult(statistic=-5.879467544540889, pvalue=7.540777129099917e-09)

scipy.stats.ttest_ind_from_stats scipy.stats.chisquare