題:
如何有效地管理統計分析項目?
chl
2010-09-21 01:39:08 UTC
view on stackexchange narkive permalink

我們經常聽到計算機科學中的項目管理和設計模式,但是在統計分析中卻很少見。但是,看來設計有效而持久的統計項目的決定性步驟是使事情井井有條。

我經常提倡使用R和在單獨的文件夾(原始數據文件,轉換的數據文件,R腳本,圖形,註釋等)中一致的文件組織。採用這種方法的主要原因是,以後進行分析(例如,當您忘記瞭如何巧生成給定圖時)可能會更容易。

最佳實踐是什麼?統計項目管理,還是您想根據自己的經驗提出建議?當然,這適用於任何統計軟件。 (請每個帖子一個答案

我投票結束這個題為離題,因為這與項目管理有關
@Aksakal:我認為您有點苛刻。:)與“ *對統計感興趣的人*”相關。70票以上的投票也強烈表明標準用戶發現了這個有趣且有用的問題。
我認為這應該在這裡作為主題。
@gung您是否想為該Meta線程添加答案,以便我們進行討論?
七 答案:
chl
2010-09-30 15:44:48 UTC
view on stackexchange narkive permalink

我正在整理一系列在 SO(由@Shane建議), Biostar(此後稱為BS)和該SE上找到的快速指南。我盡力確認每個項目的所有權,並選擇第一個或被高度評價的答案。我還添加了自己的東西,並標記了特定於[R]環境的項目。

數據管理

  • 創建項目用於將所有內容保存在正確位置的結構(數據,代碼,圖形等, giovanni / BS)
  • 永遠不要修改原始數據文件(理想情況下,應將其讀取為-
  • 檢查數據一致性( whuber / SE)
  • 管理腳本依賴項,並在進行轉換,清理等操作時將其複制/重命名為新的。使用構建自動化工具(例如GNU make( Karl Broman / Zachary Jones]

編碼)進行數據流>

分析

  • 在調用RNG或隨機算法(例如k均值)時不要忘記設置/記錄您使用的種子
  • 對於蒙特卡洛研究,存儲規格可能會很有趣/ parameters在單獨的文件中( sumatra可能是不錯的選擇, giovanni / BS)
  • 不要將自己限制在每個變量一個圖上,而要使用多變量(Trellis)顯示和交互式可視化工具(例如GGobi)

版本化

  • 使用某種版本控制以便於跟踪/導出,例如Git( Sharpie / VonC / JD Long / SO)–這是@Jeromy和@Tal
  • 提出的很好的問題
  • 定期備份所有內容( Sharpie / JD Long / SO)
  • 保留您的想法日誌,或依靠問題跟踪器,例如 ditz giovanni / BS)-與上一個項目部分重複,因為它在Git中可用

編輯/報告

作為旁注,Hadley Wickham提供了 R項目管理的全面概述,包括可再現的示例統一的數據哲學

最後,在他面向R的統計數據分析工作流中,Oliver Kirchkamp提供了關於為什麼採用和服從特定的工作流程將幫助統計人員與每個其他她,同時確保數據完整性和結果的可重複性。它還包括有關使用編織和版本控制系統的一些討論。 Stata用戶可能會發現J. Scott Long的使用Stata進行數據分析的工作流程也很有用。

幹得好!可以嗎如果您在我的博客上將其發佈在哪裡? (我的意思是,該文本為cc,所以可以,但是我想以任何方式允許您使用:))
@Tal沒問題。這並不是一個詳盡的列表,但是也許您以後可以匯總其他有用的鏈接。此外,請隨時以更好的方式進行調整或重組。
+1這是一個不錯的清單。您可能會考慮“接受這一點”,以便始終將其放在首位;鑑於它是CW,所以任何人都可以對其進行更新。
-1
我在這裡重新發布了。很棒的清單! http://www.r-statistics.com/2010/09/managing-a-statistical-analysis-project-guidelines-and-best-practices/
我會選擇Mercurial而不是Git作為版本控制工具。我發現它更易於使用,並且用戶社區並不那麼苛刻。 (在Mac上,MacHG是Mercurial的出色GUI前端。)無論使用什麼版本控制工具,GUI前端對於跟踪和管理事物都是非常有用和強大的。
@Wayne謝謝你。 Oliver Kirchkamp討論了SVN的使用。我發現自己經常將[RCS](http://www.gnu.org/software/rcs/)用於各種內容,但是我從Hg那裡聽到了很多好消息。我同意GUI是一個加號,儘管我主要從命令行和Emacs工作。 ([GitHub for Mac](http://mac.github.com/)還不錯,順便說一句。)
-1
這確實可以通過添加有關如何使用Makefile來管理數據處理和緩存的描述來完成。如果有人知道,請添加。如果沒有,我一想起來,便會盡快寫一篇。
@naught101卡爾·布羅曼(Karl Broman)在其“可再現研究工具”(http://kbroman.github.io/Tools4RR/)中提供了一些有關使用GNU工具和R的教程。
有趣-您的答案是有關代碼/文件管理的非常全面的指南。在檢查您是否真的回答了關鍵的研究問題或輸出要求方面沒有太多
Shane
2010-09-21 01:42:22 UTC
view on stackexchange narkive permalink

這沒有專門提供答案,但是您可能需要查看以下相關的stackoverflow問題:

您可能還對 John Myles White的最新作品感興趣項目以創建統計項目模板。

感謝您的鏈接!這個問題對任何統計軟件都是開放的-我不時使用Python和Stata,所以我想知道是否已確認的用戶可能會在那帶來有趣的建議。
絕對;儘管我要補充一點,以上鍊接中的建議實際上可以適用於任何統計項目(無論使用哪種語言)。
絕對可以!我同時更新了我的問題。
user88
2010-09-25 20:45:58 UTC
view on stackexchange narkive permalink

這與Shane的回答重疊,但是在我看來,有兩個主要方面:

  • 可重複性;不僅因為您不會以“某種方式”獲得結果,而且還能夠更快地重新運行分析(在其他數據上或在參數略有更改的情況下),並有更多時間考慮結果。對於海量數據,您可以先在一些小的“播放集”上測試您的想法,然後輕鬆地在整個數據上進行擴展。
  • 好的文檔 ​​strong>;在版本控制下評論腳本,一些研究期刊,更複雜項目的eventicket系統。改善可重複性,使錯誤跟踪更加容易,並且編寫最終報告也很簡單。
+1我喜歡第二點(我使用roxygen + git)。第一點使我也想到了將您的代碼交給另一位統計學家的可能性,該統計學家將能夠在項目的後期階段重現您的結果而無需任何幫助。
重現性?無論如何,數據都有隨機錯誤,所以誰在乎。文檔?有兩個可能的答案:1)我們太忙了,我們沒有時間記錄文檔,或者2)我們只有預算來進行分析或記錄,因此我們選擇進行分析。你以為我在開玩笑嗎?我曾在很多場合看到/聽到過這些態度-在那些生活lives可危的項目中。
Carlos Accioly
2010-09-21 08:00:48 UTC
view on stackexchange narkive permalink

van Belle是成功統計項目規則的來源。

Wes McCardle
2010-10-01 05:58:05 UTC
view on stackexchange narkive permalink

只有我的2美分。我發現Notepad ++對此很有用。我可以為每個項目維護單獨的腳本(程序控制,數據格式等)和一個.​​pad文件。 .pad文件調用是與該項目關聯的所有腳本。

您的意思是,使用npptor的notepad ++ :)
Christian Sauer
2014-04-09 14:58:39 UTC
view on stackexchange narkive permalink

雖然其他答案很好,但我要補充一點看法:避免使用SPSS。我用SPSS做碩士論文,現在從事市場研究工作。

在使用SPSS時,開發有組織的統計代碼非常困難,因為SPSS不好處理多個文件(當然,您可以處理多個文件,但並不像R那樣痛苦) ),因為您無法將數據集存儲到變量中-您必須使用“數據集激活x”-代碼,這很麻煩。另外,語法笨拙,並且鼓勵使用簡寫形式,這使得代碼更加難以閱讀。

hugke729
2018-06-09 09:04:29 UTC
view on stackexchange narkive permalink

與R / Python / Matlab / etc一起使用的Jupyter Notebooks消除了記住哪個腳本生成特定圖形的麻煩。這篇文章描述了一種使代碼和圖形彼此並排的整潔方法。將論文或論文章節的所有數據都保存在一個筆記本中,可以很容易地找到相關代碼。

實際上更好,因為您可以滾動瀏覽多個圖來查找所需的圖。該代碼將一直隱藏,直到需要它為止。



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