Project-Management
如何高效管理一個統計分析項目?
我們經常聽到計算機科學中的項目管理和設計模式,但在統計分析中卻很少聽到。然而,設計一個有效和持久的統計項目的決定性步驟似乎是讓事情井井有條。
我經常提倡使用 R 並在不同的文件夾中統一組織文件(原始數據文件、轉換後的數據文件、R 腳本、圖形、註釋等)。這種方法的主要原因是以後運行分析可能更容易(例如,當您忘記如何碰巧生成給定圖時)。
統計項目管理的最佳實踐是什麼,或者您想根據自己的經驗給出哪些建議?當然,這適用於任何統計軟件。(每個帖子一個答案,請)
我正在編譯我在SO(@Shane 建議)、Biostar(以下簡稱 BS)和這個 SE上找到的一系列快速指南。我盡力確認每個項目的所有權,並選擇第一個或高度贊成的答案。我還添加了我自己的東西,並標記了特定於 [R] 環境的項目。
數據管理
- 創建一個項目結構,將所有東西放在正確的位置(數據、代碼、圖形等,giovanni / BS)
- 切勿修改原始數據文件(理想情況下,它們應該是只讀的),在進行轉換、清理等時復制/重命名為新文件。
- 檢查數據一致性(whuber /SE)
- 使用構建自動化工具管理腳本依賴項和數據流,例如 GNU make ( Karl Broman / Zachary Jones )
編碼
- 以邏輯單元或構建塊組織源代碼(Josh Reich / hadley / ars /SO; giovanni / Khader Shameer /BS)
- 將源代碼與編輯內容分開,特別是對於大型項目——部分與以前的項目和報告重疊
- 記錄所有內容,例如 [R]oxygen ( Shane /SO) 或源文件中的一致自註釋——關於 Medstats、記錄分析和數據編輯選項的良好討論
- [R] 自定義函數可以放在專用文件中(必要時可以獲取)、新環境中(以避免填充頂級命名空間,Brendan OConnor /SO)或包(Dirk Eddelbuettel /肖恩/SO)
分析
- 不要忘記設置/記錄您在調用 RNG 或隨機算法(例如 k-means)時使用的種子
- 對於蒙特卡羅研究,將規格/參數存儲在單獨的文件中可能會很有趣(蘇門答臘可能是一個很好的候選者,giovanni / BS)
- 不要將自己限制在每個變量一個圖上,使用多變量(Trellis)顯示和交互式可視化工具(例如 GGobi)
版本控制
- 使用某種版本控制來輕鬆跟踪/導出,例如 Git(Sharpie / VonC / JD Long /SO)——這源於@Jeromy 和@Tal 提出的好問題
- 定期備份所有內容(Sharpie / JD Long /SO)
- 記錄你的想法,或者依賴問題跟踪器,比如ditz ( giovanni /BS)——因為它在 Git 中可用,所以與上一個項目部分冗餘
編輯/報告
- [R] Sweave ( Matt Parker /SO) 或更現代的knitr
- [R] 釀造 ( Shane /SO)
- [R] R2HTML或ascii
作為旁注,Hadley Wickham 提供了R 項目管理的全面概述,包括可重複的示例和統一的數據哲學。
最後,在他的面向 R的統計數據分析工作流程中, Oliver Kirchkamp 提供了一個非常詳細的概述,說明為什麼採用和遵守特定的工作流程將有助於統計學家相互協作,同時確保數據的完整性和結果的可重複性。它還包括一些關於使用編織和版本控制系統的討論。Stata 用戶可能會發現 J. Scott Long 的The Workflow of Data Analysis Using Stata也很有用。