R和Python之间的不同t-test pvalues

R和Python之间的不同t-test pvalues,python,r,t-test,Python,R,T Test,我目前是一名python新手,正在尝试学习更多关于倾向评分匹配的知识。我从Stanford.edu找到了一个很好的教程(因为这是我的第一次堆栈溢出,所以我不会发布两个链接,但会发布google Stanford倾向评分匹配),其中涵盖了这一点。我的目标是用python重新创建这一切,并了解发生了什么 我的问题是当我进入第1.2节均值差异:治疗前协变量并开始进行t检验时。我不明白为什么对于相同的测试和相同的数据,R和Python之间的p值如此不同 R代码: with(ecls,t.test(rac

我目前是一名python新手,正在尝试学习更多关于倾向评分匹配的知识。我从Stanford.edu找到了一个很好的教程(因为这是我的第一次堆栈溢出,所以我不会发布两个链接,但会发布google Stanford倾向评分匹配),其中涵盖了这一点。我的目标是用python重新创建这一切,并了解发生了什么

我的问题是当我进入第1.2节均值差异:治疗前协变量并开始进行t检验时。我不明白为什么对于相同的测试和相同的数据,R和Python之间的p值如此不同

R代码:
with(ecls,t.test(race_white~catholic,var.equal=FALSE))

R输出:
Welch两样本t检验
资料来源:天主教白人种族
t=-13.453,df=2143.3,p值<2.2e-16
替代假设:平均值的真实差异不等于0
95%置信区间:
-0.1936817 -0.1444003
样本估计:
第0组平均值第1组平均值

0.5561246 0.7251656
R不会打印低于2.2e-16的p值,但会计算并存储它们。为您的R代码尝试以下操作:

with(ecls, t.test(race_white ~ catholic, var.equal=FALSE))$p.value
[1] 1.141333e-39

该值实际上为零,这就是为什么使用Python将其打印到小数点后3位时,会看到0.000。试着用Python打印未修改的p值(不要使用
%.3f
——事实上你已经使用了!
print(fina)
),我希望你能看到与R相同的值(事实上你可以!)

R不会打印低于2.2e-16的p值,但它们是经过计算和存储的。为您的R代码尝试以下操作:

with(ecls, t.test(race_white ~ catholic, var.equal=FALSE))$p.value
[1] 1.141333e-39

该值实际上为零,这就是为什么使用Python将其打印到小数点后3位时,会看到0.000。试着用Python打印未修改的p值(不要使用
%.3f
——事实上你已经使用了!
print(fina)
),我希望你能看到与R相同的值(事实上你是这样做的!)

这两个例子告诉你同样的事情。p值在我看来并没有什么不同。这两个例子告诉你的是同一件事。p值在我看来没有什么不同。谢谢!这很有见地,谢谢!这是很有见地的。