繁体   English   中英

想要在 Python 中通过在 Excel 中使用 TINV 获得相同的结果

[英]Want the same result in Python with using TINV in Excel

a= 0.05 b= 10.8

excel TINV(a,b) 中的结果是 2.228138852

from scipy import stats 

result = stats.t.ppf(1 - a, b)

结果是 1.7989330052096262

如何在 Python 中获得与在 Excel 中使用 TINV 获得的相同结果?

我认为你需要知道两个因素。 首先,在 Excel TINV 函数中截断自由度数(来源:微软)

如果 deg_freedom 不是整数,则将其截断。

因此,在 Excel 中执行TINV(0.05 , 10.8)TINV(0.05 , 10)将返回相同的值。

第二个因素,Excel TINV 函数返回学生 t 分布的双尾倒数。 但是在 Python 中,您只使用了 1 个尾巴:

如何在 Python 中找到 T 临界值

所以你需要做a/2 在 Python 中,你可以这样做:

from scipy import stats
a= 0.05
b= 10 # Integer because Excel truncates degrees of freedom
result = stats.t.ppf(1-a/2, b)
print(result)

2.2281388519649385

如您所见,输出2.2281388519649385非常接近您在 Excel 上获得的2,22813884242587不一样(我不知道为什么,我想这是一个小数问题)但非常接近。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM