Н.И.АКБЕРОВА
Учебно-методическое пособие
Казань – 2014
Целью этих практических занятий является познакомить вас с R и RStudio,
которые вы будете использовать на протяжении всего курса и изучить
статистические понятия, рассмотренные в лекциях, а также научиться
анализировать реальные данные и делать обоснованные выводы.
R - это название языка программирования и RStudio является удобный интерфейс.
2
способ доступа к данным, их организации, описания и вызова статистических
выкладок.
Для начала введите в командную строку R (т.е. сразу после > в консоли). Можно
сделать ввод вручную или скопируйте и вставьте из этого документа:
source("http://www.openintro.org/stat/data/present.R")
Данные Present
present
3
воспользоваться, чтобы получить доступ к данным из отдельных лет), вторым
является год, а третий и четвертый - количества рожденных в этом году мальчиков и
девочек, соответственно. Воспользуйтесь полосой прокрутки на правой
стороне окна консоли для изучения полного набора данных.
dim(present)
Эта команда должна вывести [1] 633, указывая, что в фрейме есть 63 строки и 3
колонки. Вы можете увидеть имена этих столбцов (или переменных), введя:
names(present)
4
Вы видите, что фрейм данных содержит колонки year, boys и girls. На этом
этапе вы можете заметить, что команды в R похожи на математические
функции, и вызов R команд означает выполнение функции с некоторым
числом аргументов. Команды dim и names , например, имеют единственный
аргумент - название фрейма данных.
Небольшое исследование
(a) present$boys
(b) present$girls
(c) girls
(d) present[girls]
(e) $girls
5
в каждой строке. Теперь данные больше не структурированы в виде таблицы с
другими переменными, поэтому они отображаются один за другим. Объекты,
которые печатаются в этом случае, называются векторами; они представляют
собой набор цифр. R добавил числа в скобках [ ] в левой части распечатки, чтобы
указать местоположение в пределах вектора. Например, за [1] следует 1211684,
что указывает на то, что 1211684 является первым элементом в векторе. И если
[43] начинает строчку, то это означает - первое число в этой строке будет
представлять 43-ю запись в векторе.
6
Вопрос 3 [выбрать ответ] Существует ли наметившаяся тенденция
в количестве девочек, рожденных за эти годы? Как бы вы ее
описали?
Как же узнать, что можно было добавить третий аргумент. Для удобства
пользователей все функции в R хорошо задокументированы. Чтобы прочитать,
что делает функция и узнать аргументы, которые доступны, просто наберите в
вопросительный знак, за которым следует имя функции. Например, попробуйте
следующее:
?plot
1211684 + 1148715
7
чтобы увидеть общее количество рождений в 1940 году. Мы могли бы
повторить это каждый раз для каждого года, но есть более быстрый
способ. Если мы сложим вектора рождения для мальчиков и девочек, R
вычисляет все суммы одновременно:
present$boys + present$girls
8
посмотреть функцию which.max.
1211684/1148715
present$boys/present$girls
1211684/(1211684 + 1148715)
present$boys/(present$boys + present$girls)
9
Вопрос 5 [TRUE / FALSE] Теперь сделайте график доли мальчиков
с течением времени, и на основе графика определите, является ли
следующее утверждение истинным или ложным ( TRUE или
FALSE): доля мальчиков, родившихся в США, уменьшилась с
течением времени.
◦ TRUE
◦ FALSE
Совет: с помощью клавиш со стрелками вверх и вниз вы можете
просматривать предыдущие команды вашей так называемой
истории команд. Вы также можете получить доступ к ней,
нажав на вкладке history в верхней правой панели. Это позволит
вам сэкономить много времени в будущем.
11
Эти данные взяты из отчета Центров по контролю за заболеваниями
(http:// www.cdc.gov/ nchs/ data/ nvsr/ nvsr53/ nvsr53 20.pdf ). Вы можете
посмотреть его, если вы хотите прочитать больше об анализе
соотношения полов при рождении в США.
Данные
12
названия, BRFSS предназначена для выявления факторов риска для здоровья
среди взрослого населения и выявления новых тенденций. Например,
респондентам задают вопросы об их диете и еженедельной физической
активности, статуса ВИЧ-инфицирования, об употреблении табака, а также
уровня по медицинскому обеспечению. На веб-сайте BRFSS (http://
www.cdc.gov/ brfss) содержится полное описание исследования, в том числе
научно-исследовательских вопросов, которые мотивируют этот проект, и много
интересных результатов, полученных из данных BRFSS.
Мы сосредоточимся на случайной выборке в 20000 человек из опроса BRFSS,
проведенного в 2000 году. Хотя в этой базе данных более 200 переменных,
мы будем работать с небольшой группой переменных различных типов.
Начнем с загрузки набор данных 20000 наблюдений в рабочее пространство R.
После запуска RStudio, введите следующую команду:
source("http://www.openintro.org/stat/data/cdc.R")
13
Переменная hlthplan указывает, имеет ли респондент медицинское страхование
в той или иной форме (1) или нет (0). Переменная smoke100 указывает, выкурил
ли респондент по крайней мере 100 сигарет в своей жизни. Другие переменные
записывают рост респондента в дюймах (height), вес в фунтах(weight), а также
их желаемый вес (wtdesire) , возраст (age) и пол (gender).
14
Иточно так же мы можем посмотреть на несколько последних записей,
введя:
tail(cdc)
Вы также можете посмотреть на весь фрейм данных сразу, введя его название в
консоль, но это может быть неразумным. Мы знаем, что cdc имеет 20000 строк,
и чтение всего набора данных будет перегружать ваш экран. Лучше бросить
быстрые взгляды на небольшие фрагменты с использованием head, tail или
методов выделения подмножества, с которыми вы позже познакомитесь
Сводки и таблицы
Анкета BRFSS это огромная сокровищница информации. Первым шагом в
любом анализе является необходимость первести всю эту информацию в
несколько сводных таблиц статистических данных и в графики. В качестве
простого примера, функция summary возвращает численное резюме:
минимальное значение, первый квартиль, медиану, среднее, второй квартиль, и
максимальное значение
Для того, чтобы получить это для переменной weight , введите:
summary(cdc$weight)
Получим в результате:
15
R имеет также встроенные функции для вычисления параметров сводной
статистики по одному. Например, чтобы вычислить среднее, медиану и
дисперсию веса (weight), введите :
mean(cdc$weight)
var(cdc$weight)
median(cdc$weight)
16
smoke = table(cdc$smoke100)
barplot(smoke)
Мы могли бы сделать это в два этапа путем сохранения таблицы в одной строке и
применяя mosaicplot в следующей (см. пример с table/barplot выше).
18
знаем, что weight является шестой переменной, потому что это шестой элемент
в списке имен переменных
names(cdc)
Для того, чтобы увидеть вес первых 10-ти респондентов , нужно ввести:
cdc[1:10, 6]
Наконец, если мы хотим все данные для первых 10-ти респондентов, вводим:
cdc[1:10, ]
или
cdc$age > 30
20
создаст новый набор данных с именем mdata, содержащий только мужчин из
фрейма данных cdc . (Обратите внимание на двойной знак равенства!). Вы
можете взглянуть на первые несколько рядов, как обычно:
head(mdata)
выберет данные для мужчин или всех респондентов старше 30 лет (чем эта
группа может быт интересна на вскидку сказать сложно, сейчас важна
техническая сторона). В принципе, вы можете использовать столько "и" и
"или", сколько вам нравится для перехода к подмножеству.
Вопрос 9 [выбрать] Что является ложью (false) на основании boxplot BMI vs.
general health?
(a) Медиана индекса массы тела примерно 25 для всех категорий общего
состояния здоровья, но есть небольшое увеличение медианы BMI по мере
снижения общего состояния здоровья (от excellent до poor).
(b) IQR несколько увеличивается по мере снижения общего состояния здоровья
(от excellent до poor).
(c) Среди людей с отменным здоровьем (excellent) есть некоторые с необычно
низкими BMI по сравнению с остальной частью группы.
(d) Распределения BMI каждой группы по состоянию здоровья скошены
влево.
23
Наконец, давайте сделаем несколько гистограмм. Мы можем посмотреть на
гистограмму для возраста респондентов с помощью команды:
hist(cdc$age)
24
Заключение
Проделанный анализ данных позволил нам достаточно хорошо продвинуться в
анализе информации из анкет BRFSS. Мы нашли интересную связь между
курением и полом, что-то можем сказать о взаимосвязи между оценкой людьми
их общего состояния здоровья и их BMI. Мы также получили существенные
вычислительные средства – научились рассчитывать статистические сводки
данных, отбирать подмножества и строить графики. Все эти методы будут
использоваться на протяжении всего курса.
25
Контрольные задания
Задание 1
American Community Survey предоставляет скачиваемые данные из различных
обследований общества в Соединенных Штатах. С помощью команды
download.file () скачать данные из опроса о жилье в штате Айдахо в 2006 г. с
сайта :
https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Fss06hid.csv
Загрузите эти данные в R. Книга кодирования, описывающая имена переменных
находится по адресу:
https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FPUMSDataDict06.pdf
25
47
24
53
Задание 2
Используйте данные из задания 1. Рассмотрим переменную FES. Какой из
принципов "аккуратных данных" (tidy data) нарушаются в этой переменной?
Задание 3
Скачать Excel таблицу из данных Natural Gas Aquisition Program по адресу:
26
https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FDATA.gov_NGAP.xlsx
(original data source: http://catalog.data.gov/dataset/natural-gas-acquisition-program)
Прочитайте строки 18-23 и столбцы 7-15 в R и присвойте результат переменной
с именем dat
Чему равно значение выражения sum(dat$Zip*dat$Ext,na.rm=T)
338924
184585
NA
36534720
Задание 4
Прочитайте XML данные о ресторанах г.Балтимора с сайта:
https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml
Сколько ресторанов имеют zipcode 21231?
181
127
156
100
Задание 5
Скачайте данные опроса 2006 г. о жилье для штата Айдахо с помощью команды
download.file () по адресу:
https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Fss06pid.csv
Используя команду fread() загрузите данные в R, назовите объект DT
Что из перечисленного ниже является самым быстрым способом для расчета
средних значений переменной pwgtp15 для мужчин и женщин с использованием
пакета data.table?
tapply(DT$pwgtp15,DT$SEX,mean)
mean(DT[DT$SEX==1,]$pwgtp15); mean(DT[DT$SEX==2,]$pwgtp15)
DT[,mean(pwgtp15),by=SEX]
27
rowMeans(DT)[DT$SEX==1]; rowMeans(DT)[DT$SEX==2]
sapply(split(DT$pwgtp15,DT$SEX),mean)
mean(DT$pwgtp15,by=DT$SEX)
Задание 6
Рассмотрим приведенную ниже таблицу с описанием набора данных лиц,
которые добровольно зарегистрировались в государственной школе.
Задание 7
В социальном обследовании, проводимом ежегодно в Соединенных Штатах,
спрашивается, сколько друзей у людей (number of friends) и как они оценивают
свой уровень счастья (very happy, pretty happy, not too happy). Для того чтобы
оценить связь между этими двумя переменными исследователь вычисляет
среднее количество друзей для людей, которые классифицировали себя как очень
28
счастлив, довольно счастлив, и не слишком счастлив. Какие переменные
независимые? зависимые ?
Задание 8
В исследовании, опубликованном в 2011 PNAS USA, 120 пожилых мужчин и
женщин (средний возраст около 65 лет), которые добровольно согласились
участвовать в этом исследовании, были случайным образом распределены в две
группы. В первой группе добровольцы ходили по дорожке в парке три раза в
неделю; в другой - делали множество менее аэробных упражнений, в том числе
йогу и тренировки с отягощением. Через год сканирование мозга показало, что у
«пешеходов»гиппокамп (часть мозга, отвечающая за формирование
воспоминаний) увеличился в объеме в среднем примерно на 2%; в другой группе
объем гиппокампа снизился на 1,4%. Что из перечисленного ниже ложно?
Задание 9
Что из ниже перечисленного является одним из четырех принципов
экспериментального дизайна?
стратификация
контроль
29
клстеризация
нет ответа
Задание 10
Что из нижеперечисленного является шириной коробки («ящика») - показано
оранжевым на рисунке?
стандартное отклонение
медиана
диапазон
IQR (межквартильный диапазон)
среднее
Задание 11
Правда или ложь: Статистика среднее / медиана (среднее разделить на
медиану) может использоваться в качестве меры асимметрии (или правой, или
левой). Если эта статистика меньше 1, распределение, скорее всего, скошено
влево.
ложь
правда
Задание 12
Два распределения (A и B), показаны на графике ниже. Что из
нижеперечисленного не подтверждается графиком?
30
Оба распределения примерно симметричны
Оба распределения унимодальны
Медиана А превышает медиану В
вариабельность в В больше, чем в А.
Задание 13
В одном американском городе был проведен опрос о жилье, чтобы определить
цену типичного дома в городе, в котором проживает в основном средний класс,
но есть очень дорогой пригород. Средняя стоимость дома в этом городе
примерно $ 650 000. Что из нижеперечисленного является наиболее вероятно
правдой?
Задание 14
Довольно часто рыбу маркируют ошибочно в супермаркетах и даже в
ресторанах. В приведенной ниже таблице показаны результаты исследования, где
случайная выборка из 156 рыб, приготовленных для продажи, были генетически
протестированы. Исследователи классифицируют каждый образец как
маркированный правильно или ошибочно. Какая часть копченой рыбы в пробе
31
была неправильно маркирована? Выберите самый близкий ответ.
78%
72%
18%
9%
28%
Задание 15
Профессора регулярно дают две версии экзамена, при этом Профессор также
может предоставить сводную статистику по каждой версии. Предположим,
приводится следующее краткое изложение:
32
Мы должны знать минимум и максимум для каждой версии, чтобы
определить, действует ли этот аргумент.
Да. Разница в средних экзаменационных оценках означает, что существует
разница в сложности между версиями.
Нет. Средние баллы близки при рассмотрении разброса распределений.
Разница может быть случайной.
Нет. Медиана версии А выше
33