R / Python置信区间

问题描述 投票:0回答:1

只是试图找出一个R - > Python的东西:为什么这两个项目没有给出相同的结果?

计算样本数据的95%置信区间,均值= 65,s = 22,n = 121。

R:tsum.test(n.x=121, mean.x=65, s.x=22)

给出了61.04014 68.95986的95%置信区间

Python:stats.norm.interval(alpha=0.95, loc=65, scale=22/np.sqrt(121))

给出了(61.080072030919894, 68.9199279690801)的95%置信区间

我认为这些应该是相同的结果,或者我没有为R的tsum.test使用适当的等效Python函数?

python r confidence-interval
1个回答
0
投票

经过进一步调查,我可以看到我错误地假设使用stats.norm

scipy.stats.t允许R的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)````
© www.soinside.com 2019 - 2024. All rights reserved.