Які є цінні проекти з відкритим кодом статистичного аналізу?


69

Які якісь цінні проекти з відкритим кодом статистичного аналізу доступні зараз?

Редагувати: як зазначає Шарпі, цінні можуть означати допомогу вам робити швидше чи дешевше.


5
Може бути плакатом дитини для аргументативного та суб'єктивного. Принаймні, потрібно визначити "цінний".
Шарпі

2
Можливо, в центрі уваги не повинно бути "цінних", а "плюсів" і "мінусів" кожного проекту?
Лев

А може, навіть "Як X допоможе вам швидше / дешевше зробити Y та знищити мікроби, які спричиняють неприємний запах з рота".
Шарпі

Відповіді:


88

R-проект

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

R є цінним та значущим, оскільки він був першою широко прийнятою альтернативою Open-Source для пакетів big-box. Це зрілий, добре підтримуваний та стандарт у багатьох наукових спільнотах.


Так, R добре - але ЧОМУ це "цінно".
Шарпі

11
Це зрілий, добре підтримуваний та стандарт у певних наукових спільнотах (наприклад, популярний у нашому відділі AI)
Menno

10
Це розширюється, і немає статистичної техніки, яка не може бути виконана в ньому.
aL3xa

20

Для виконання різноманітних завдань MCMC в Python, є PyMC , від якого я отримав досить багато використання. Я не натрапив на те, що я можу зробити в BUGS, що я не можу зробити в PyMC, і спосіб, який ви задаєте моделі та вводите дані, здається мені набагато інтуїтивнішим.


18

Це може призвести до забуття, але я щасливо багато років використовував клон Матлаба Октава . У октавній кузні є досить хороші бібліотеки для генерації випадкових змінних з різних розподілів, статистичних тестів тощо. Хоча, очевидно, це є карликом R. Однією з можливих переваг перед R є те, що Matlab / октава є мовою франка серед чисельних аналітиків, дослідників оптимізації. , і деякий підмножина прикладних математиків (принаймні, коли я навчався в школі), тоді як ніхто в моєму відділі, як мені відомо, не використовував Р. мою втрату. вчіться як можна, якщо можливо!


4
Справжній коментар. Але як досвідчений програміст я відчуваю себе брудним щоразу, коли використовую Matlab / Octave, що є жахливо розробленою (якщо вона створена взагалі) мовою. Звичайно, я також плачу в SAS, який, очевидно, був розроблений для перфокарт.
Уейн

1
@Wayne досить правдивий. Пригадую, одного разу почувши, як Боб Харпер посилається на мову Matlab як "семантично підозрілий";) Як і у багатьох мовах, хоч як тільки ти достатньо її використаєш, ти навчишся справлятися з її дивацтвами.
shabbychef

17

На думку спадають два проекти:

  1. Помилки - сприйняття (деякі) болю за байєсівської статистики. Це дозволяє користувачеві зосередитися більше на моделі та трохи менше на MCMC.
  2. Біопровідник - чи не найпопулярніший статистичний інструмент у біоінформатиці. Я знаю, що це сховище R, але є велика кількість людей, які хочуть вивчити R, тільки для Bioconductor. Кількість пакетів, доступних для передового аналізу, робить його другим.

1
У Ендрю Гельмана є чудова бібліотека R, яка пов'язує
Багса

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.
Шарпі


1
chl

14

Є також такі проекти, ініційовані ФФС або перерозподілені за загальною публічною ліцензією GNU, такі як:

  • PSPP , метою якої є безкоштовна альтернатива SPSS
  • GRETL , в основному присвячений регресії та економетрії

Є навіть додатки, які були випущені просто як супутнє програмне забезпечення для підручника, як-от JMulTi , але все ще користуються мало хто.

Я все ще час від часу граю з xlispstat , хоча Lisp значною мірою витіснив R (див. Огляд Яна де Ліува щодо Lisp vs. R у Журналі статистичного програмного забезпечення ). Цікаво, що один із співзасновників мови R, Росс Іхака, стверджував навпаки, що майбутнє статистичного програмного забезпечення - це ... 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)

Для цього також є кілька бібліотек python (python дуже легкий для вивчення)

Спочатку дозвольте перерахувати пакунки, якими ви можете скористатися, я не збираюся детально про них розповідати; Weka (так, у вас є бібліотека для python), NLKT (найвідоміший пакет з відкритим кодом для textmining, крім datamining), statPy , bolits та 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. Компоненти машинного навчання. Розширення для біоінформатики та видобутку тексту. (Я особисто рекомендую це, я багато використовував його, інтегруючи його в python, і це було чудово) Я можу надіслати вам якийсь код python, якщо ви цього хочете.

ROSETTA : інструментарій для аналізу табличних даних у рамках теорії грубого набору. ROSETTA призначений для підтримки загального процесу вилучення даних та знань знань: від початкового перегляду та попередньої обробки даних, через обчислення мінімальних наборів атрибутів та генерації правил тоді чи описових моделей, до перевірки та аналізу індукованих правил або шаблонів. . (Це мені теж сподобалось користуватися)

KEEL : оцінити еволюційні алгоритми для проблем обміну даними, включаючи регресію, класифікацію, кластеризацію, видобуток шаблонів тощо. Це дозволяє нам провести повний аналіз будь-якої моделі навчання порівняно з існуючою, включаючи модуль статистичного тестування для порівняння.

DataPlot : для наукової візуалізації, статистичного аналізу та нелінійного моделювання. Цільовим користувачем Dataplot є дослідник та аналітик, що займається характеристикою, моделюванням, візуалізацією, аналізом, моніторингом та оптимізацією наукових та інженерних процесів.

Відкриття : включає статистичний та вимірювальний праймер, описову статистику, прості порівняння, аналізи варіацій, кореляцію, множинні регресії, перервані часові ряди, багатоваріантну статистику, непараметричну статистику, вимірювання, статистичний контроль процесів, фінансові процедури, нейронні мережі, моделювання


8

Колін Гілзпі згадував про помилки, але кращим варіантом для відбору проб Гіббса тощо є JAGS .

Якщо все, що ви хочете зробити, це ARIMA, ви не можете перемогти X12-ARIMA , що є золотим стандартом у польових та відкритих джерелах. Він не робить реальних графіків (для цього я використовую R), але діагностика - це урок самостійно.

Відважуючись трохи далі на те, що я нещодавно виявив і щойно почав вчитися ...

ADMB (AD Model Builder), який робить нелінійне моделювання на базі бібліотеки AUTODIF, з MCMC та кількома іншими функціями, що передаються. Він попередньо обробляє та компілює модель до виконуваного файлу C ++ і компілює її як окремий додаток, який є мабуть бути швидше, ніж еквівалентні моделі, реалізовані в R, MATLAB тощо. Проект ADMB

Він розпочався і досі є найбільш популярним у світі рибного господарства, але виглядає досить цікавим для інших цілей. Він не має графічних чи інших особливостей R, і, швидше за все, використовувався б спільно з R.

Якщо ви хочете працювати з Bayesian Networks в графічному інтерфейсі: SamIam - це приємний інструмент. R має пару пакунків, які теж роблять це, але SamIam дуже приємно.


7

GSL для тих, хто хоче програмувати на C / C ++, є цінним ресурсом, оскільки він пропонує декілька процедур для випадкових генераторів, лінійної алгебри тощо. Хоча GSL в основному доступний для Linux, є також порти для Windows. (Див.: Http://gladman.plushost.co.uk/oldsite/computing/gnu_scientist_library.php та http://david.geldreich.free.fr/dev.html )


7

Мені дуже подобається працювати з RooFit для легкої підгонки розподілу сигналів та фону та TMVA для швидкого аналізу основних компонентів та моделювання багатоваріантних проблем з деякими стандартними інструментами (наприклад, генетичними алгоритмами та нейронними мережами, також BDT). Вони обидва є частиною бібліотек ROOT C ++, які мають досить сильний ухил до проблем фізики частинок.


7

Трохи більше зверху до вже згадуваного:

  • KNIME разом з розширеннями інтеграції R, Python та Weka для пошуку даних
  • Мондріан для швидкої EDA

І з просторової точки зору:

  • GeoDa для просторової EDA та кластеризації даних ареалу
  • SaTSможна для кластеризації точкових даних

3
Як зауважте, GeoDa і SatScan не є відкритим кодом, вони безкоштовні (не те, що для мене це має велике значення!)
Енді Ш,

1
pySal Центром GeoDa є відкритим кодом (див. нижче)
b_dev

6

Я другий, що Джей. Чому R цінний? Ось короткий перелік причин. http://www.inside-r.org/why-use-r . Також перегляньте ggplot2 - дуже приємний графічний пакет для Р. Деякі приємні підручники тут .


9
навіщо ставити питання тут? Усі - вікі-спільноти, чому б не просто виправити канонічну відповідь?
Джей Стівенс

4

Це падає на зовнішні межі «статистичного аналізу», але Eureqa - це дуже зручна програма для обміну даними нелінійних зв’язків даних за допомогою генетичного програмування. Eureqa не така загальна мета, але вона робить те, що робить досить добре, а GUI досить інтуїтивно зрозумілий. Він також може скористатися доступною обчислювальною потужністю через сервер eureqa.


3

Meta.Numerics - це бібліотека .NET з хорошою підтримкою статистичного аналізу.

На відміну від R (клон S) і Octave (клон Матлаба), він не має "переднього кінця". Він більше схожий на GSL, тому що це бібліотека, до якої ви посилаєтесь, коли пишете власну заяву, для якої потрібно зробити статистичний аналіз. C # і Visual Basic є більш поширеними мовами програмування, ніж C / C ++ для додатків для бізнесу, а Meta.Numerics має більш широку підтримку статистичних конструкцій і тестів, ніж GSL.



3

Програмне забезпечення символічної математики також може бути хорошою підтримкою для статистики. Ось кілька GPL, якими я час від часу користуюся:

  1. sympy заснований на пітоні та дуже малий, але все ще може зробити багато: похідні, інтеграли, символічні суми, комбінаторика, розширення серії, маніпуляції з тензором тощо. Існує пакет R, щоб викликати його від R.
  2. шавлія на основі пітона і ВЕЛИЧЕЗНА! Якщо симпатія не може робити те, що ви хочете, спробуйте мудрець (але немає рідної версії Windows).
  3. maxima заснований на ліпі і дуже класичний, проміжний за розміром між (1) та (2).

Усі троє перебувають в активному розвитку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.