После дальнейшего расследования я вижу, что я ошибся, предполагая, что для этого используется stats.norm
.
scipy.stats.t
позволяет рассчитать степень свободы, которую R's tsum.test
выполняет автоматически:
stats.t.interval(alpha = 0.95, df = 121-1, loc = 65, scale= 22/np.sqrt(121))
возвращает (61.04013918989445, 68.95986081010555)
, округляя до 5 знаков после запятой ответы, заданные tsum.test
в R.
Общая функция, которую я использую, если это полезно,это:
def get_conf_interval_from_sample(n, mean, sigma, alpha = 0.95) :
"""Get confidence interval from sample data with sample of n, mean, sigma, where df = n-1
Equivalent to getting confidence interval using t.test / tsum.test in R"""
df = n-1
scale = sigma / np.sqrt(n)
return stats.t.interval(alpha=alpha, df=df, loc=mean, scale=scale)````