題:
在支持您的觀點時,忽略出版物中的異常數據是否不道德/不科學?
user541686
2015-08-30 17:22:15 UTC
view on stackexchange narkive permalink

我有一個散點圖(對數圖),其中包含約10,000個數據點,用於根據某種問題的隨機實例繪製某種算法的運行時間與輸入的關係。

我有很多這樣的圖,由於篇幅所限,我無法為他們專門分配大量空間。地塊高1-2英寸。麻煩的是,少數幾個樣本(可能是5個左右)花了很短的時間(例如幾毫秒)來完成,而幾乎所有其他數據點都花了2-3個數量級更長。

我試圖證明我的算法是快速的,所以我認為只需省略這些少量的數據點並生成更多樣本就不會受到傷害,對嗎?

我覺得提任何事情都會不必要地使讀者感到困惑,而保留它們會使讀者煩惱,因為情節將有大量的空白空間。顯然,這並不像我要壓制我的研究證據或其他東西一樣-丟棄的數據僅對我的算法有利。

如果我只是丟棄,我會違反一些道德規範嗎?那些樣品什麼也沒提及,所以我的地塊看起來更好?這是不科學的嗎?如果是的話,有人真的會在乎嗎?

您是說每10,000個中的5個超級快嗎?
@scaaahu:是的。 (是否有我可能遺失的另一種解釋?)
不,我只是想確保我正確閱讀了您的問題。萬分之五是非同尋常的。發生這種情況可能還有其他原因。
斷軸會解決您的問題嗎?
@Wrzlprmft:並非如此,折斷的軸會比僅包含軸還要混亂。
遺漏異常數據是否不道德/不科學?**是的**
哇,這個問題的見解比我想像的要多得多。
八 答案:
jakebeal
2015-08-30 17:54:57 UTC
view on stackexchange narkive permalink

科學的目標是啟示和洞察力。在甚至考慮刪除這些樣本之前,您需要了解它們為什麼存在。

原因是,出乎意料的“好”數據與出乎意料的壞數據一樣,可能是理論上出現問題的跡象。這些數據點是否在告訴您算法中有錯誤?他們是說您用於計時的儀器不可靠或未正確校準嗎?還是只是在某些情況下您的隨機問題碰巧非常容易解決?可能還有其他可能性。

如果您無法確定為什麼存在異常值,則必須 包含這些異常值,以幫助讀者評估您的工作。如果您確定它們是有問題的原因存在,那麼您還不准備發布。如果您確定它們是出於良性原因而存在的,則可以將它們從圖中刪除,但您必須確切地說明文本中所做的操作以及原因,否則有可能誤導讀者。

歸根結底,您所獲得的數據就是您所獲得的數據,您需要誠實處理。

...您的理論或實驗存在的問題。請記住,發現真正的發現是在“我無法解釋”。
至少,我認為您需要通過重新運行相同的輸入來找出異常值是否可重現-即使輸入是“隨機生成”的,您也可以保存並重複使用。如果它們不是可重複的,並且您無法解釋原因,那麼下一個要問的問題很可能是“使您的任何結果都證明一切”。
另外:有幾項研究表明,實際上看起來是異常值的是有效數據。我希望我能記得他們的想法,但是在過去一年左右的時間裡,我讀到了一些有關它的文章。
@keshlam: [重大發現請不要去“尤里卡!”他們說“呵呵,真有趣。”](http://www.schlockmercenary.com/2002-05-28)
Anonymous Mathematician
2015-08-30 17:49:41 UTC
view on stackexchange narkive permalink

是不科學的嗎?

是的。這些圖的目的不是為了表明算法是快速的,而是要給出其速度的準確圖片。故意刪除離群值而不進行解釋會導致圖像失真。如果您對此很清楚,也可以(例如,在標題或說明中說明被刪除的離群值及其原因),但是如果您默默地這樣做則不能。

這些離群值確實很重要:

  1. 也許它們表明您的代碼中有錯誤,在這種情況下,將其刪除似乎是您故意掩蓋了草率的工作。

  2. 解釋異常值在科學上可能很有趣且很重要(也許可以導致更快的算法),但是如果他們甚至不知道它們在那裡,沒有人會嘗試。

  3. 如果其他人實施了該算法並將其結果與您的結果進行比較,他們可能會浪費時間試圖理解為什麼有異常值而您沒有異常值。

  4. ol>
特別是對於邊緣情況的性能很重要的算法,可以拋出異常值的概念有點問題。
@Fomite:我的想法是,最壞的情況幾乎總是很有趣,而最壞的情況卻很少,因為很容易使算法具有返回快速查詢答案的“快速路徑”。例如,假設您要對列表進行排序,只是發現列表已被排序。然後,您根本不需要執行任何其他操作,並且在這些情況下算法可以更快地完成。但是(除非您的算法是遞歸的),在對排序算法的性能進行基準測試時,這種最佳情況下的運行時間將變得毫無意義,因此您可以嘗試將其排除在外。
@Mehrdad,在您希望列表在大多數時間而不是總是被排序的情況下使用這種算法可能會很有用。最好的情況確實很有趣,而且正如您自己的測試所建議的那樣,並不是那麼人為(每兩千次隨機發生一次)。
-1
Peter
2015-08-30 17:40:43 UTC
view on stackexchange narkive permalink

是的。對於實際情況,假設有人嘗試複製您的研究,只瀏覽您的論文,並以為自己有bug便大打出手,因為他們的圖顯示了這些怪異的異常值。

基本上,向人們提供所有信息,因為您不知道他們將如何使用您的紙張。可能大多數讀者不會在意離群值,也許他們會判斷該方法是否相同,但這取決於您來決定。

當然,您必須濾除噪聲, 不知何故。通常,訣竅是弄清楚如何為讀者提供所有信息,同時讓他們專注於重要信息。對於您的情況,我只想在圖的標題中說,算法的5次運行是如此之快,以至於它們超出了圖的範圍(或具有某種效果的範圍)。

+1為第一段。這比我找到其他答案更令人信服。
BrenBarn
2015-08-31 01:23:05 UTC
view on stackexchange narkive permalink

關鍵問題不是您是否要刪除異常值,而是您是否要描述和解釋所做的事情。刪除異常值有很多有效的原因,但是如果您這樣做,則需要說出做到並說出原因。

與此處的其他一些答案相比,我認為這不是將異常值排除在外之前,絕對有必要充分解釋這些異常值。但是,如果您沒有解釋,則也需要這樣說。理想情況下,您將解釋有無異常值的結果。如果離群值的存在或不影響總體結論,那麼您仍然可以堅持該結論,同時將離群值作為一種好奇心也許值得進一步研究。

當然,這些策略中的哪些將取決於您的領域和出版場所而被審閱者認為。但是這些審閱者需要知道您在分析中所做的任何選擇。丟棄異常值是一種分析選擇,而在不公開的情況下做出任何分析選擇都是不科學的。

Nzall
2015-08-30 20:41:04 UTC
view on stackexchange narkive permalink

作為一個學術背景較少而計算機科學背景較多的人,我對少量測試失敗的第一個直覺是這些特定的測試無法正確執行。基本上,您的算法沒有完成,並且由於錯誤而早日返回。此錯誤可以在您的代碼中,也可以在您的數據集中,或者在這兩者中。無論哪種方式,數量級的差異都是不正常的。檢查這些特定運行的結果,看看它們是否正常。就我們所知,這5個數據點實際上可能是正確運行的算法,而其他9995個數據點是有問題的(不太可能,但有可能)。

對於顯示這些離群值,您是否考慮過顯示帶有對數(10)Y軸的圖形?

無論哪種方式,由於格式化原因而刪除數據點都是偽造數據,就像您刪除數據點那樣,因為它們沒有證明你的觀點。它可以輕易殺死您的職業。

@Mehrdad可能有點極端,但絕對不會幫助您的事業。您基本上是在刪除數據點,因為它們不符合您對數據外觀的想法。這表明您認為您的想法比現實更重要,這與科學的意義恰恰相反:生成現實的準確表示。
通常,隱藏或扭曲的數據會追隨犯罪者,從而帶來令人不快的結果。如果您要冒險,這取決於您。通常,您所在領域的競爭者比本網站上的人士友好得多。如果您就是這樣,他們會很樂意證明您做錯了。正如其他人所說,您需要能夠*解釋*離群值,否則您還沒有準備好發布。
-1
...要包括在論文中的特殊地塊。當我們聽到“異常值”時,有時會得出結論。在得出結論之前檢查“異常值”的確切含義可能會有所幫助。
@aparente001如果您的數據掉進了裂縫並給出了意外的結果,那麼您應該明白為什麼它掉入那些裂縫中以及為什麼給出這些結果。極端離群值可能表明您的數據處理算法有誤,有時甚至可能會更改將同一算法應用於其他數據點的結果。
@Nzall-在這種情況下,它們不是意外的結果,對吧?我了解的是,某些輸入值偶然地佔據了if-then-else鑽石中的所有短支。(我所說的不是“穿越裂縫”。)
@aparente001作為IT專業人員,“偶然地”佔據所有短分支的輸入數據很可能不會以與其他數據相同的方式進行處理,因此可能無法正確處理。從技術上講,我所說的與其他大多數被選得比我高的答案沒有什麼不同。
@Nzall-是的,您的答案與他人相似。您的是最近的,您的立場更強。(我想這就是您編寫它的原因-您想比其他答案更進一步。)//看一下,如果我提出一種算法,該算法在隨機生成的一小部分輸入數據中表現可笑,那麼我拒絕提供那些特定的性能結果來支持我的論點,即我的算法比其他算法更快,這與省略部分性能結果來反駁我的主張有很大不同。//考慮流程圖。比方說...
...為簡單起見,我們有一個流程圖,其中包含一系列“如果某某某某事,則執行此操作或該操作,否則不執行任何操作”,並且某些隨機生成的數據碰巧碰到了大部分或全部其他分支分支,從而迅速地在流程圖中進行拍攝(那是我使用腹瀉隱喻的地方),這是否意味著算法不好?這是另一種查看方式。想像一下決策樹,其中某些分支很少涉及循環,並且偶爾輸入數據偶然地遍歷那些特定分支。這些特定的運行時間...
...輸入可能太短了。//現在,在這種情況下,最好將程序設置為連續執行十次算法-始終是一個好主意。但這並不能消除這些離群值。//關於您的評論“使用所有短分支很可能不會以與其他數據相同的方式進行處理” –不道德的是跳過測試和驗證過程。我們沒有理由認為OP在他的測試中確實表現不佳;我們確實有跡象表明,他會向後彎腰,以避免做任何不道德的事情。
JJK
2015-08-30 19:35:41 UTC
view on stackexchange narkive permalink

要務實(並始終遵循始終完全透明的總體理念),只需將圖表放在排除異常值的空白處,然後在圖表上放一個大大的腳註,說明由於大小而將5點排除在外頁面上的約束條件,並提供有關這些點為何/如何存在的評論。從我一個長期受苦的學者到另一個人的2美分...

正如在其他答案中提到的那樣,這些異常值的存在本身可能很有趣,除非存在錯誤。嘗試適當地顯示所有內容比隱藏它們(甚至提及)要好。
Vectornaut
2015-09-01 10:10:24 UTC
view on stackexchange narkive permalink

更改圖形以使數據看起來更清晰始終是一個好主意。更改數據以使圖更清晰永遠不是一個好主意。

有很多方法可以告訴讀者離群值。我最喜歡的是使用一個具有明顯斷軸的圖,它可以引起人們對異常值的注意,而不會破壞圖的其餘部分。

您最好擔心混淆您的讀者。您應該仔細考慮如何在這樣的細節上警告您的讀者,而又不要分散您嘗試講的故事的注意力。但是,正如其他許多人所建議的那樣,您絕不應默默地忽略數據,以使您的故事聽起來比實際情況簡單。這樣做可能會使您的論文更容易閱讀,但這樣做的潛在代價是使您的作品無法複製(如 Peter所說)或扔掉原來可能導致成為重要線索(如 keshlam所說)。

Michael Kay
2015-09-02 04:01:56 UTC
view on stackexchange narkive permalink

如果您了解異常值的原因,並且它們表示您的測量方法存在缺陷,請更正錯誤,然後使用改進的儀器再次進行實驗。您無需發布所有掉下來的盲區的詳細信息。如果您不了解異常值的原因,那麼忽略它們是不道德的,儘管我敢肯定這是經常發生的事情。如果您確實了解原因,例如有時算法只是很幸運,那麼您需要提及它們,但是如果它們會使圖表變得不可讀,則它們不必與所有其他度量一起出現在同一圖表上。

再次進行實驗可能要花費數百萬美元。僅針對少數幾個數據點這樣做似乎是荒謬的,然後最好使用統計分析。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...