Проверка результатов t-теста с использованием Python scipy - PullRequest
0 голосов
/ 03 октября 2018

У меня есть простая функция Python:

from scipy.stats import ttest_1samp

def tTest( expectedMean, sampleSet, alpha=0.05 ):
    # T-value and P-value
    tv, pv = ttest_1samp(sampleSet, expectedMean)
    print(tv,pv)
    return pv >= alpha

if __name__ == '__main__':
    # Expected mean is 10
    print tTest(10.0, [99, 99, 22, 77, 99, 55, 44, 33, 20, 9999, 99, 99, 99])

Я ожидаю, что t-критерий не получится для этого образца, так как он не соответствует ожидаемому среднему значению, равному 10. Однако программа выдает результат:

(1.0790344826428238, 0.3017839504736506)
True

Т.е. значение p составляет ~ 30%, что слишком велико, чтобы отвергнуть гипотезу.Я не очень хорошо разбираюсь в математике, стоящей за t-тестом, но я не понимаю, как этот результат может быть правильным.У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 03 октября 2018

Я выполнил тест, используя R, просто чтобы проверить, совпадают ли результаты, и они:

t.test(x=c(99, 99, 22, 77, 99, 55, 44, 33, 20, 9999, 99, 99, 99), alternative = "two.sided", 
mu = 10, paired = FALSE, var.equal = FALSE, conf.level = 0.95)

data:  c(99, 99, 22, 77, 99, 55, 44, 33, 20, 9999, 99, 99, 99)
t = 1.079, df = 12, p-value = 0.3018
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
-829.9978 2498.3055
sample estimates:
mean of x 
 834.1538 

Вы можете видеть, что значение p равно 0,3.Это действительно интересная проблема, у меня много проблем с проверкой гипотез.Прежде всего, размер выборки сильно влияет, если у вас большой размер выборки, скажем, 5000 значений, незначительные отклонения от ожидаемого значения, которое вы тестируете, будут сильно влиять на значение p, и поэтому вы отвергнете нулевую гипотезу.в большинстве случаев наличие небольших образцов делает противоположное.И здесь происходит то, что у вас большая разница в данных.

Если вы попытаетесь заменить ваши данные с [99, 99, 22, 77, 99, 55, 44, 33, 20, 9999, 99, 99, 99]

На [99, 99, 99, 99, 100, 99, 99, 99, 99, 100, 99, 100, 100]

Таку него действительно небольшая дисперсия, ваше p-значение будет намного меньше, даже если среднее значение этого значения, вероятно, ближе к 10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...