LINUX.ORG.RU

Статистическая обработка данных в R

 , , ,


0

0

По согласованию с редакцией Linux Format выложил в открытый доступ «Статистическая обработка данных в R» — четвёртую часть из первого цикла статей по R (основной автор А.Б. Шипунов). По ссылке также лежат исходные коды команд к статьям в Rnw-формате и результаты их выполнения в pdf.

Из Википедии: R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.

С сентябрьского номера в LXF выходит второй цикл статей. Основные главы: "Работа с двумя переменными" в двух частях (основной автор А.И. Коробейников), "Графический интерфейс к R" (я) и пока не дописанная статья про Data mining (основной автор А.Б. Шипунов).

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

P.S. Если в тексте будет найдена ошибка, то дайте знать — исправлю. Сам текст немного отличается от журнальной статьи и в дальнейшем будет развиваться, возможно "до книги".

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: CYB3R (всего исправлений: 1)

Спасибо, то, что вы делаете - очень полезно.

Не могли бы вы добавить краткую справку (или подсказать тут), как настраивать шрифт на графиках, в т. ч. руссифицировать их?

Под оффтопиком - красивые графики, хорошие шрифты. Под убунтой - мама, кошмар какой!

anonymous
()

>возможно "до книги"

А это было бы просто замечательно!

Asteronix ★★★
()
Ответ на: комментарий от anonymous

Вообще-то, как добавлять кириллицу в графиках было во второй статье "Данные и графики". Какой шрифт укажите - тот и будет.

P.S. Да, графики вообще-то везде одинаковые так что не будем развивать 4.2

Evgueni ★★★★★
() автор топика

Неплохая штука. Можно было бы заюзать.

xTERM ★★
()

Спасибо!

а как Вы объединяете

pdf ( "1-20.pdf" , family = "NimbusSan" , encoding = "KOI8-R.enc" )
plot (1:20 , main = "Заголовок" )
dev.off ()
embedFonts ( "1-20.pdf" )


с выводом графики в Sweave?

Картинка :
<< fig = TRUE > >=
plot (1:20)
@

или все надо генерить в koi8-r?

anonymous
()
Ответ на: комментарий от anonymous

> Графики одинаковые, шрифт к ним не очень. Спасибо, буду читать

попробуйте распечатать то что сделано в статье

потом забрызганый любимый шрифт

сравните.

PS наиболее страждущем антиальясинга путь на маки, R поддерживает на них кварц.

anonymous
()

>Пожелания к третьему циклу также принимаются.

для полезности не хватает последней важной части, как на основе полученных данных получить профит, принять решение...

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

взять arima сделать прогноз на форекс получить профит :)

p.s. извиняюсь за сумбурность
p.p.s. R он не SAS, быстро видимостьработы создать не позволяет, сертификатов нет опять же

dimon555 ★★★★★
()

Спасибо! Только, насколько мне известно, (и что потверждается, если все-таки сходить по ссылкам) автора зовут А.Б. Шипунов, а не А.Ю... исправьте пожалуйста.

nurka
()
Ответ на: комментарий от anonymous

> или все надо генерить в koi8-r?

Какая кодировка указана в той и нужно кодировать. Вроде в unicode тоже пробовали. Надо будет при проведении ревизии перепроверить.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от nurka

> автора зовут А.Б. Шипунов, а не А.Ю... исправьте пожалуйста.

посыпаю голову пеплом :( - отвлёкся при наборе объявления.

Просьба модераторам исправить инициалы Шипунова на А.Б.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

>> или все надо генерить в koi8-r?

>Какая кодировка указана в той и нужно кодировать. Вроде в unicode тоже пробовали. Надо будет при проведении ревизии перепроверить.

Гхмм, действительно, посмотрел наличествующие кодировки в /usr/lib/R/library/grDevices/enc/ - там только восьмибитные представлены.

Попробовал так:

> pdf("1-20.pdf", family="NimbusSan");

> plot(1:20, main="Заголовок")

> dev.off()

> embedFonts("1-20.pdf")

> q()

Evgueni% locale

LANG=ru_RU.UTF-8

evince показал кириллицу.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Драйвера для доступу к разным БД есть. В принципе пару слов сказать можно.

А вот какое отношение R имеет php для меня загадка.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

php + mysql + jpgraph моя связка для построения бизнес интеледженс. Если R не имеет библиотечного доступа из разных языков веб программирования и апач в том числе - закапывайте, мне он не нужен и еще очень большому кол веб программистов

anonymous
()
Ответ на: комментарий от anonymous

А если например нужно будет в программе использовать какие-то статистические расчеты. Тогда можно ведь применить R, а дальше уже на основе, например, Python или C работать с полученными числами дальше? Вроде как есть какая-то привязка R и Python, но сам с таким еще не сталкивался, вот и спрашиваю :)

Shalakhin
()
Ответ на: комментарий от Shalakhin

> Вроде как есть какая-то привязка R и Python, но сам с таким еще не сталкивался, вот и спрашиваю :)

Естественно у R есть foreign language interface: http://cran.r-project.org/doc/manuals/R-exts.html#System-and-foreign-language...

Есть и связка с python'ом: http://rpy.sourceforge.net/

Даже куча примеров есть: http://www2.warwick.ac.uk/fac/sci/moac/currentstudents/peter_cock/python/heat...

asl
()
Ответ на: комментарий от dimon555

> взять arima сделать прогноз на форекс получить профит :)

на арима профит получить неможно :)

anonymous
()
Ответ на: комментарий от Evgueni

вывод в pdf в енкодинге работает, я и обрадовался что в Sweave тоже можно вставить русский не переключаясь в koi8-r

Картинка : << fig = TRUE > >= plot (1:20, main="Заголовок") @

вот эта штука генерит eps , но непонятно как ее заставить русские буквы показывать иначе чем все дела ведя в koi8-r.

не хватает pdf ( "1-20.pdf " , family = "NimbusSan" , encoding = "KOI8-R.enc " )

и embedFonts ( "1 -20.pdf" ) , вернее eps() с соответсвующими ключами в внутренностях Sweave.

anonymous
()
Ответ на: комментарий от asl

Вопрос к автору статьи

1. есть база данных организации на которой собираются заказы/клиенты/работа/деньги 2. есть php который генерит странички, в котором дирехтор или бухалтер вбивают дату и получают график о делах происходящих. В основном статистические сколько заказов в неделю месяц средние и т.п. 3. Пыхпых тянет данные из базы данных, обрабатывает!!! и помещает в jpgraph готовые обработанные массивы. Например количество заказов в неделю, высчитывает среднее в день на данной неделе и с начала отсчёта графика считает суммарное среднее или прогнозируемое минимальное. Но всё это делается в пыхпых из-за чего тормозит.

Как может мне помочь язык R?

тоесть могу ли я загнаить в него неделя 1 - 100 неделя 2 - 120 неделя 3 - 140 неделя н - 130 неделя м - 50 (вторник) получить а) график 100; 120; 140; .... б) в том же графике кривую среднее в день 100/6=16, 120/6=20, 140/6=2.3 в) в том же графике кривую 100; (100+120)/2=110; (110+140)/2=125; в) в том же графике кривую 100; (100+120)/2=110; (100+120+140)/3=120; г) построить прямую отсекающую топ-5 недель д) построить линию (100+120+140+130+...(50/2)*6)/m=123 е) для текущей недели построить красную рисочку - прогнозируемое количество в неделю как (50/вторник)*6=150

Вот, вначале обрабатываю с помощью мускл, потом пхп. jpgraph просто строит кучу массивов. а как поможет мне R, хоть убобством и скоростью?

anonymous
()
Ответ на: комментарий от asl

Сорри, как обычно user line break

Вопрос к автору статьи

1. есть база данных организации на которой собираются заказы/клиенты/работа/деньги
2. есть php который генерит странички, в котором дирехтор или бухалтер вбивают дату и получают график о делах происходящих. В основном статистические сколько заказов в неделю месяц средние и т.п.
3. Пыхпых тянет данные из базы данных, обрабатывает!!! и помещает в jpgraph готовые обработанные массивы. Например количество заказов в неделю, высчитывает среднее в день на данной неделе и с начала отсчёта графика считает суммарное среднее или прогнозируемое минимальное. Но всё это делается в пыхпых из-за чего тормозит.

Как может мне помочь язык R?

тоесть могу ли я загнаить в него
неделя 1 - 100
неделя 2 - 120
неделя 3 - 140
неделя н - 130
неделя м - 50 (вторник)
получить
а) график 100; 120; 140; ....
б) в том же графике кривую среднее в день 100/6=16, 120/6=20, 140/6=2.3
в) в том же графике кривую 100; (100+120)/2=110; (110+140)/2=125;
в) в том же графике кривую 100; (100+120)/2=110; (100+120+140)/3=120;
г) построить прямую отсекающую топ-5 недель
д) построить линию (100+120+140+130+...(50/2)*6)/m=123
е) для текущей недели построить красную рисочку - прогнозируемое количество в неделю как (50/вторник)*6=150

Вот, вначале обрабатываю с помощью мускл, потом пхп. jpgraph просто строит кучу массивов. а как поможет мне R, хоть убобством и скоростью?


anonymous
()
Ответ на: комментарий от anonymous

для postgres можно встраивать запросы на R
R скоростью не поможет, это же что-то схемоподобное, хочешь скорости перепиши на Си

>Например количество заказов в неделю, высчитывает среднее в день на данной неделе и с начала отсчёта графика считает суммарное среднее или прогнозируемое минимальное. Но всё это делается в пыхпых из-за чего тормозит.


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

dimon555 ★★★★★
()
Ответ на: комментарий от anonymous

> Вот, вначале обрабатываю с помощью мускл, потом пхп. jpgraph просто строит кучу массивов. а как поможет мне R, хоть убобством и скоростью?

Для отрисовки не сильно сложных графиков IMHO лучше использовать gnuplot - очень стабилен, прост и предсказуем. Хотя в принципе и R или ROOT приспособить. И там и там графики строятся правильно.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> вот эта штука генерит eps , но непонятно как ее заставить русские буквы показывать иначе чем все дела ведя в koi8-r.

Сделал в utf8

<<fig=TRUE>>=
plot(1:20, main="Заголовок")
@

и всё заработало (в PostScript Заголовок картинки на русском)

Естественно, преамбула:

\documentclass[a4paper,11pt]{scrartcl}
%\usepackage[warn]{mathtext}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{indentfirst}%first paragraph indent
\usepackage{cmap}
\usepackage[unicode=true]{hyperref}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{srcltx}
%научные символы и смайлики \smiley \frownie
\usepackage{wasysym}
\usepackage[noae]{Sweave}

Evgueni ★★★★★
() автор топика

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

Amorthis
()
Ответ на: комментарий от Evgueni

да, просто супер...

я зря pdf пытался делать с ним никак не генерится... вместо кирилицы "гирьку" какую то рисует, как все символы в стопку положил.

anonymous
()
Ответ на: комментарий от anonymous

> Вот, вначале обрабатываю с помощью мускл, потом пхп. jpgraph просто строит кучу массивов. а как поможет мне R, хоть убобством и скоростью?

могу только сказать что задача на R займет лист а4 10 шрифтом :) данные брать легко из мускла и выбрасывать отчеты тоже просто.

а вообще для задачи которую Вы "врукопашную" пытаетесь сделать есть такая вещь как OLAP. Свободная реализация mondrian, есть также OLAP сервер полукоммерческий под линукс, его вроде бесплатно дают немцы какие то.

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

anonymous
()
Ответ на: комментарий от anonymous

>я зря pdf пытался делать с ним никак не генерится... вместо кирилицы "гирьку" какую то рисует, как все символы в стопку положил.

Странно. pdflatex тоже работает, правда, там почему-то заголовок вправо съезжает.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Amorthis

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

а какую реализацию GMDH Вы сейчас используете?

anonymous
()
Ответ на: комментарий от anonymous

$ cat /etc/debian_version

lenny/sid

А точнее Ubuntu 8.10 - как-то так.

Ничего специально не настраивал.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от anonymous

кстате если кто еще не поставил себе rcompgen (Completion generator for R) очень рекомендую... расслабляет однако.

anonymous
()
Ответ на: комментарий от anonymous

> у меня debian testing, ни pdflatex ни dvipdf корректно eps картинку от sweave не вставляют.

Да, естественно, pdflatex может вставлять только pdf.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

> Да, естественно, pdflatex может вставлять только pdf

странно, картинка есть :) вот русского правда нет :(

anonymous
()
Ответ на: комментарий от anonymous

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

кстати буду рад любому просвещению по этой теме (может где и реализовали уже хорошо)

Amorthis
()
Ответ на: комментарий от anonymous

я говорил не о себе а о вообще уровне языка подключить можно вообще что угодно и к чему угодно (только вопрос останеться в работоспособности) и действительно расстроило отсутствие в нём одного из основного метода стат обработки....

там старые реализации на вортране или проприетарные ...

Amorthis
()
Ответ на: комментарий от Amorthis

> там старые реализации на вортране

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

а вообще алгоритм несложный, вдобавок эмпирический --- может поэтому и не реализуют.

мне так хватает при поиске зависимостей сделать с независимыми переменными prcomp(x)$x .

anonymous
()
Ответ на: комментарий от dimon555

> а чего это он основным вдруг стал?

а ты знаешь другой алгоритм для построения функциональной зависимости ( в виде формулы) для эмперических данных ( набора экспериментальных данных) причём что если уж и решать прикладные задачи в статистике то в основном они того и требуют

Amorthis
()
Ответ на: комментарий от anonymous

>вот на плюсах весь метод, паралельная и обычная реализации...

ну скажем так параллел комби далеко не лучшая реализация если не больше сказать что она вообще далековата от реальности.....

Amorthis
()
Ответ на: комментарий от Amorthis

>а ты знаешь другой алгоритм для построения функциональной зависимости

прикладной регрессионный анализ? не

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.