귀중한 통계 분석 오픈 소스 프로젝트는 무엇입니까?


69

현재 이용 가능한 귀중한 통계 분석 오픈 소스 프로젝트는 무엇입니까?

편집 : Sharpie가 지적한 것처럼 귀중한 것은 일을 더 빠르고 저렴하게 수행하는 데 도움이 될 수 있습니다.


5
논쟁적이고 주관적인 포스터 아이가 될 수 있습니다. 최소한 '가치있는'을 정의해야합니다.
Sharpie

2
어쩌면 각 프로젝트의 "가치있는"것이 아니라 "프로"와 "콘"에 초점을 두어야합니까?
사자

또는 "어떻게 X가 Y를 더 빨리 / 싸게하고 구취를 유발하는 세균을 죽이는 데 도움이 되는가?"
Sharpie

답변:


88

R- 프로젝트

http://www.r-project.org/

R은 빅 박스 패키지에 대한 최초의 널리 알려진 오픈 소스 대안 이었기 때문에 가치 있고 중요합니다. 그것은 많은 과학계에서 성숙하고 잘 지원되며 표준입니다.


예, R은 훌륭하지만 WHY는 '가치가 있습니다'.
Sharpie

11
그것은 성숙하고, 잘 지원되며, 특정 과학 공동체 (예 : AI 부서에서 인기있는) 내에서 표준입니다
Menno

10
확장 성이 뛰어나서 수행 할 수없는 통계 기법이 없습니다.
aL3xa

20

파이썬에서 다양한 MCMC 작업을 수행하기 위해 PyMC 가 있습니다 .PyMC 는 꽤 많이 사용되었습니다. PyMC에서는 할 수없는 버그로 할 수있는 일을 겪지 않았으며 모델을 지정하고 데이터를 가져 오는 방식이 훨씬 직관적 인 것 같습니다.


18

이것은 망각으로 떨어질 수 있지만, 나는 행복하게 Matlab 클론 옥타브 를 오랫동안 사용했습니다. 이 R. 비하면 정말 왜소 분명하지만 등 다양한 분포, 통계적 테스트에서 확률 변수의 생성 옥타브 대장간에서 상당히 좋은 도서관이있다 R을 통해 한 가지 장점은 matlab에 / 옥타브는 점이다 공용어 수치 분석, 최적화 연구자들 사이가 , 응용 수학자의 일부 하위 집합 (적어도 학교에있을 때는)은 내 부서의 아무도 내 지식에 R. 내 손실을 사용하지 않았습니다. 가능하면 둘 다 배우십시오!


4
진정한 의견. 그러나 숙련 된 프로그래머로서 Matlab / Octave를 사용할 때마다 끔찍한 느낌을줍니다. Matlab / Octave는 끔찍하게 디자인 된 언어입니다. 물론, 나는 또한 펀치 카드를 위해 설계된 SAS를 부르짖 었습니다.
Wayne

1
@ 웨인은 충분히 사실입니다. Bob Harper가 Matlab 언어를 '의도적으로 용의자'라고 언급 한 것을 들었을 때가 기억납니다.) 많은 언어와 마찬가지로, 일단 당신이 그 언어를 충분히 사용하면, 당신은 그 이상한 것에 대처하는 법을 배웁니다.
shabbychef

17

두 가지 프로젝트가 떠오른다.

  1. 버그 -베이지안 통계에서 고통을 빼앗아갔습니다. 이를 통해 사용자는 모델에 더 집중하고 MCMC에 약간 덜 집중할 수 있습니다.
  2. 바이오 컨덕터 -아마도 생물 정보학에서 가장 널리 사용되는 통계 도구입니다. 나는 그것이 R 저장소라는 것을 알고 있지만 Bioconductor를 위해 R을 배우고 싶어하는 많은 사람들이 있습니다. 최첨단 분석에 사용할 수있는 패키지 수는 타의 추종을 불허합니다.

1
Andrew Gelman에는 Bugs를 R에 연결하는 멋진 R 라이브러리가 있습니다.
bshor

4
나는 "생물 정보학에서 가장 인기있는 통계 도구"라고 말하고 싶다. 마이크로 어레이 분석을하는 생물 정보 학자들은 그것을 광범위하게 사용한다. 그러나 생물 정보학은 그것에 국한되지 않습니다;)
Nicojo

15

데이터 마이닝을위한 Weka -Java의 많은 분류 및 클러스터링 알고리즘이 포함되어 있습니다.


이것의 성능은 어떻습니까? ( 'Java'라는 단어를 볼 때마다 비명을 지르고 있습니다 ...)
shabbychef

@shabbychef 내가 들었던 것에서 꽤 좋아 보이지만 일반적으로 Weka는 여러 알고리즘을 테스트하고 주어진 데이터 세트 (또는 그 하위 세트)에 대한 성능을 보는 첫 번째 단계로 사용 된 다음 핵심 프로그램의 일부를 때로는 C 또는 Python에서 효율성을 최적화합니다 (예 : 교차 검증 또는 부트 스트랩을 요구하는 고차원 데이터).
chl

2
@ shabbychef : Java 프로그램은 느린 괴물 일 필요는 없습니다. 잘 작성된 C 코드는 Java에서 비슷한 구현보다 거의 항상 빠를 것이지만 잘 작성된 Java 코드는 매우 느리지 않을 것입니다. 또한 Java로 개발하면 많은 장점이 있습니다.
posdef


14

Incanter 는 통계 컴퓨팅 및 그래픽을위한 Clojure 기반의 R 형 플랫폼 (환경 + 라이브러리)입니다.


다시 왜? 사장님이 Excel을 통해 이것을 사용하도록 어떻게 설득합니까?
Sharpie



14

FSF가 시작하거나 GNU General Public License에 따라 재배포 된 프로젝트는 다음과 같습니다.

  • SPSS의 무료 대안을 목표로하는 PSPP
  • 주로 회귀 및 계량 경제학에 전념하는 GRETL

JMulTi 와 같은 교과서 용 보조 소프트웨어로 출시 된 응용 프로그램도 있지만 여전히 소수의 사람들이 사용하고 있습니다.

Lisp가 R에 의해 대체되었지만 여전히 xlispstat로 계속 놀고 있습니다 ( Journal of Statistical Software의 Lisp vs. R 에 대한 Jan de Leeuw의 개요 참조 ). 흥미롭게도 R 언어의 공동 창립자 중 한 명인 Ross Ihaka는 통계 소프트웨어의 미래가 반대라고 주장했습니다. Lisp : 미래로 돌아 가기 : 통계 컴퓨팅 시스템의 기반으로서 Lisp . @Alex는 이미 Clojure 기반 통계 환경 Incanter를 지적 했으므로 가까운 시일 내에 Lisp 기반 소프트웨어의 부활을 볼 수 있을까요? :-)



9

우선, 제가 생각하기에 지금까지 가장 좋은 도구는 R인데, 여기에는 수많은 라이브러리와 유틸리티가 있습니다.

weka에 대한 토론을 확장하겠습니다

R에 쉽게 설치할 수있는 RWeka라는 R 용 라이브러리가 있으며이 훌륭한 프로그램의 많은 기능과 R의 기능을 함께 사용할 수 있습니다. 간단한 의사 결정 트리를 수행하기위한 코드 예제를 제공하겠습니다. 이 패키지와 함께 제공되는 표준 데이터베이스에서 읽습니다 (결과 트리를 그리는 것도 매우 쉽지만 RWeka 문서에있는이를 수행하는 방법에 대한 연구를 할 것입니다).

library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)

이 작업을 수행하기위한 몇 가지 파이썬 라이브러리도 있습니다 (파이썬은 매우 배우기 매우 쉽습니다)

먼저 사용할 수있는 패키지를 열거하겠습니다. 자세한 내용은 다루지 않겠습니다. Weka (예, Python 용 라이브러리가 있음), NLKT (데이터 마이닝 외에도 텍스트 마이닝을위한 가장 유명한 오픈 소스 패키지), statPy , sickits 및 scipy.

또한 오렌지가 우수합니다 (나중에 이야기 할 것입니다) .cmpart1 테이블의 데이터에서 트리를 수행하는 코드 예제는 10 배 유효성 검사를 수행하며 트리를 그래프로 표시 할 수도 있습니다

import orange, orngMySQL, orngTree

data = orange.ExampleTable("c:\\python26\\orange\\cmpart1.tab")

domain=data.domain
n=10
buck=len(data)/n
l2=[]
for i in range(n):
    tmp=[]
    if i==n-1:
        tmp=data[n*buck:]
    else:
        tmp=data[buck*i:buck*(i+1)]
    l2.append(tmp)

train=[]
test=[]
di={'yy':0,'yn':0,'ny':0,'nn':0}
for i in range(n):
    train=[]
    test=[]
    for j in range(n):
        if j==i:
            test=l2[i]
        else:
            train.extend(l2[j])
    print "-----"
    trai=orange.Example(domain, train)
    tree = orngTree.TreeLearner(train)
    for ins in test:
        d1= ins.getclass()
        d2=tree(ins)
        print d1
        print d2
        ind=str(d1)+str(d2)
        di[ind]=di[ind]+1
print di

다른 패키지로 끝내기 위해 사용하고 흥미로운 것을 발견했습니다.

주황색 : 초보자 및 전문가를위한 데이터 시각화 및 분석 비주얼 프로그래밍 또는 Python 스크립팅을 통한 데이터 마이닝. 기계 학습을위한 구성 요소. 생물 정보학 및 텍스트 마이닝을위한 확장. (나는 개인적으로 이것을 추천하고, 그것을 파이썬에 통합하는 데 많이 사용했으며 우수했습니다.) 원하는 경우 파이썬 코드를 보낼 수 있습니다.

ROSETTA : 거친 집합 이론의 틀 내에서 테이블 형식 데이터를 분석하기위한 툴킷. ROSETTA는 전체 데이터 마이닝 및 지식 발견 프로세스를 지원하도록 설계되었습니다. 데이터의 초기 탐색 및 사전 처리에서 최소 속성 세트 계산 및 if-then 규칙 또는 설명 패턴 생성을 통해 유도 된 규칙 또는 패턴의 유효성 검증 및 분석에 이르기까지 . (이것은 또한 매우 많이 사용하는 것을 즐겼습니다)

KEEL : 회귀, 분류, 클러스터링, 패턴 마이닝 등 데이터 마이닝 문제에 대한 진화 알고리즘을 평가합니다. 이를 통해 비교를위한 통계 테스트 모듈을 포함하여 기존 학습 모델과 비교하여 모든 학습 모델을 완벽하게 분석 할 수 있습니다.

DataPlot : 과학적 시각화, 통계 분석 및 비선형 모델링 용. 대상 Dataplot 사용자는 과학 및 엔지니어링 프로세스의 특성화, 모델링, 시각화, 분석, 모니터링 및 최적화에 종사하는 연구원 및 분석가입니다.

Openstats : 통계 및 측정 입문서, 설명 통계, 단순 비교, 분산 분석, 상관 관계, 다중 회귀 분석, 중단 된 시계열, 다변량 통계, 비모수 통계, 측정, 통계적 프로세스 제어, 재무 절차, 신경망, 시뮬레이션


8

Colin Gillespie는 BUGS를 언급했지만 Gibbs Sampling 등에 대한 더 나은 옵션은 JAGS 입니다.

ARIMA 뿐이라면 X12-ARIMA를 능가 할 수 없습니다. X12-ARIMA 는 현장 및 오픈 소스의 금본위 제입니다. 실제 그래프는 수행하지 않지만 (R을 사용하여 수행) 진단은 자체적으로 교훈입니다.

내가 최근에 발견하고 방금 배우기 시작한 것에 조금 더 멀어 지다가 ...

ADMC (AD Model Builder) : MCMC와 몇 가지 다른 기능을 사용하여 AUTODIF 라이브러리를 기반으로하는 비선형 모델링을 수행합니다.이 모델은 모델을 C ++ 실행 파일로 사전 처리 및 컴파일 한 후 독립형 앱으로 컴파일합니다. R, MATLAB 등에서 구현 된 동등한 모델보다 훨씬 빠릅니다. ADMB 프로젝트

그것은 수산 세계에서 시작되어 여전히 인기가 있지만 다른 목적으로는 상당히 흥미로워 보입니다. R의 그래프 또는 기타 기능이 없으며 R과 함께 사용될 가능성이 높습니다.

GUI에서 Bayesian Networks와 함께 작업하려는 경우 SamIam 은 훌륭한 도구입니다. R은 이것을 수행하는 몇 가지 패키지를 가지고 있지만 SamIam은 매우 좋습니다.



7

정말 작업을 즐길 수 RooFit 신호와 배경 분포하고 쉽게 적절한 피팅을위한 TMVA 분석하고 몇 가지 표준 도구 (유전자 알고리즘과 신경망처럼, 또한 BDTs을한다)과 다변량 문제의 모델링 빠른 주성분합니다. 둘 다 ROOT C ++ 라이브러리 의 일부 이지만 입자 물리 문제에 대해 상당히 큰 편견이 있습니다.


7

이미 언급 한 것 외에 몇 가지 더 :

  • 데이터 마이닝을위한 R, Python 및 Weka 통합 확장 기능과 함께 KNIME
  • 빠른 EDA를위한 몬드리안

그리고 공간적인 관점에서 :

  • 공간 데이터의 공간 EDA 및 클러스터링을위한 GeoDa
  • 포인트 데이터 클러스터링을위한 SaTScan

3
참고로 GeoDa와 SatScan은 오픈 소스가 아니며 프리웨어입니다 (나에게 큰 차이는 없습니다!)
Andy W

1
GeoDa 센터로 pySal 오픈 소스 (아래 참조)
b_dev


4

이는 '통계 분석'의 외부 한계에 해당하지만 Eureqa 는 유전자 프로그래밍을 통해 데이터에서 데이터 마이닝 비선형 관계에 대한 매우 사용자 친화적 인 프로그램입니다. Eureqa는 일반적인 목적은 아니지만 상당히 잘 작동하며 GUI는 매우 직관적입니다. 또한 eureqa 서버를 통해 사용 가능한 컴퓨팅 성능을 활용할 수 있습니다.


3

Meta.Numerics 는 통계 분석을 잘 지원하는 .NET 라이브러리입니다.

R (S 클론) 및 Octave (Matlab 클론)와 달리 "프론트 엔드"가 없습니다. 통계 분석을 수행해야하는 자체 애플리케이션을 작성할 때 링크하는 라이브러리라는 점에서 GSL과 유사합니다. C # 및 Visual Basic은 업무용 앱의 경우 C / C ++보다 일반적인 프로그래밍 언어이며 Meta.Numerics는 GSL보다 통계적 구성 및 테스트에 대한 광범위한 지원을 제공합니다.



3

상징적 수학 소프트웨어도 통계를 잘 지원할 수 있습니다. 다음은 때때로 사용하는 몇 가지 GPL입니다.

  1. sympy 는 파이썬 기반이며 매우 작지만 미분, 적분, 기호 합, 조합, 계열 확장, 텐서 조작 등 많은 것을 할 수 있습니다. R에서 호출하는 R 패키지가 있습니다.
  2. 샐비어 는 파이썬 기반이며 거대합니다! sympy가 원하는 것을 할 수 없다면, sage를 시도하십시오 (그러나 기본 Windows 버전은 없습니다).
  3. maxima 는 lisp 기반이며 매우 고전적이며 중간 크기는 (1)과 (2)입니다.

세 가지 모두 적극적으로 개발 중입니다.

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