Какие языки программирования хороши для статистики? [закрытый]

32
задан Eduardo Leoni 6 February 2010 в 01:33
поделиться

15 ответов

Не оспаривается -- R в качестве основной реализации S (и той, которая, как оказалось, является собственно проектом с открытым исходным кодом, а также проектом GNU).

Не только как язык S, разработанный именно для этой цели (см. книги Джона Чемберса), но и как довольно богатая поддержка специфических для домена пакетов на CRAN - непревзойденная: более 2000 пакетов с правильным контролем качества, часто авторами которых являются эксперты в этой области.

ACM видит это так же, когда он вручил ACM Software Systems Award Джону Чемберсу в 1998 году со следующей цитатой

Джона М. Чемберса

For The S system, которая имеет вечность изменили то, как люди анализируют, визуализируют, и манипулировать данными.

Для справки, другими лауреатами этой премии были TeX, Smalltalk, Postscript, RPC, "the web", Mosaic, Tcl/Tk, Java, Make, ... Неплохая компания.

Теперь, если вы "только" хотите собрать и обобщить некоторые данные только о любом процедурном или функциональном языке будет делать. Но если вы хотите что-то, что было предназначено для программирования с данными , то R как основная реализация S - это она.

52
ответ дан 27 November 2019 в 19:47
поделиться

Я бы сказал, что R как большинство курсов статистики в моем университете используют R, и большинство моих друзей, которые прошли такие курсы, вполне довольны его диапазоном и охватом.

Я даже попробовал MATLAB и нашел его довольно удобным.

ура

-121--2066716-

Поскольку XML являются неизменяемыми , каждый раз, когда вы хотите добавить узел, вы должны создавать новый, вы можете использовать Образцы соответствующий для добавления нового узла:

    var root: Node = <model></model>
    def addToModel(newNode: Node) = root match {
       //match all the node from your model
       // and make a new one, appending old nodes and the new one
        case <model>{oldNodes@_*}</model> => root = <model>{oldNodes}{newNode}</model>
    }
    addToModel(<subsection>content</subsection>)
-121--1602509-

APL , по-видимому, является одним из лучших языков вокруг Это не общая цель, хотя...

Для него требуется специальная клавиатура и шрифт, поскольку он не использует ascii.

Смотрите Игру жизни Конуэя в одной строке APL для получения краткого обзора того, что можно сделать с ней.

1
ответ дан 27 November 2019 в 19:47
поделиться

Библиотека pystats (для Python) хорошо подходит для статистического анализа.

-121--2066721-

Если требуется проверить не только, является ли объект массивом, но и выполнить его итерацию:

if (array.getClass().isArray()) {
    int length = Array.getLength(array);
    for (int i = 0; i < length; i ++) {
        Object arrayElement = Array.get(array, i);
        System.out.println(arrayElement);
    }
}

(класс выше - java.lang.reflect.Array )

-121--1440282-

Matlab также хорош в статистике. Но это не совсем бесплатно.

Октав - это свободный клон, который может также делать то, что нужно.

2
ответ дан 27 November 2019 в 19:47
поделиться

Взгляните на Incanter , основанный на clojure . «Incanter - это основанная на Clojure, R-подобная платформа для статистических вычислений и графики». Clojure - это язык на основе Lisp, реализованный поверх JVM. Имеет легкий доступ к библиотекам Java. Не может быть более общей цели, чем это.

10
ответ дан 27 November 2019 в 19:47
поделиться

Ознакомьтесь с пакетом RooFit для ROOT . Он используется, например, физики элементарных частиц для анализа данных.

ROOT - это среда C ++ , которая также имеет привязки python и ruby. Он также включает ограниченный интерактивный интерпретатор C ++ .

2
ответ дан 27 November 2019 в 19:47
поделиться

Библиотека pystats (для Python) хорошо подходит для статистического анализа.

-121--2066721-

Если требуется проверить не только, является ли объект массивом, но и выполнить его итерацию:

if (array.getClass().isArray()) {
    int length = Array.getLength(array);
    for (int i = 0; i < length; i ++) {
        Object arrayElement = Array.get(array, i);
        System.out.println(arrayElement);
    }
}

(класс выше - java.lang.reflect.Array )

-121--1440282-

Мой друг, специализирующийся на статистике рынка, использует SAS . Я мало что знаю об этом - это не похоже на "настоящий" язык, но, возможно, стоит проверить.

Я все для Python с привязками R.

2
ответ дан 27 November 2019 в 19:47
поделиться

Вы не думали использовать что-нибудь вроде MatLab ? Она имеет много расширенных возможностей для выполнения анализа данных, и вы можете выполнять некоторые операции по программированию в среде.

3
ответ дан 27 November 2019 в 19:47
поделиться

А как насчет Статы ? У меня есть друг, аспирант по экономике, он все время в восторге от Статы. И мне лично нравится Mathematica .

3
ответ дан 27 November 2019 в 19:47
поделиться

R - это здорово, если все , что вы делаете, - это статистика. В ней есть хороший интерактивный интерфейс и инструменты визуализации. Однако, его довольно сложно использовать в качестве языка общего назначения, потому что его синтаксис и семантика очень сильно оптимизированы для работы со статистикой. Если вам нужен более универсальный язык, то Python с SciPy будет достойным выбором, хотя я использовал его и обнаружил, что статистическая рутина в нём несколько незрелая. Часто они неэффективны или терпят неудачу в угловых случаях.

Если вы занимаетесь интеллектуальным анализом данных на больших массивах данных, делая важную роль в производительности, и/или не возражаете против использования альфа-инструментов, то язык программирования D и библиотека dstats dstats могут быть довольно неплохими. D - это примерно такой же язык общего назначения, как и вы, но IMHO дстаты очень просты в использовании, потому что метапрограммирование шаблонов облегчает создание хорошего API даже на статически скомпилированном, близком к металлическому, языке. (Полное раскрытие: я написал большинство дстацев, так что, конечно, я думаю, что это хорошо)

.
4
ответ дан 27 November 2019 в 19:47
поделиться

Я бы сказал R, так как большинство курсов по статистике в моем университете используют R, и большинство моих друзей, которые проходили такие курсы, вполне довольны его диапазоном и охватом.

Я даже попробовал MATLAB и нашел его довольно удобным.

cheers

4
ответ дан 27 November 2019 в 19:47
поделиться

Библиотека pystats (для Python) хорошо подходит для статистического анализа.

3
ответ дан 27 November 2019 в 19:47
поделиться

Нет сомнений в том, что R - лучший язык для статистики, как говорит Дирк. Я просто хочу добавить к этому несколько моментов:

Во-первых, я думаю, что основная причина, по которой вы должны использовать R, - это интересы сообщества. На данном этапе он настолько широко используется экспертами в академических кругах и промышленности, что ни один другой язык даже близко не может сравниться с богатством на CRAN.

Во-вторых, следует признать, что с языком R приятно работать.Это мой основной язык, и, попробовав альтернативы, я нет намерения отказаться от него в ближайшее время. Но он также не имеет монополии на программирование с данными, и это утверждение можно зайти слишком далеко. Все языки Lisp и функциональные языки сильны в программировании данных. В конце концов, Лисп произошел от «программирования по спискам», и именно влияние Лиспа на R сделало этот язык тем, чем он является.

Есть члены R-сообщества (например, Росс Ихака), которые фактически рассматривают Лисп как статистический язык будущего (см. Статью «Назад в будущее» для справки) из-за некоторых глубоких проблем проектирования в Язык R (например, без многопоточности).

Итак, хотя R, несомненно, лучший язык для статистических вычислений, я вижу некоторую ценность в знакомстве с другим языком, таким как OCaml, Haskell или (возможно) Clojure / Incanter.

15
ответ дан 27 November 2019 в 19:47
поделиться

Вы можете взглянуть на программу sage , которая является повторной реализацией интерпретатора Python, позволяющей вызывать разные языки программирования для статистики (R, matlab, octave и т. д.) с использованием синтаксиса python.

Одна из основных проблем при написании программ для сбора статистики заключается в том, что у вас может появиться много разных небольших скриптов, каждый из которых выполняет отдельную задачу, и вы можете получить беспорядочные папки и путаницу в ваших результатах.

Итак, помимо выбора языка программирования (я думаю, что другие люди уже ответили на ваш вопрос) вам также понадобится синтаксис для определения конвейеров сценариев: вы можете сделать это с помощью программы 'gnu / make' (например, прочтите это ) или с этим мудрецом , или есть другие решения.

5
ответ дан 27 November 2019 в 19:47
поделиться

По моему опыту, R является исключительно мощным языком в следующих областях:

  1. Обработка и преобразование данных.

  2. Статистический анализ.

  3. Графика.

Но R ни в коем случае не является пони с тремя уловками. Я также применил язык к задачам, которые не полностью вписываются в вышеперечисленные категории. Вот несколько примеров:

  • Сценарий, помогающий в создании универсальных двоичных файлов OSX путем определения и сопоставления статических и динамических библиотек различных архитектур и последующего запуска результирующих групп через липо .

  • Скрипты для сбора информации с веб-страниц.

  • Набор скриптов для создания изображений с географической привязкой, разрезания изображений на наборы фрагментов с использованием GDAL , формирования JSON манифеста, описывающего выходные данные, и загрузки результата на веб-сайт для немедленного отображения Автор OpenLayers .

Моя любимая часть использования R - это частота, с которой я могу сказать:

ВОЗА! Есть пакет, который делает ЭТО ?!

6
ответ дан 27 November 2019 в 19:47
поделиться

Я также хотел бы +1 для R. Это может быть не так просто, как STATA или даже SPSS, особенно для непрограммистов. Хотя я предполагаю, что средний stackoverflower намного больше программист, чем я.

При этом я хотел бы сделать краткий обзор, потому что я видел пару статистических пакетов от пользователей (экономистов (точка зрения.

) STATA по-прежнему остается выбором для большинства экономистов, и действительно, у него есть свои плюсы. Графический интерфейс STATA помогает нести ответственность за множество опций и статистических функций. Кроме того, STATA, похоже, единственный пакет, у которого есть список рассылки, который, по крайней мере, несколько приближается к эталону: один из своего рода список рассылки R. Тем не менее, можно писать сложные файлы .do или загружать некоторые из Интернета. STATA, возможно, не так близок к языку программирования, как R, но все же предлагает хороший язык программирования для статистических целей. В зависимости от размера ваших наборов данных вы должны проверить, какая лицензия вам нужна.

Вы также можете использовать SPSS, который представляет собой даже больше инструмента с графическим интерфейсом, чем STATA, и является немного менее всеобъемлющим, например, для эконометрической работы, такой как модели TOBIT или панельные регрессии, особенно модели дискретного выбора.

Есть также Eviews - к сожалению, я почти забыл о нем и использовал его только для пары простых регрессов в своих исследованиях. Поэтому я просто называю это здесь. То же самое и с GAUSS, который кажется более математическим, чем остальная часть пакета. Недавно я услышал об Octave, которая также более математична.

Для моего личного использования R на голову выше всего остального.Иногда я объединяю его в Python или подключаю к базам данных MySQL или PostgreSQL, что также хорошо работает. R действительно помогает вам изучать статистику, потому что вам нужно понимать больше, чтобы что-то делать, чем вам нужно было бы проходить через подобные SPSS. Хотя, если вам нужен графический интерфейс, вы можете попробовать RKward или подумать об установке Komodo / Sciviews-R или Tinn-R в Windows. Последние не являются графическим интерфейсом пользователя, а являются редакторами, более или менее поддерживающими выделение кода и предложения кода, которые также помогают сделать это. Эконометрика Фарнсворта на языке R - хорошее чтение. Ах да, и я не могу забыть упомянуть про сюжет. пакет ggplot2 от Хэдли Уикхема просто готов. Лучший способ создавать графику, если вам не нужно, чтобы она была интерактивной. В конце концов, R действительно является наиболее гибким пакетом: вы даже можете установить его на веб-сервере и создать хороший веб-интерфейс - нет предела.

2
ответ дан 27 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: