2014-09-12 62 views
-2

通常我們遇到p值(例如2.3e-99)的情況,它明顯小於python可以表示的最準確數字(即機器epsilon)。爲什麼有時p值小於numpy可以表示的最準確數字

你能解釋一下這個現象嗎? p值有多可信?

如果可能的話,我們怎樣才能得到小到e-99度的數字?

+0

爲什麼選擇downvoted?這些人可以給出一些理由嗎? – 2014-09-12 18:25:45

+1

我沒有downvote,但我會指出2.3e-99不是「小於python可以表示的最準確的數字」。這不是什麼機器epsilon。 – 2014-09-12 18:27:49

+0

謝謝。我會詳細閱讀相關內容。 – 2014-09-12 18:31:49

回答

2

絕對值2.3e-99是不可信的,畢竟它是浮點運算。這還取決於計算此值時涉及多少個步驟。然而,慷慨解囊可能是可信的。例如,p < 0.00001左右。有一篇很棒的文章What Every Computer Scientist Should Know About Floating-Point Arithmetic,在這方面可能會提供很多信息。

+0

感謝您的回覆。這在生物信息學領域是相當普遍的。一個着名的例子是BLAST,其排名是按E值排序的(通常得到的數字小於e-99)。我只是想知道它的可信度。 – 2014-09-12 18:26:04

+0

我認爲在這種情況下它並不重要,因爲每個估計都是使用相同的等式計算的。我的意思是:如果這些值不準確,我會是一個系統性錯誤,並不會真正影響相對排名。另外,你會主要對Bit-score感興趣,對吧! Bitscore告訴你關於排列的質量,而E值只是告訴你這種排列有可能偶然發生。我不會忽略E值,但我認爲所有2 e-15左右的值都可以被視爲不太可能,然後我會按比特分數對結果進行排名 – Sebastian 2014-09-13 01:45:40

相關問題