Một số dự án phân tích thống kê có giá trị là gì?


69

Một số dự án phân tích thống kê có giá trị hiện có là gì?

Chỉnh sửa: như được chỉ ra bởi Sharpie, có giá trị có thể có nghĩa là giúp bạn hoàn thành công việc nhanh hơn hoặc rẻ hơn.


5
Có thể là một đứa trẻ áp phích cho tranh luận và chủ quan. Ít nhất, cần xác định 'có giá trị'.
Sharpie

2
Có lẽ trọng tâm không nên tập trung vào "giá trị" mà là "ưu điểm" và "nhược điểm" của từng dự án?
Một con sư tử

Hoặc thậm chí có thể "Làm thế nào X sẽ giúp bạn hoàn thành Y nhanh hơn / rẻ hơn và tiêu diệt vi trùng gây hôi miệng".
Sharpie

Câu trả lời:


88

Dự án R

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

R có giá trị và có ý nghĩa bởi vì đây là sự thay thế Nguồn mở được chấp nhận rộng rãi đầu tiên cho các gói lớn. Đó là sự trưởng thành, được hỗ trợ tốt và là một tiêu chuẩn trong nhiều cộng đồng khoa học.


Vâng, R là tốt đẹp- nhưng TẠI SAO nó là 'có giá trị'.
Sharpie

11
Nó trưởng thành, được hỗ trợ tốt và là một tiêu chuẩn trong các cộng đồng khoa học nhất định (ví dụ: phổ biến trong bộ phận AI của chúng tôi)
Menno

10
Nó có thể mở rộng và không có kỹ thuật thống kê nào không thể thực hiện được trong đó.
aL3xa

20

Để thực hiện một loạt các nhiệm vụ MCMC trong Python, có PyMC , mà tôi đã sử dụng khá nhiều. Tôi đã không chạy qua bất cứ điều gì tôi có thể làm trong BUGS mà tôi không thể làm ở PyMC và cách bạn chỉ định mô hình và đưa dữ liệu dường như trực quan hơn rất nhiều đối với tôi.


18

Điều này có thể bị bỏ rơi vào quên lãng, nhưng tôi vui vẻ sử dụng bản sao Matlab Octave trong nhiều năm. Có những thư viện khá tốt trong việc rèn quãng tám để tạo ra các biến ngẫu nhiên từ các phân phối khác nhau, kiểm tra thống kê, v.v., mặc dù rõ ràng nó bị lấn át bởi R. Một lợi thế có thể có của R là Matlab / octave là ngôn ngữ của các nhà phân tích số, nhà nghiên cứu tối ưu hóa và một số tập hợp con của các nhà toán học ứng dụng (ít nhất là khi tôi còn đi học), trong khi không ai trong khoa của tôi, theo hiểu biết của tôi, đã sử dụng R. sự mất mát của tôi. học cả nếu có thể!


4
Nhận xét đúng. Nhưng là một lập trình viên có kinh nghiệm, tôi cảm thấy bẩn mỗi khi tôi sử dụng Matlab / Octave, đây là một ngôn ngữ được thiết kế khủng khiếp (nếu nó được thiết kế hoàn toàn). Tất nhiên, tôi cũng co rúm người ở SAS, rõ ràng là được thiết kế cho các thẻ đục lỗ.
Wayne

1
@Wayne đủ đúng. Tôi nhớ lại một lần khi nghe Bob Harper gọi ngôn ngữ Matlab là 'nghi ngờ về ngữ nghĩa';) Cũng như nhiều ngôn ngữ, mặc dù, khi bạn sử dụng nó đủ, bạn học cách đối phó với những điều kỳ lạ của nó.
shabbychef

17

Hai dự án nảy ra trong đầu:

  1. Lỗi - lấy (một số) nỗi đau trong số liệu thống kê Bayes. Nó cho phép người dùng tập trung nhiều hơn vào mô hình và ít hơn một chút về MCMC.
  2. Bioconductor - có lẽ là công cụ thống kê phổ biến nhất trong Tin sinh học. Tôi biết đó là kho lưu trữ R, nhưng có một số lượng lớn người muốn học R, chỉ dành cho Bioconductor. Số lượng các gói có sẵn để phân tích tiên tiến, làm cho nó đứng thứ hai.

1
Andrew Gelman có một thư viện R đẹp mắt liên kết Bugs với R.
bshor

4
Tôi muốn nói lại rằng "công cụ thống kê phổ biến nhất trong tin sinh học" ... Các nhà sinh học thực hiện phân tích microarray sử dụng nó rộng rãi, vâng. Nhưng tin sinh học không giới hạn ở điều đó;)
Nicojo

15

Weka để khai thác dữ liệu - chứa nhiều thuật toán phân loại và phân cụm trong Java.


hiệu suất của việc này thế nào? (Tôi chạy la hét bất cứ khi nào tôi thấy từ 'Java' ...)
shabbychef

@shabbychef Có vẻ khá tốt từ những gì tôi đã nghe, nhưng nói chung Weka được sử dụng như bước đầu tiên để kiểm tra một số thuật toán và xem hiệu suất của chúng trên các tập dữ liệu đã cho (hoặc một tập hợp con của nó), sau đó một phần mã hóa lại chương trình cốt lõi để tối ưu hóa hiệu quả của nó (ví dụ với việc gọi dữ liệu chiều cao để xác thực chéo hoặc bootstraping), đôi khi bằng C hoặc Python.
chl

2
@shabbychef: Các chương trình Java không phải là một con quái vật chậm. Tôi thừa nhận rằng mã C được viết tốt hầu như sẽ luôn nhanh hơn so với triển khai tương tự trong Java nhưng mã Java được viết tốt rất có thể sẽ không quá chậm. Cộng với việc phát triển trong Java có nhiều lợi thế đáng kể.
posdef


14

Incanter là một nền tảng giống như R, dựa trên Clojure (môi trường + thư viện) để tính toán và đồ họa thống kê.


Một lần nữa- tại sao? Làm thế nào tôi có thể thuyết phục ông chủ của tôi sử dụng điều này hơn, nói, Excel.
Sharpie



14

Cũng có những dự án do FSF khởi xướng hoặc phân phối lại theo Giấy phép Công cộng GNU, như:

  • PSPP , nhằm mục đích thay thế miễn phí cho SPSS
  • GRETL , chủ yếu dành riêng cho hồi quy và toán kinh tế

Thậm chí có những ứng dụng được phát hành giống như một phần mềm đồng hành cho sách giáo khoa, như JMulTi , nhưng vẫn được ít người sử dụng.

Thỉnh thoảng tôi vẫn chơi với xlispstat , mặc dù Lisp đã được thay thế phần lớn bởi R (xem tổng quan của Jan de Leeuw về Lisp so với R trong Tạp chí Phần mềm Thống kê ). Thật thú vị, một trong những người đồng sáng lập ngôn ngữ R, Ross Ihaka, đã lập luận ngược lại rằng tương lai của phần mềm thống kê là ... Lisp: Back to the Future: Lisp làm cơ sở cho hệ thống tính toán thống kê . @Alex đã chỉ ra môi trường thống kê dựa trên Clojure Incanter , vì vậy có lẽ chúng ta sẽ thấy sự hồi sinh của phần mềm dựa trên Lisp trong tương lai gần? :-)



9

Trước hết, để tôi nói với bạn rằng theo tôi, công cụ tốt nhất từ ​​trước đến nay là R, nơi có hàng tấn thư viện và tiện ích tôi sẽ không liệt kê ở đây.

Hãy để tôi mở rộng cuộc thảo luận về weka

Có một thư viện cho R, được gọi là Rweka, bạn có thể dễ dàng cài đặt trong R và sử dụng nhiều chức năng từ chương trình tuyệt vời này cùng với các chức năng trong R, hãy để tôi đưa cho bạn một ví dụ mã để thực hiện một cây quyết định đơn giản đọc từ cơ sở dữ liệu tiêu chuẩn đi kèm với gói này (việc vẽ cây kết quả cũng rất dễ dàng nhưng tôi sẽ cho phép bạn thực hiện nghiên cứu về cách thực hiện, trong tài liệu Rweka:

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

Ngoài ra còn có một số thư viện python để làm điều này (python rất rất dễ học)

Đầu tiên hãy để tôi liệt kê các gói bạn có thể sử dụng, tôi sẽ không đi chi tiết về chúng; Weka (vâng, bạn có một thư viện cho python), NLKT (gói mã nguồn mở nổi tiếng nhất để soạn thảo văn bản bên cạnh datamining), statPy , bệnh và scipy.

Ngoài ra còn có màu cam rất xuất sắc (tôi cũng sẽ nói về nó sau), đây là một ví dụ mã để thực hiện một cây từ dữ liệu trong bảng cmpart1, cũng thực hiện xác thực 10 lần, bạn cũng có thể vẽ biểu đồ cây

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

Để kết thúc với một số gói khác tôi đã sử dụng và thấy thú vị

Orange : trực quan hóa và phân tích dữ liệu cho người mới và các chuyên gia. Khai thác dữ liệu thông qua lập trình trực quan hoặc kịch bản Python. Linh kiện cho máy học. Phần mở rộng cho tin sinh học và khai thác văn bản. (Cá nhân tôi khuyên bạn nên điều này, tôi đã sử dụng nó rất nhiều tích hợp nó trong python và nó rất xuất sắc) Tôi có thể gửi cho bạn một số mã python nếu bạn muốn tôi.

ROSETTA : bộ công cụ để phân tích dữ liệu dạng bảng trong khuôn khổ của lý thuyết tập thô. ROSETTA được thiết kế để hỗ trợ quá trình khám phá kiến ​​thức và khai thác dữ liệu tổng thể: Từ duyệt và xử lý dữ liệu ban đầu, thông qua tính toán các tập thuộc tính tối thiểu và tạo quy tắc if-then hoặc mô tả, đến xác thực và phân tích quy tắc hoặc mẫu cảm ứng (Điều này tôi cũng rất thích sử dụng)

KEEL : đánh giá các thuật toán tiến hóa cho các vấn đề Khai thác dữ liệu bao gồm hồi quy, phân loại, phân cụm, khai thác mẫu, v.v. Nó cho phép chúng tôi thực hiện phân tích đầy đủ bất kỳ mô hình học tập nào so với mô hình hiện có, bao gồm cả mô-đun kiểm tra thống kê để so sánh.

DataPlot : để trực quan hóa khoa học, phân tích thống kê và mô hình phi tuyến tính. Người dùng Dataplot mục tiêu là nhà nghiên cứu và phân tích tham gia vào việc mô tả đặc tính, mô hình hóa, trực quan hóa, phân tích, giám sát và tối ưu hóa các quy trình khoa học và kỹ thuật.

Openstats : Bao gồm một thống kê và thống kê đo lường, thống kê mô tả, so sánh đơn giản, phân tích phương sai, tương quan, đa hồi quy, chuỗi thời gian bị gián đoạn, thống kê đa biến, thống kê không tham số, đo lường, kiểm soát quá trình thống kê, quy trình tài chính, mô phỏng


8

Colin Gillespie đã đề cập đến BUGS, nhưng một lựa chọn tốt hơn cho Gibbs Sampling, v.v., là JAGS .

Nếu tất cả những gì bạn muốn làm là ARIMA, bạn không thể đánh bại X12-ARIMA , đây là một tiêu chuẩn vàng trong lĩnh vực và nguồn mở. Nó không làm đồ thị thực sự (tôi sử dụng R để làm điều đó), nhưng chẩn đoán là một bài học của riêng họ.

Mạo hiểm một chút xa hơn đến một cái gì đó tôi mới phát hiện ra và mới bắt đầu tìm hiểu ...

ADMB (AD Model Builder), mô hình phi tuyến tính dựa trên thư viện AUTODIF, với MCMC và một vài tính năng khác được đưa vào. Nó xử lý và biên dịch mô hình thành một tệp thực thi C ++ và biên dịch nó thành một ứng dụng độc lập, đó là được cho là nhanh hơn các mô hình tương đương được triển khai trong R, MATLAB, v.v. Dự án ADMB

Nó bắt đầu và vẫn còn phổ biến nhất trong thế giới nghề cá, nhưng trông khá thú vị cho các mục đích khác. Nó không có đồ thị hoặc các tính năng khác của R, và rất có thể sẽ được sử dụng cùng với R.

Nếu bạn muốn làm việc với Bayesian Networks trong GUI: SamIam là một công cụ hay. R có một vài gói cũng làm điều này, nhưng SamIam rất đẹp.



7

Tôi thực sự thích làm việc với RooFit để dễ dàng điều chỉnh phân phối tín hiệu và nền phù hợp và TMVA để phân tích thành phần chính nhanh và mô hình hóa các vấn đề đa biến với một số công cụ tiêu chuẩn (như thuật toán di truyền và mạng thần kinh, cũng như BDT). Cả hai đều là một phần của các thư viện ROOT C ++ có sự thiên vị khá nặng nề đối với các vấn đề vật lý hạt.


7

Một số chi tiết khác đã được đề cập:

  • KNIME cùng với các phần mở rộng tích hợp R, Python và Weka để khai thác dữ liệu
  • Mondrian cho EDA nhanh chóng

Và từ góc độ không gian:

  • GeoDa cho EDA không gian và phân cụm dữ liệu diện tích
  • SaTScan để phân cụm dữ liệu điểm

3
Như một lưu ý GeoDa và SatScan không phải là nguồn mở, chúng là phần mềm miễn phí (mặc dù điều đó không tạo ra nhiều khác biệt đối với tôi!)
Andy W

1
pySal của Trung tâm GeoDa là nguồn mở (xem bên dưới)
b_dev

6

Tôi thứ hai đó Jay. Tại sao R có giá trị? Đây là một danh sách ngắn các lý do. http://www.inside-r.org/why-use-r . Ngoài ra hãy xem ggplot2 - một gói đồ họa rất đẹp cho R. Một số hướng dẫn hay ở đây .


9
Tại sao lại đặt câu hỏi ở đây? Tất cả đều là wiki cộng đồng, tại sao không sửa câu trả lời chính tắc?
Jay Stevens

4

Điều này rơi vào giới hạn bên ngoài của 'phân tích thống kê', nhưng Eureqa là một chương trình rất thân thiện với người dùng cho các mối quan hệ phi tuyến khai thác dữ liệu trong dữ liệu thông qua lập trình di truyền. Eureqa không phải là mục đích chung, nhưng nó thực hiện những gì nó làm khá tốt và GUI khá trực quan. Nó cũng có thể tận dụng sức mạnh tính toán có sẵn thông qua máy chủ eureqa.


3

Meta.Numerics là một thư viện .NET hỗ trợ tốt cho phân tích thống kê.

Không giống như R (bản sao S) và Octave (bản sao Matlab), nó không có "mặt trước". Nó giống như GSL, ở chỗ nó là một thư viện mà bạn liên kết đến khi bạn đang viết ứng dụng của riêng bạn cần thực hiện phân tích thống kê. C # và Visual Basic là các ngôn ngữ lập trình phổ biến hơn C / C ++ cho các ứng dụng dành cho doanh nghiệp và Meta.Numerics hỗ trợ rộng rãi hơn cho các cấu trúc và kiểm tra thống kê so với GSL.


3
  • clusterPy cho khu vực phân tích hoặc phân cụm không gian địa lý
  • PySal để phân tích dữ liệu không gian.

3

Phần mềm toán học tượng trưng cũng có thể là một hỗ trợ tốt cho thống kê. Thỉnh thoảng có một vài GPL tôi sử dụng:

  1. sympy dựa trên python và rất nhỏ, nhưng vẫn có thể làm được rất nhiều: đạo hàm, tích phân, tổng biểu tượng, tổ hợp, mở rộng chuỗi, thao tác tenor, v.v. Có một gói R để gọi nó từ R.
  2. hiền nhân dựa trên trăn và LỚN! Nếu sympy không thể làm những gì bạn muốn, hãy thử sage (nhưng không có phiên bản windows gốc).
  3. cực đại là dựa trên lisp và rất cổ điển, kích thước trung gian giữa (1) và (2).

Cả ba đều đang phát triển tích cực.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.