微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何推导出优势比和 p 值以查看差异是否显着?

如何解决如何推导出优势比和 p 值以查看差异是否显着?

我有两组不同的样本:samples1 和 samples2。

此外,我有 18 个不同的元素,对于每个元素,分别使用样本 1 和样本 2 的所有样本获得相应的分数。

例如:

score_samples1[0] 表示使用samples1的所有样本得到的第一个元素的分数。

score_samples2[0] 表示使用samples2的所有样本得到的第一个元素的分数。

现在,我想比较这两个样本组之间的差异,并找出这种差异是否具有统计显着性。 如下所示,我已经应用了 t 检验来获得 p 值来评估显着性。

我的问题如下: 有没有办法推导出比值比和 p 值来查看差异是否显着?

from scipy import stats
import statistics

score_samples1=[1.430442073,1.347975371,1.175088823,1.20141693,1.152665995,1.105591463,1.343297357,1.251526193,1.107442697,1.302090741,1.312426241,1.24880381,1.46855296,1.12369795,1.344426189,1.24276685,1.216269219,1.172317535]
score_samples2=[1.663793448,1.506660754,1.387285644,1.440433062,1.367680224,1.340102236,1.632881551,1.522894543,1.137437101,1.581845495,1.540401185,1.549114159,1.558038893,1.392571495,1.532717551,1.451731862,1.277597967,1.336609308]

stats.ttest_ind(score_samples1,score_samples2)

stats.ttest_ind(score_samples1,score_samples2,equal_var=False)
Ttest_indResult(statistic=-5.03264933189511,pvalue=1.7512132919948795e-05)

#Paired t-test
stats.ttest_rel(score_samples1,score_samples2)
Ttest_relResult(statistic=-11.148411105604898,pvalue=3.0763665473016024e-09)

假设我将分数分类如下:

scores_ge_cutoff_samples1=[1 if x>=1.30 else 0 for x in score_samples1] 
scores_ge_cutoff_samples2=[1 if x>=1.30 else 0 for x in score_samples2]

scores_ge_cutoff_samples1
[1,1,0]  
scores_ge_cutoff_samples2
[1,1]

oddsratio,pvalue = stats.fisher_exact([[16,2],[7,11]])
pvalue
0.004510832141532924
oddsratio
12.571428571428571

基于此分析,我们可以得出结论,具有分数>=1.30 的样本 2 的可能性是具有分数>=1.30 的样本 1 的 12.57 倍。

但是,我的目标是获得样本 1 和样本 2 分数之间差异的优势比。

解决方法

您需要阅读有关实验程序的信息。 “这是否重要”不是你事后通过一些计算来决定的;它是您的实验设计的关键参数。你在做实验之前决定,你会接受什么水平的显着性来证实你选择的假设。

单尾 t 检验需要假设样本 1 大于样本 2。 双尾 t 检验需要假设样本 1 和样本 2 来自不同的分布——但不是哪个会大于另一个,只是它们不同。

既然您已经完成了两项测试,那么您似乎根本无法设计您的实验。为了科学的完整性,您现在必须重新开始,设计您的实验,然后重新运行您的样本。

另一方面,您处于非常良好的状态以获得合理的结果。结论的典型阈值是 0.95、0.98 和 0.99 的 p 水平;这些接受错误率分别为 5%、2% 和 1%。

您的 p 分数低于其中最严格的分数(e-5 与 e-2),因此您应该不会在这部分遇到任何问题。代码非常简单——例如:

t_score,prob = stats.ttest_ind(score_samples1,score_samples2)
if prob <= 0.01:
    print("The hypothesis is confirmed")
else
    print("The hypothesis is not confirmed")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。