Рубин как верстак статистики

13

Это также вопрос, который в значительной степени относится к Python как инструменту статистики и превосходит его как инструмент статистики . Я знаю, что существует большая дискуссия о Ruby против Python, но это не главное в этом вопросе. Я подумал, что Ruby быстрее Python и обладает очень естественным синтаксисом, может помочь мне понять статистику и может стать хорошей альтернативой R (что также меня интересует и упоминалось в моем другом вопросе о R здесь).). Например, на одной из лекций Google Tech, которые я видел (цитируется по связанному вопросу здесь, преподаватель жалуется, что R медленно создает цикл for). В Ruby есть и Rails, так что, возможно, будет возможность объединить и то и другое (в Python есть Django, но опять же я не буду вдаваться в подробности).

Итак, вопрос стоит так же, но для моего интереса, в Ruby:

  • Что вы можете порекомендовать, если я хотел использовать Ruby в качестве «инструмента статистики» для замены R, SPSS, Python, Excel и т. Д.?

  • Что бы я получил и потерял, основываясь на вашем опыте?

Обратите внимание, что я рассматриваю этот вопрос на основе предыдущего вопроса по Python и Excel. Если вы считаете, что использование Ruby и Python (или Excel) окажет одинаковое влияние, то, пожалуйста, скажите об этом и укажите на аргументы любого предыдущего вопроса, цель этого вопроса - не повторить предыдущие вопросы для одних и тех же ответов. Я, однако, считаю, что есть различия (такие как скорость языка и синтаксис), но я также особенно хотел бы знать рекомендации для Ruby или, если есть, например, гораздо меньше, чем, скажем, для Python или Excel. Поэтому, пожалуйста, рассмотрите предыдущие ответы на эти очень похожие вопросы, но для другого языка / программы.

Изменить: Просто чтобы выделить, поскольку ответы, кажется, идут по-другому, ответ, который я искал, такой, как выбранный ответ на вопрос Python, с которым я связался. Речь идет не об изучении статистики вместе с Ruby. Я сделал точку на вопрос узнать статистику с R . Если это возможно здорово, но я не собираюсь изучать статистику с Ruby одновременно. Вы можете принять статистику фона для этого вопроса.

Oeufcoque Penteano
источник
спасибо за редактирование! Я заметил, что моя благодарность была уничтожена. Это плохая идея, чтобы сказать спасибо за вопросы? (Просто хотел бы подтвердить, с моей стороны проблем нет - прокомментируйте немного не по теме вопроса, но я не хотел начинать вопрос по мета только для этого).
Oeufcoque Penteano
1
Мнения немного отличаются. Короткое «Спасибо» в конце вопроса является обычным делом, но обычно это считается ненужным отвлечением. Вы можете быстро найти руководство на мета-сайте всего сайта, например на странице часто задаваемых вопросов SE .
whuber

Ответы:

9

Я использую Ruby + R.

Вы можете прочитать статью: RinRuby: доступ к интерпретатору R из Pure Ruby

http://www.jstatsoft.org/v29/i04/paper

и этот блог:

http://rubyforscientificresearch.blogspot.com

http://sciruby.com/

(Автор sciruby также является пользователем R.)

Ouyang
источник
Спасибо, ваш ответ идет в направлении того, что я ищу. Я заметил, что ссылки датируются 2009 и 2011 годами. Интересно, есть ли более поздняя литература по данному рубину, является ли он новым языком и всегда растет? Тем не менее, я думаю, что это хорошая отправная точка. Приятно, что в блоге считают ruby ​​для научных исследований, что именно в моем случае.
Oeufcoque Penteano
Привет, я люблю рубин и рельсы. Я тоже люблю R Вы можете найти rubygems Увеличить все больше и больше. rubygems.org/stats R тоже тоже. 2003, R кран 200, сейчас 3600+ !!! в 2011 году Ruby Gem - 28000, сейчас - 36874! Вы можете наслаждаться Ruby + R: D
ouyang
Отличное замечание о рубиновых камнях, я забыл о них. Возможно, другие люди могут предложить несколько рубиновых камней по поводу использования Ruby в качестве рабочей среды, которые, как известно, работают и надежны? Спасибо за добавление ответа на то, что я ищу снова.
Oeufcoque Penteano
4

СТАРЫЙ (РЕДАКТИРОВАТЬ) ОТВЕТ:

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

Я думаю, что user765195 имеет смысл с точки зрения того, что R труднее отлаживать, чем многие другие языки, что важно, но «хуже»? Я так не думаю.

РЕДАКТИРОВАТЬ:

Так что, если я могу подвести итог вашей РЕДАКТИРОВАТЬ: учитывая, что вы уже ведете статистику, и если вы действительно хотите использовать Ruby для выполнения этой задачи вместо реальной статистической программы (R, gretl, SAS и т. Д.), Как вы можете облегчить свою жизнь? , Это правильно?

Я не могу дать ответ Ruby, но я думаю, что общий вопрос также должен быть рассмотрен. Тем более, что вы указываете на другие примеры того же вопроса: «Я хотел бы использовать Python / perl / java / Clojure / C / что угодно, чтобы делать статистику».

Я думаю, что ответ всегда будет: «зачем использовать обобщенный, примитивный (по статистике) инструмент, чтобы выполнять работу, которую специализированный инструмент делает намного лучше?» И я вижу шесть основных ответов:

  1. Я просто не хочу изучать другой язык, и, поскольку я хорошо разбираюсь в Python / Ruby / Excel / Java, я настаиваю на использовании этого языка.

  2. Статистика, которую я хочу сделать, должна вписываться в более крупный проект (такой как веб-инструмент), а инструменты, используемые в этом проекте, плохо работают с внешними инструментами, поэтому я должен использовать Python / Ruby / Java. (Или это может быть вопрос развертывания приложения, и невозможно попытаться развернуть произвольные исполняемые файлы.)

  3. Я бы использовал специализированный инструмент, но те, к которым у меня есть доступ (скажем, R, который бесплатный), слишком медленные или не могут обрабатывать огромные наборы данных / требования в реальном времени для моего проекта.

  4. Мой работодатель / клиент настаивает на том, чтобы я использовал язык общего назначения Python / Ruby / Excel / Java. У меня нет выбора, и я ищу наименее болезненный способ выполнить это требование.

  5. Под «статистикой» я подразумеваю очень простые вещи, такие как поиск средств / медиан, отклонений и т. Д. Зачем использовать специализированный пакет, который может рассчитывать модели смешанного эффекта с помощью MCMC, когда все, что я хочу сделать, это вычислить, какие точки находятся за пределами 1-сигмы от среднего?

  6. Я делаю что-то очень специализированное, и для которого даже статистические пакеты, такие как R, не имеют пакетов / библиотек / функций. Это не только ультрасовременный, но требует сверхвысокой производительности, и мне нужно сделать это с нуля. (Или, возможно, используйте библиотеки, которые я разработал уже на языке X.)

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

Wayne
источник
Цель этого вопроса не в том, чтобы изучать статистику вместе с ruby, пожалуйста, смотрите редактирование, но спасибо за ваши мысли и извините, если вопрос вводит в заблуждение, я надеюсь, что теперь все ясно после редактирования.
Oeufcoque Penteano
Спасибо, вы поняли это правильно . Предположение о знаниях в области статистики хорошо, и теперь я смотрю на библиотеки, чтобы узнать, как это сделать в Ruby, как это было предложено для Python. Я согласен с вами, возможны многие мотивации, но опять же (только ради следующих читателей, которые попадают на эту страницу), ожидаемый ответ - тот, который предлагает библиотеки и такие, как они были упомянуты в вопросе о Python. Я полагаю, что если есть место для множества различных мнений о том, какой инструмент статистики использовать, существует также доступ к знаниям о них в этом сообществе. Благодарность!
Oeufcoque Penteano
+1. Скорее всего, речь идет о разных словах, написанных «статистика». Статистика использования веб-сайта, которая может быть легко извлечена из журналов с использованием Python или Ruby, - это не то же самое, что, например, необходимость программировать модель Кокса или дисперсию оценки отношения итогов на основе двухэтапного стратифицированного опроса с использованием Ruby. (Нужно быть абсолютно отчаянным в соответствии с вашими ответами 2, 3 и 4, чтобы даже думать о Ruby как о языке выбора.) Можно дополнить статистику обучения симуляциями на том языке, который наиболее удобен, и затем 1 правильный ответ
StasK
@OeufcoquePenteano: В конце концов, я думаю, что моя проблема сводится к «рабочему столу». Победный ответ в потоке Python на самом деле довольно спартанский. Все перечисленные ресурсы в совокупности даже не соответствуют базе R, тем более не задумываясь о пакетах R. Если вам нужно сделать некоторую статистику в Python, у вас есть несколько ограниченных вариантов, но не следует путать и думать, что Python делает хороший статистический «инструмент». Я надеюсь, что вы получите некоторые ответы, но Ruby еще хуже, чем Python.
Уэйн
@ Уэйн, это нормально. Я не планирую менять R на Ruby, Python или Excel. Но мне любопытно узнать, что может предложить Руби. Возможно, несколько драгоценных камней из Ruby лучше, чем определенные яйца (это яйцо, которое они называют на Python? Не уверен), и наоборот. Может быть, Excel лучше для нескольких вещей. Например, я думаю, что Excel мог бы помочь провести очень поверхностный анализ, а затем серьезно погрузиться в R или другой инструмент. Таким образом, дело не в том, чтобы «выбирать», а знать, что лучше в каждом мире, и, зная их, выбрать тот, который больше подходит для данной проблемы. Спасибо за ваш совет.
Oeufcoque Penteano
-1

Несколько случайных мыслей:

  • Вы упоминаете, что ищете рабочее место для изучения статистики. ИМХО, ни одна из упомянутых вами платформ не подойдет для изучения статистики. Будет слишком много отвлекаться, изучая синтаксис и семантику конкретного языка. Если вы хотите изучить статистику, просто возьмите книгу (я очень рекомендую EDA Тьюки) и, возможно, калькулятор. Изучение языка на основе статистических концепций является крайне ненужным отвлечением.
  • Человек, который жалуется на медленные петли в R, выдает свое невежество: петли не являются естественной конструкцией в каждом языке. Они медленны в большинстве функциональных языков программирования. Альтернатива - применение функции, и это обычно быстро.
  • Когда дело доходит до языков программирования, скорость должна быть вашей последней заботой. Гораздо более важной проблемой является легкость отладки кода.
  • Когда дело доходит до отладки, R, пожалуй, худший язык программирования, который я знаю. Иногда невозможно отладить код. Кроме того, документация для существующих пакетов обычно написана очень плохо. В целом, мой совет: если вы можете избежать R, сделайте это.
  • Я только немного знаком со статистическим содержанием Python. Насколько я понимаю, NumPy на самом деле не профессионально написан и не учитывает числовые проблемы.
  • Вы рассматривали Haskell? Это определенно лучший язык программирования.
user765195
источник
Здравствуйте! Спасибо за ваше мнение. Я рад видеть другое мнение против R. Я приму во внимание то, что вы говорите, так как я также изучаю другие инструменты, не упомянутые здесь. Может быть, мой вопрос вводил в заблуждение. Я все еще изучаю статистику, и фактически мой вопрос относительно R был об этом, но для Ruby это нечто иное. Мне любопытно посмотреть, что доступно для ruby ​​в качестве рабочей среды, например, для python и excel. Я также рассмотрю вопрос о Haskell, но если у вас есть какие-либо предложения относительно Ruby, я также буду признателен! Спасибо!
Oeufcoque Penteano
Haskell для статистики? Разговор о ненужном отвлечении ...
Филлип Облако
-1, невозможно отладить код в r?
mpiktas
Должен отметить, что в этом ответе только параграф об отладке в R. Все остальное кажется заслуживающим внимания. Кроме Хаскелла, с которым у меня нет никакого опыта. Но заметка об отладке - это то, что нужно.
mpiktas
1
@cpcloud: язык математики и статистики - лямбда-исчисление. Хаскель - не что иное, как лямбда-исчисление. Математические конструкции выражаются в Haskell точно так же, как они записаны в книге по математике. Из-за этого накладные расходы от языка практически равны нулю. На самом деле, книга «Дорога к логике на Хаскеле» учит математике с помощью Хаскелла. Я предлагаю вам взглянуть на эту книгу.
user765195