我正努力用Python进行两个样本假设检验,并在R中给出了原始代码。
R中的代码是:-
prop.test(x=c(10,16), n=c(100,100))`#p值为0.2931,大于alpha=0.5,因此我们不能拒绝空假设。
我尝试在and和statsmodel库中执行相同的测试。
使用scipy的代码是:-
import numpy as np
import scipy.stats as stats
hats = np.array([[100,10], [100, 16]])
print("Hats scipy: ", stats.chi2_contingency(hats))`
#The p-value .368767 is greater than alpha=0.5, so we fail to reject the null hypothesis使用状态模型的代码是:-
import numpy as np
import statsmodels.stats.proportion as proportion
hat_a = 10
hat_b = 16
sample_a = 100
sample_b = 100
hats = np.array([hat_a, hat_b])
samples = np.array([sample_a,sample_b])
chisq, pvalue, table = proportion.proportions_chisquare(hats, samples)
print('Results are ','chisq =%.3f, pvalue = %.3f'%(chisq, pvalue))#p值.207大于alpha=0.5,因此我们不能拒绝空假设。
我想说的是,我已经研究了互联网,寻找正确的方式来执行2样本假设检验,并发现了各种方法来编码这一请求使用枕和状态模型。
我的问题是:-是否有一个假设检验,我可以在状态模型或枕,给我相同的结果,我使用R,这是一个p值为0.2931。
我对统计数字和概率都很陌生,所以任何建议都会事先得到极大的感谢。
发布于 2022-11-11 14:56:57
R的prop.test默认使用Yates连续性校正(它可以使用correct=F关闭)
因此,要在python中进行复制,需要使用Yates连续性校正。这可以用stats.chi2_contingency()来完成。但是,需要调整所观察到的值数组,以便反映RxC表中每个单元格中的数目(在本例中为2x2)。
hats = np.array([[90,10], [84, 16]])
stats.chi2_contingency(hats, correction=True)[1]输出:
0.2931241173597945https://stackoverflow.com/questions/74403628
复制相似问题