0:12
Приступим к нашему первому анализу данных.
Создаем новый скрипт.
В начале скрипта нам потребуется четыре пакета.
Соответственно, вы должны самостоятельно установить эти пакеты.
Нам понадобятся следующие пакеты, мы напишем, мы будем использовать пакет
psych, – это, соответственно,
пакет, в котором мы будем использовать всякие описательные статистики удобно.
Мы будем использовать пакет dplyr для обработки данных,
будем использовать пакет ggplot2 для симпатичных
графиков и будем использовать пакет GGally для матрицы диаграмм рассеяния.
Ну, давайте сразу быстро пробежимся, над каждой командой нажмем Ctrl + Enter.
Раз, два, три, четыре.
Если компьютер выдал не предупреждение, как у меня, а ошибку, что пакета нет,
соответственно, вам нужно установить пакет через Tools – Install Packages.
В R существует много встроенных наборов данных, давайте возьмем,
рассмотрим исторический набор данных по автомобилям 1920-х годов.
Мы возьмем табличку, которая называется cars, и для удобства, чтобы не писать все
время cars, мы ее поместим в переменную, пусть будет, d, это будут наши данные.
Еще раз: cars – это встроенный в R набор данных.
Давайте посмотрим на него.
Когда у вас есть набор данных, то на него, конечно, нужно посмотреть.
Набираем команду glimpse, это означает бросить взгляд на набор d.
Соответственно, мы здесь видим, что в нашей табличке d есть две переменные:
speed, ну, можно догадаться, что это скорость, и dist, это какая-то дистанция.
Соответственно, про ваш набор данных, который есть у вас, вы, конечно,
сами должны знать, какая переменная что там означает,
но поскольку набор данных cars встроен в R, то поэтому можно вызвать справку
help(cars) и посмотреть, что там означает каждая переменная.
И вот здесь мы видим, что это набор данных: 50 наблюдений, две переменных,
speed – это скорость машины в mph (это мили в час),
и dist – это длина тормозного пути в футах.
Соответственно, что еще можно сделать с набором данных, когда он у вас загружен?
Когда вы загружаете какой-то большой набор данных, то неплохо бы проверить,
что все корректно перенеслось в R, то есть посмотреть на начало таблички head(d),
это первые шесть наблюдений, посмотреть на хвостик, конец таблички tail(d),
можно посмотреть описательные статистики describe(d).
Соответственно, мы видим, что вот у нас есть переменная speed,
скорость, число наблюдений – 50, среднее – 15,40,
стандартное отклонение – 5,29, медиана – 15 и так далее.
И, соответственно, тормозной путь – 50 наблюдений,
среднее – 42 фута, стандартное отклонение – 25 футов и так далее.
Минимальный, максимальный, разница между минимум и максимум и так далее.
Точно также можно посмотреть количество наблюдений отдельно, извините,
количество столбцов, количество переменных ncol(d) (number of columns), две колонки,
число строк, то есть количество наблюдений, (number of rows) nrow(d),
и полезно еще посмотреть структуру набора данных d str(d).
Соответственно, здесь будет сказано, что это объект типа data.frame,
50 наблюдений, две переменных, название переменной, тип,
что каждая из них числовая, и первые несколько наблюдений.
Соответственно, можно из набора данных
d извлечь отдельный вектор и работать с отдельными векторами.
Например, если я хочу посчитать среднюю скорость руками,
то я могу набрать среднее d, $ и скорость хранится в переменной speed.
Соответственно, нажимаю Ctrl + Enter,
получаю среднюю скорость в табличке d.
Когда у вас есть данные, то, как правило,
нужна какая-то предварительная обработка данных.
У нас данные представлены, скорость в милях в час,
а длина тормозного пути — в футах.
Русскоязычному человеку
это не совсем удобно, привычней километры в час и,
соответственно, метры, поэтому нам надо изменить переменные для того чтобы нам
самим было удобней понимать, и для этого используется команда mutate.
Соответственно, mutate, эта команда означает изменить набор данных,
а дальше надо указать формулы, по которым меняется набор данных.
То есть мы создадим новую табличку, давайте назовем ее d2.
И эта новая табличка, мы пишем mutate(d),
то есть мы изменяем табличку d и создаем новую табличку, тем самым, d2, и формулы,
по которым меняем табличку, будут следующие: speed =...
если вы посмотрите, скажем, «Википедию»,
то вы обнаружите, что в одной миле примерно 1,6 километра, то,
соответственно, чтобы перевести мили в час в километры в час,
вам надо старую скорость домножить на 1,67.
И вы точно также обнаружите, что один фут – это примерно 0,3 метра,
соответственно, чтобы перевести длину тормозного пути в метры,
вы должны старую длину помножить на 0,3.
Точно также можно, например, создать новую переменную, скажем,
отношение, во сколько раз отличается тормозной путь от скорости,
например, могу создать переменную ratio, которая будет
равняться тормозной путь делить на скорость.
Давайте я оформлю это выражение в несколько строчек, чтобы его было видней.
И здесь видно,
что табличку d меняю в соответствии с формулами и получаю новую табличку d2.
Поскольку это команда из двух строчек, мне, ну,
либо два раза надо нажать Ctrl + Enter, либо выделить и нажать один раз.
Нажимаю Ctrl + Enter, Ctrl + Enter, у меня появилась табличка d2.
Можно точно так же посмотреть на табличку d2.
И здесь, соответственно, три переменных: скорость, она уже в километрах в час,
очень удобно, привычно, вот скорость машины в 1920-ом году,
вот 6,68 километров в час или 13 километров в час,
просто и понятно; и длина тормозного пути 3 метра, 4,8 метра.
Перед тем, как приступать к построению регрессий или оценке гораздо более
сложных моделей, обязательно посмотрите на ваши данные, постройте графики.
Графики позволяют не только избежать каких-то крупных ошибок,
но и сделать серьезные научные открытия.
Ну, поскольку у нас набор данных не такой богатый, у нас, собственно,
всего две исходных переменных: скорость машины и длина тормозного пути,
то, соответственно, мы построим два простых графика.
Первый график, который мы построим,
это будет просто график для выяснения закона распределения, или гистограмма.
Соответственно, мы наберем команду для построения графиков qplot,
данные мы возьмем из набора данных d2, то есть мы пишем data = d2, ну,
потому что у нас есть два набора данных, d и d2,
по сути это одни и те же данные, только в разных единицах измерения.
d – это футы и мили в час, а d2 – это метры и километры в час.
Ну, мы работаем с набором данных d2.
Соответственно, и нам надо построить гистограмму переменная длина
тормозного пути.
Написали функцию, нажимаем Ctrl + Enter и получаем график.
То есть вот мы по графику видим, что бывает, конечно, очень длинный тормозной
путь, вон, сколько тут, 40 метров почти, ну, такая машина все-таки всего одна,
потому что по вертикали отложено количество машин, ну а большинство,
длина тормозного пути вот, скорее, сосредоточена вокруг 10 метров.
Соответственно, надо всегда осознавать,
что графики бывают двух типов: одни вы строите для себя, по-быстрому построил,
понял, что на графике, представил себе данные и пошел дальше
работать; а бывают графики, которые вы строите для публикации, для презентации,
и к ним надо подходить с гораздо большими затратами времени.
Вот этот график для публикации не годится, что такое dist, что такое count?
Ну, то есть мы-то знаем, что dist – это длина тормозного пути,
а count – это количество машин, но нам потребуется дописать эти параметры.
То есть если мы хотим, чтобы график был хорошим графиком,
то здесь надо указать подпись по оси Х хlab =, ну, и тут мы, соответственно,
назовем длина, длина тормозного пути (метров).
Точно также мы добавим подпись по оси Y,
можно сделать команду в несколько строк.
Соответственно, подпись по оси Y – это количество машин,
и точно также надо, вообще говоря, добавить название графика,
что это за данные, ну, и тут напишем «Данные 1920-х годов»,
и вот этот график уже гораздо более, так,
что-то я тут не указал, а, я забыл, что надо встроить переменную dist.
Раз, два, три.
Соответственно, вот этот график уже более понятен.
Критерий понятности графика очень простой: если вы вырезаете из научной
статьи график и понятно, что на нем изображено, значит, это хороший график.
Если вы вырезаете и вам надо смотреть, ой, dist, это что такое?
Сount, ой, это что такое?
Это не хороший график.
Хороший график понятен, будучи вырезанным из работы.
Ну, и второй график, который мы можем построить для нашего набора данных, ну,
на этот раз мы построим его быстро и для себя.
Данные возьмем из набора данных d2,
по горизонтали отложим скорость машины, а по вертикали
отложим длину тормозного пути, чтобы понять, как связаны эти переменные.
Нажимаем Ctrl + Enter или Command + Enter и получаем такую естественную зависимость:
чем выше скорость машины, тем больше длина тормозного пути.
И, соответственно, дальше мы сможем перейти к оценке моделей.