통계 분석 프로젝트를 효율적으로 관리하는 방법은 무엇입니까?


89

우리는 종종 컴퓨터 과학에서 프로젝트 관리 및 디자인 패턴에 대해 들지만 통계 분석에서는 덜 자주합니다. 그러나 효과적이고 내구성있는 통계 프로젝트를 설계하기위한 결정적인 단계는 일을 체계적으로 유지하는 것입니다.

필자는 종종 별도의 폴더 (원시 데이터 파일, 변환 된 데이터 파일, R 스크립트, 그림, 메모 등)에서 R과 일관된 파일 구성을 사용하도록 권장합니다. 이 접근 방식의 주된 이유는 나중에 분석을 실행하기가 더 쉬울 수 있기 때문입니다 (예를 들어 주어진 플롯을 생성하는 방법을 잊었을 때).

무엇 있습니다 통계 프로젝트 관리를위한 모범 사례 , 또는 권고 당신은 당신의 자신의 경험을주고 싶습니다? 물론 이것은 모든 통계 소프트웨어에 적용됩니다. ( 게시물 당 하나의 답변을 부탁드립니다 )


프로젝트 관리에 관한 주제이기 때문에이 질문을
논외

2
@ Aksakal : 나는 당신이 약간 가혹하다고 생각합니다. :) " 통계에 관심이있는 사람들 "과 관련이 있습니다. 또한 70 개 이상의 투표는 표준 사용자가이 질문에 관심이 있고 유용하다고 제안했습니다.
usεr11852

1
나는 이것이 여기서 주제에 대해 고려해야한다고 생각합니다.
gung

@gung 우리가 토론 할 수 있도록 메타 스레드에 대한 답변을 추가하고 싶습니까?
amoeba

답변:


80

SO (@Shane에서 제안한대로), Biostar (이후 BS) 및이 SE 에서 찾은 일련의 간단한 지침을 작성 하고 있습니다. 각 항목의 소유권을 인정하고 첫 번째 또는 고도로 찬성 된 답변을 선택하기 위해 최선을 다했습니다. 또한 나만의 것들을 추가하고 [R] 환경에 특정한 항목을 표시했습니다.

자료 관리

  • 모든 것을 올바른 장소에 보관하기위한 프로젝트 구조를 만듭니다 (데이터, 코드, 그림 등, giovanni / BS)
  • 원시 데이터 파일을 수정하지 마십시오 (이상적으로는 읽기 전용이어야 함). 변형, 정리 등을 수행 할 때 새 파일로 복사 / 이름 바꾸기
  • 데이터 일관성 확인 ( whuber / SE)
  • GNU make ( Karl Broman / Zachary Jones ) 와 같은 빌드 자동화 도구를 사용하여 스크립트 종속성 및 데이터 흐름 관리

코딩

분석

  • RNG 또는 확률 적 알고리즘 (예 : k- 평균)을 호출 할 때 사용한 시드를 설정 / 기록하는 것을 잊지 마십시오
  • Monte Carlo 연구의 경우 스펙 / 매개 변수를 별도의 파일에 저장하는 것이 흥미로울 수 있습니다 ( 수마트라 는 훌륭한 후보 일 수 있습니다. giovanni / BS).
  • 변수 당 하나의 플롯으로 제한하지 말고 다변량 (Trellis) 디스플레이 및 대화 형 시각화 도구 (예 : GGobi)를 사용하십시오.

버전 관리

  • Git ( Sharpie / VonC / JD Long / SO)과 같은 추적 / 내보내기를 위해 일종의 개정 관리 를 사용하십시오.
  • 정기적으로 모든 것을 백업하십시오 ( Sharpie / JD Long / SO)
  • 아이디어를 기록하거나 ditz ( giovanni / BS) 와 같은 이슈 트래커를 사용하십시오 .Git 에서 사용할 수 있기 때문에 이전 항목과 부분적으로 중복됩니다.

편집 /보고

부수적으로 Hadley Wickham은 재현 가능한 예시통합 된 데이터 철학을 포함하여 R 프로젝트 관리에 대한 포괄적 인 개요를 제공합니다 .

마지막으로 통계 데이터 분석의 R 중심 워크 플로우에서 Oliver Kirchkamp는 특정 워크 플로우를 채택하고 준수하는 것이 통계 학자들이 서로 협력하면서 데이터 무결성과 결과의 재현성을 보장하는 데 도움이되는 이유에 대한 매우 상세한 개요를 제공합니다. 직조 및 버전 제어 시스템 사용에 대한 논의가 추가로 포함됩니다. Stata 사용자는 J. Scott Long의 Stata를 사용한 데이터 분석 워크 플로 도 유용 할 수 있습니다.


잘 했어! 내 블로그에 게시 할 위치를 지정해도 괜찮습니까? 건배, 탈 (내 말은, :)이 텍스트는 CC, 그래서 수,하지만 난 당신의 허가 어떤 방법을 원)
탈 Galili 한

@Tal 문제 없습니다. 전체 목록과는 거리가 멀지 만 나중에 다른 유용한 링크를 모을 수 있습니다. 또한 더 나은 방식으로 자유롭게 적응하거나 재구성하십시오.
chl

+1 멋진 목록입니다. "이를 받아들이는"것을 고려하여 항상 맨 위에 오도록 할 수 있습니다. CW이기 때문에 누구나 업데이트 할 수 있습니다.
셰인

@Shane 글쎄, 매우 유용한 링크가있는 첫 번째 답변을 제공 한 것에 대해 귀하에게 빚을졌습니다. 원하는 방식으로 자유롭게 추가 / 수정하십시오.
chl

나는 그것을 여기에 다시 출판했다. 훌륭한 목록! r-statistics.com/2010/09/…
Tal Galili

21

링크 주셔서 감사합니다! 이 질문은 모든 통계 소프트웨어에 공개됩니다. 때때로 Python과 Stata를 사용하므로 확인 된 사용자가 흥미로운 추천을받을 수 있는지 궁금합니다.
chl

물론; 위 링크의 권장 사항은 언어에 관계없이 모든 통계 프로젝트에 실제로 적용될 수 있다고 덧붙입니다.
셰인

분명하게 예입니다! 내 질문을 동시에 업데이트했습니다.
chl

8

이것은 Shane의 답변과 겹치지 만 두 가지 주요 교각이 있습니다.

  • 재현성 ; "어떻게"만들어진 결과로 끝날뿐만 아니라 분석을 더 빠르게 (다른 데이터에서 또는 약간 변경된 매개 변수로) 다시 실행할 수 있고 결과에 대해 생각할 시간이 더 많기 때문입니다. 거대한 데이터의 경우 먼저 작은 "플레이 셋"에서 아이디어를 테스트 한 다음 전체 데이터를 쉽게 확장 할 수 있습니다.
  • 좋은 문서 ; 버전 관리 하의 스크립트, 일부 연구 일지, 심지어 복잡한 프로젝트를위한 티켓 시스템까지 주석 처리했습니다. 재현성 향상, 오류 추적 용이 및 최종 보고서 작성이 간단합니다.

+1 두 번째 점이 마음에 듭니다 (Roxygen + git 사용). 첫 번째 요점은 프로젝트의 나중 단계에서 아무런 도움없이 결과를 재현 할 수있는 다른 통계 학자에게 코드를 제공 할 수있는 가능성을 생각하게합니다.
chl

재현성? 어쨌든 데이터에 임의의 오류가 있으므로 누가 신경 써야합니까. 문서? 두 가지 가능한 답변 : 1) 너무 바빠서 문서화 할 시간이 없거나 2) 분석 또는 문서화를위한 예산 만 있었으므로 분석을 선택했습니다. 내가 농담하는 것 같아? 나는 많은 사람들이 삶이 진행되는 프로젝트에서 이러한 태도를 보았거나 들었습니다.
Mark L. Stone


1

그냥 내 2 센트. 메모장 ++이 이것에 유용하다는 것을 알았습니다. 각 프로젝트마다 별도의 스크립트 (프로그램 제어, 데이터 형식 등)와 .pad 파일을 유지할 수 있습니다. .pad 파일 호출은 해당 프로젝트와 관련된 모든 스크립트입니다.


3
당신은 npptor를 사용하여 notepad ++를 의미합니다 :)
Tal Galili

1

다른 답변은 훌륭하지만 SPSS 사용을 피하십시오. 저는 석사 논문에 SPSS를 사용했으며 이제는 시장 조사에서 정기적으로 일하고 있습니다.

SPSS로 작업하는 동안 SPSS가 여러 파일을 처리하는 데 좋지 않기 때문에 (정확하게는 여러 파일을 처리 할 수 ​​있지만 R만큼 고통 스럽지는 않습니다) 데이터 세트를 저장할 수 없기 때문에 체계적인 통계 코드를 개발하는 것은 매우 어렵습니다. 변수에- "dataset activate x"-코드를 사용해야합니다. 또한 구문이 어수선하고 속기 (shorthands)를 장려하므로 코드를 더 읽을 수 없게 만듭니다.


0

R / Python / Matlab / etc와 함께 작동하는 Jupyter Notebook은 특정 그림을 생성하는 스크립트를 기억해야하는 번거 로움을 제거합니다. 이 포스트 는 코드와 그림을 서로 바로 옆에 유지하는 깔끔한 방법을 설명합니다. 논문 또는 논문 장의 모든 그림을 하나의 노트에 보관하면 아스키 코드를 쉽게 찾을 수 있습니다.

사실, 수십 개의 인물을 스크롤하여 원하는 것을 찾을 수 있기 때문에 더 좋습니다. 코드는 필요할 때까지 숨겨져 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.