Подтвердить что ты не робот

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

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

Какие предложения у вас есть? Существуют ли какие-либо языки, чей синтаксис/семантика особенно ориентированы на это? Или существуют ли какие-либо языки с исключительно хорошими библиотеками?

4b9b3361

Ответ 1

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

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

ACM видит это так же, когда он давал премию ACM Software Systems для John Chambers в 1998 году со следующими citation

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

Для системы S, которая навсегда изменили, как люди анализируют, визуализируют, и манипулировать данными.

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

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

Ответ 2

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

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

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

Есть члены сообщества R (например, Ross Ihaka), которые фактически рассматривают Lisp как статистический язык будущего (см. документ "назад к будущему" для справки) из-за некоторых глубоких проблем дизайна в языке R (например, без многопоточности).

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

Ответ 3

Посмотрите Incanter на основе clojure. "Incanter - это платформа, ориентированная на Clojure, для статистических вычислений и графики". Clojure - это язык на основе lisp, реализованный в верхней части JVM. Он имеет легкий доступ к java-библиотекам. Не может быть более общей цели, чем это.

Ответ 4

Из моего опыта R - исключительно мощный язык в этих областях:

  • Манипуляция и преобразование данных.

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

  • Графика.

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

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

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

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

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

Вау! Там пакет, который делает THAT?!

Ответ 5

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

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

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

Ответ 6

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

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

веселит

Ответ 7

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

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

Ответ 8

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

Ответ 9

Рассматривали ли вы использование somethinbg как MatLab? Он имеет множество расширенных возможностей для анализа данных, и вы можете выполнять некоторые программы в среде.

Ответ 10

Как насчет Stata? У меня есть друг, который является студенткой PhD Economics, и он все время бредит Stata. И у меня есть личное сходство с Mathematica.

Ответ 11

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

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

Ответ 12

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

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

Ответ 13

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

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

Ответ 14

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

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

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

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

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

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

Ответ 15

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

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

Смотрите Conway Game of Life в одной строке APL для небольшого обзора того, что можно сделать с ней.

Ответ 16

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