Язык статистических расчетов R

Январь 25, 2008

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

Рассмотрим работу в системе R. Пусть у нас есть цифровая модель рельефа в формате GRASS. Чтобы иметь возможность пользоваться ей в R, экспортируем ее в формат .xyz.

Теперь запускаем R и присваиваем переменной elevation матрицу данных из файла elevation.xyz.

elevation <- read.table(«~/elevation.xyz»)

В скобках через запятую можно также перечислить параметры описывающие файл подробнее: header=TRUE — если в файле в первой строке находятся заголовки таблицы; sep=»;» — разделитель столбцов; na.string=»NA» — символьное выражение, которое будет интерпретироватся как отсутствие данных (null). Полный перечень параметов можно узнать набрав:

?read.table

Вообще, такой способ интеграции GRASS и R мягко говоря кривой. Для этой цели служит специальный пакет spgrass6. Учитывая неоценимую значимость этого пакета для пространственных исследований, в дальнейшем планирую подробно его описать в блоге. Пока же, привел этот пример чтобы показать возможность импорта в R внешних данных, хранящихся в простом текстовом файле. Обычно такой способ хранения удобнее, чем использование сложных бинарных форматов.

Чтобы просмотреть какого рода данные у нас в переменной elevation вводим:

str(elevation)

‘data.frame’:   229843 obs. of  3 variables:
$ V1: int  2 3 4 5 6 7 8 9 10 11 …
$ V2: int  2 2 2 2 2 2 2 2 2 2 …
$ V3: int  128 155 180 196 219 232 233 236 239 238 …

…что означает что переменная содержит таблицу данных из трех колонок V1, V2, V3, и типом данных каждой их них является integer. Краткую статистическую характеристику можно увидеть набрав:

summary(elevation)

V1               V2              V3
Min.   :   2.0   Min.   :  2.0   Min.   :   1.0
1st Qu.: 196.0   1st Qu.:148.0   1st Qu.:  74.0
Median : 380.0   Median :220.0   Median : 163.0
Mean   : 401.5   Mean   :216.9   Mean   : 195.2
3rd Qu.: 593.0   3rd Qu.:283.0   3rd Qu.: 282.0
Max.   :1199.0   Max.   :450.0   Max.   :1293.0

Работать с такими малоговорящими названиями как V3 не совсем удобно, поэтому лучше переименовать их в понятные «x», «y», «z»:

names(elevation)  <- c(«x»,»y»,»z»)

Смотрим гитограмму высот:

 hist(elevation$x,main=»Histogram of elevation», xlab=»Elevation, m»)

elevation.png

Чтобы записать гистограмму в файл, вводим:

postscript(«elevation.ps»)

После этого все графики, что мы рисуем, вместо графического окна будут отправляться на postcript-driver. Запись post-script файла на диск осуществляется командой:

dev.off()

elevation.png

Для записи png файла используется оператор png().

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

Основная информация об R находится, естественно, на сайте разработчиков: http://www.r-project.org/.

Хорошую подборку материалов на русском языке можно найти на сайте А.Шипунова: http://herba.msu.ru/shipunov/software/r/r-ru.htm. Также, базовые знания можно получить из этой замечательной методички: http://gis-lab.info/docs/r-metoda-2006.10.23.pd. А здесь методичка подробнее:  http://www.uic.nnov.ru/~zny/ml//Materials/lab1.pdf

Реклама

комментария 2 to “Язык статистических расчетов R”

  1. sim Says:

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

    Работа с растровыми данными в R
    http://gis-lab.info/qa/rgdal.html

    Возможности работы с пространственными данными статистического пакета R
    http://gis-lab.info/qa/rspatial.html

  2. fatune Says:

    Статьи содержательные, особенно та, что по интеграции. Планировал сослаться на них в грядущем посте об spgrass6, но ты меня опередил. 😉


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: