Журнал LinuxFormat - перейти на главную

LXF104:R

Материал из Linuxformat
Версия от 11:16, 14 апреля 2009; Crazy Rebel (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
R Свободный инструментарий для статистической обработки данных

Начала анализа

ЧАСТЬ 4 Данные собраны и упакованы – настало время извлечь из них пользу. В конце концов, ведь именно для их анализа вы и поставили R! Алексей Шипунов и Евгений Балдин подскажут пару приемов


Начнём с самых элементарных приёмов анализа – вычисления общих характеристик выборки, т.е. набора значений, полученных в результате ряда измерений. Можно сказать, что таких характеристик всего две: центр и разброс. В качестве центральной характеристики чаще всего используются среднее и медиана, а в качестве разброса – стандартное отклонение и квартили. Среднее отличается от медианы прежде всего тем, что оно хорошо работает в случае, если распределение данных близко к нормальному. Медиана не так зависит от характеристики распределения, то есть, как говорят статистики, она более робастна, или устойчива. Понять разницу легче всего на реальном примере. Возьмём опять наших гипотетических сотрудников. Вот их зарплаты (в тыс. руб.):

> salary <- c(21, 19, 27, 11, 102, 25, 21)
> names(w) <- c(“Коля”, “Женя”, “Петя”, “Саша”,

+ “Катя”, “Вася”, “Жора”)

> salary
Коля Женя Петя Саша Катя Вася Жора
 21 19        27 11 102 25 21

Разница в зарплатах может быть обусловлена, например, тем, что Саша – экспедитор, а Катя – глава фирмы. Посмотрим, чему равен центр:

> mean(salary); median(salary)
[1] 32.28571
[1] 21

Получается, что из-за высокой Катиной зарплаты среднее гораздо хуже отражает «типичную», центральную зарплату, чем медиана.

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

> attach(trees)
> mean(Girth)
[1] 13.24839
> mean(Height)
[1] 76
> mean(Volume/Height)
[1] 0.3890012
> detach(trees)

Команда attach позволяет присоединить колонки таблицы данных к списку текущих переменных. После этого к переменным можно обращаться по именам, не упоминая имени таблицы. Важно не забыть сделать в конце detach(), потому что велика опасность запутаться в том, что вы присоединили, а что – нет. Кроме того, если присоединённые переменные были как-то модифицированы, на самой таблице это не скажется.

То же самое можно сделать и слегка по-другому:

> with(trees, mean(Volume/Height))
[1] 0.3890012

Этот способ, в сущности, аналогичен первому, только присоединение происходит внутри круглых скобок. Можно также воспользоваться тем фактом, что таблицы данных – это списки колонок:

> lapply(trees, mean)
$Girth
[1] 13.24839
$Height
[1] 76
$Volume
[1] 30.17097

Для строк такой прием не сработает, т.е. придется прибегнуть к apply(). Не следует забывать, что циклические конструкции типа for в R использовать не рекомендуется.

Вот как опредяляются стандартное отклонение, варанса (его квадрат) и так называемый межквартильный размах (IQR):

> sd(salary); var(salary); IQR(salary)
[1] 31.15934
[1] 970.9048
[1] 6

Опять-таки, IQR лучше подходит для примера с зарплатой, чем стандартное отклонение, и снова – из-за высокой зарплаты у главы фирмы.

> attach(trees)
> mean(Height)
[1] 76
> median(Height)
[1] 76
> sd(Height)
[1] 6.371813
> IQR(Height)
[1] 8
> detach(trees)

А вот для деревьев эти характеристики куда ближе друг к другу. Разумно предположить, что распределение высоты деревьев близко к нормальному.

Персональные инструменты
купить
подписаться
Яндекс.Метрика