2 Базовая статистика с R

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

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

Хорошие ссылки для получения дополнительной информации об основных задачах:

Quick-R на http://www.statmethods.net/stATS/index.html

Ресурсы UCLA R на http://www.ats.ucla.edu/stat/r/

В Интернете также есть много вводных видеороликов. Найдите тот, который вам подходит. https://www.youtube.com/watch?v=uwlwNRbaKMI - разумное введение в использование RStudio.

Чтобы проиллюстрировать вычисления, мы будем использовать несколько простых наборов данных. Книга Бернарда Рознера «Основы биостатистики» включает множество примеров, а используемые в книге наборы данных можно загрузить с http://www.statsci.org/datasets.html. Данные предоставляются в заархивированном виде, но когда они распакованы, у вас есть много простых текстовых файлов.

2.2 Чтение данных

В качестве примера возьмем FEV.DAT из книги Рознера. Текстовый файл содержит данные о функции легких у детей. Для каждого субъекта имеется одна строка, а столбцы содержат идентификационный номер ребенка, возраст, объем форсированного выдоха (FEV), рост, пол и то, курили ли они в настоящее время. ВРЭ - это мера того, сколько воздуха вы можете вытолкнуть из легких за 1 секунду, выдыхая изо всех сил. Макет файла:

столбец Переменная формат
1-5идентификационный номер
7-8Возраст (лет)
10-15ОФВ (литры)X.XXXX
17-20Высота (дюймы)XX.X
22Секс0 = женский / 1 = мужской
24Статус курения0 = не курильщик / 1 = курильщик

Файл FEV.DAT не включает имена столбцов, поэтому нам нужно будет прочитать данные, а затем задать имена. Я прочитал данные с помощью функции read.fwf (), которая предназначена для данных в фиксированных столбцах. Нам нужно установить две опции при использовании read.fwf (); они помещены в скобки функции. Первое - это имя файла, которое представляет собой строку, поэтому должно быть заключено в кавычки. Второй - вектор ширины столбцов; они задаются с помощью функции c ().

На моем компьютере файл FEV.DAT был сохранен в каталоге K: / TEACHING / R / Data / ROSNER, поэтому я начал с того, что сделал его своим рабочим каталогом. Я прочитал данные во фрейм данных под названием FEV, назвал столбцы, а затем сохранил данные в формате R, чтобы их можно было быстро перечитать при необходимости. Вот код, я отбросил приглашение,>и вставил пробелы после запятых, чтобы облегчить чтение,

Мы можем проверить первые несколько строк данных, чтобы убедиться в их правильности, используя команду head,

2.3 Описательная статистика

Первая задача - вычислить средние значения, стандартные отклонения и т. Д. Команда summary () выдает полезную статистику, но не включает стандартное отклонение. Вот сводка возрастов детей. Помните, что возраст находится внутри FEV фрейма данных, поэтому нам нужна нотация $ (см. R1.4). Я покажу результат на сером фоне, чтобы его можно было отличить от команд.

Существует множество функций для вычисления отдельной статистики, включая mean (), sd (), var (), min (), max (), median (), range () и quantile (). Вот несколько примеров.

2.4 Выбор подмножеств данных

Когда функция возвращает множество значений, может быть полезно сохранить их в именованном объекте, а затем обращаться к ним по отдельности. Здесь мы сохраняем все сводки по возрасту, а затем отображаем 4-е значение. Обратите внимание на использование квадратных скобок для получения элемента из объекта и на то, что любая команда без присваивания (

Мы можем использовать тот же [] для доступа к элементам из самих данных. Вот возраст первого лица

Фрейм данных имеет строки и столбцы, поэтому мы можем получить доступ к элементам, используя [row, column]. Поскольку возраст указан в столбце 2, мы также можем получить возраст первого человека с

Если вы не укажете одно из двух чисел, это будет означать целую строку или целый столбец. Вот все значения в строке 5

Мы также можем использовать индексы для извлечения подмножеств данных. У нынешних курильщиков ОФВ $ курения равен 1, поэтому мы можем получить возраст всех курильщиков с

Обратите внимание на использование двойного равенства для проверки равенства. Цифры в квадратных скобках помогают найти положение числа в векторе, например, 50-е значение - 16.

Поэтому, если нам нужен средний возраст курильщиков, мы используем

2,5 отсчетов

Другой формой описательной статистики является подсчет количества субъектов с определенной характеристикой. Давайте начнем с подсчета общего количества детей, а затем подсчитаем количество мужчин (пол == 1) и женщин (пол == 0), а затем вычислим пропорции.

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

Одним из ограничений этих таблиц является то, что у нас нет никаких ярлыков, чтобы отличать мужчин от женщин и т. Д. Это связано с тем, что курение и пол хранятся в виде чисел во фрейме данных. Для создания ярлыков нам нужно превратить пол FEV $ в фактор.

Здесь мы создали коэффициент для целей этого расчета, поэтому коэффициент не сохраняется, а метки теряются после отображения таблицы. Альтернативой может быть сохранение столбца FEV $ пол в качестве фактора, чтобы метки были доступны для всех последующих команд.

Здесь япереписалпол FEV $, поэтому исходная числовая версия утеряна.

2.6 Отсутствующие значения

NA - это символ R для пропущенного значения.

Действие R по умолчанию, когда значения отсутствуют, - это предположить, что описательная статистика, такая как среднее, не может быть вычислена. Если вы хотите получить среднее значение из непропущенных значений, вы должны указать это с помощью опции na.rm (удалить NAs). summary () сообщает количество пропавших без вести. Для иллюстрации мы заменим все значения fev выше 4.0 пропущенными значениями.

2.7 Корреляция

Функция cor () вычисляет различные типы корреляции. Наиболее часто используются корреляции Пирсона и Спирмена. Перечитаю данные, чтобы в fev не было пропущенных значений.

Как и в случае с любой другой командой, вы набираете help (cor), чтобы получить информацию о параметрах.

2.8 t-тесты

Возможно, наиболее часто используемый тест - это t-критерий для сравнения двух средних. Мы продемонстрируем непарный тест, сравнив среднее значение fev у мужчин и женщин. Сначала я подсчитаю некоторую сводную статистику для мужчин и женщин.

Обратите внимание на способ определения t-критерия с помощью

условное обозначение.В R

используется в формулах.

По умолчанию используется версия Велча t-теста, в которой мы не предполагаем равные дисперсии, вариант с равной дисперсией является вариантом.

2.9 Критерии хи-квадрат

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

Функция chisq.test () имеет несколько опций, в том числе тот, который рассчитывает p-значение путем моделирования. Это может быть более точным, когда счетчики небольшие.

Еще одна популярная альтернатива при низких счетах - использование точного теста Фишера.

2.10 Простые графики

R предлагает множество команд для построения графиков данных и может производить потрясающие эффекты. Здесь мы рассмотрим только базовый код для построения графика рассеяния и гистограммы. Вот простая гистограмма высоты.

а вот простой график разброса fev от высоты

2.11 Простая регрессия

Мы можем построить прямую линию, используя функцию lm () (линейная модель) и

обозначение. Итак, чтобы соответствовать линии для предсказания fev с высоты

Итак, линия регрессии fev = -5,433 + 0,132 высоты.

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

Теперь мы можем увидеть стандартные ошибки коэффициентов регрессии и их p-значения. R перестает вычислять p-значения, когда они опускаются ниже 2x10-16, потому что они становятся неточными из-за конечной точности компьютера.

Часто мы подбираем модель и сохраняем результаты в объекте, чтобы использовать их позже. Здесь мы сохраняем результаты в объекте, который я назвал RG, мы получаем сводку, как и раньше, а затем добавляем линию регрессии к диаграмме рассеяния.

Тот же результат, что и в последнем поле. Теперь добавьте к графику линию регрессии. Обратите внимание, как график построен по слоям: одна команда для точек, а вторая - для линии.

2.12 Пакеты

До сих пор все функции, которые мы использовали, были частью базового R. Есть много других функций, которых нет в базовом R, и они собраны вместе в пакеты. Если вы хотите использовать одну из этих функций, вы должны добавить пакет в свою копию R, загрузив его из Интернета.

В качестве примера воспользуемся пакетом mental. Этот пакет включает в себя множество функций, которые могут быть полезны исследователям, анализирующим психологические исследования. Среди множества функций описывают () и описывают (), которые также полезны в медицинской статистике.

В RStudio вы увидите вкладку пакетов. Здесь перечислены все пакеты, которые у вас есть в настоящее время. Нажмите на установку, и в диалоговом окне будет предложено ввести имя нового пакета, который вы хотите. Введите Psy и нажмите «Установить». После того, как он будет загружен и добавлен в вашу библиотеку, он появится в вашем списке пакетов. Теперь он постоянно находится в вашей библиотеке, поэтому вам не нужно будет устанавливать его снова.

В графическом интерфейсе пользователя R перейдите в меню пакетов и выберите«установить пакет (ы) ..», затем следуйте инструкциям.

Узнать, какие функции входят в психотип

вы обнаружите, что в этом пакете много функций.

Воспользуемся описанием (). Он производит сводную статистику, скорее как расширенную версию summary ().

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

descriptionBy () аналогичен, но дает описательную статистику для разных подгрупп. Например, вот статистика для мужчин и женщин.

2.13 Упражнение

Загрузите набор данных SMOKE из Основы биостатистики Бернарда Рознера. Сохраните SMOKE.DAT и SMOKE.DOC в папке на рабочем месте. SMOKE.DOC описывает файл. В этом исследовании курильщики давали образцы дыхания, в которых измерялся уровень окиси углерода (СО).

SMOKE.DAT использует фиксированный формат, поэтому вам нужно будет использовать read.fwf () для его чтения. Сохраните данные во фрейме данных S.

SMOKE.DAT не включает заголовок, поэтому вам нужно будет установить имена переменных в S. Вызовите столбцы, id, возраст, пол, cigs, co, mins, adjco, days.

Посмотрите на содержимое S, выведя его на консоль. Заголовок команды (S) может быть полезен, поскольку он перечисляет только первые несколько строк. Вы увидите, что первая строка заполнена пропущенными значениями. Это потому, что файл SMOKE.DAT начинается с ненужной пустой строки. Удалите первую строку из S с помощью команды

Эта команда говорит копировать S, опуская строку 1 (т.е. -1), но включая все столбцы. Посмотрите на S, чтобы проверить правильность данных. R добавляет имена строк к вашим данным. Они маркируют строки так же, как имена столбцов маркируют столбцы. Они не являются частью данных. Если они вам не нравятся, вы можете удалить их с помощью,

Сохраните фрейм данных S в формате R в файле с именем smoke.RData.

Рассчитайте среднее значение и стандартное отклонение возраста участников исследования.

Постройте гистограмму возрастов

Сколько предметов в наборе данных? У скольких людей отсутствуют измерения содержания окиси углерода (CO)?

Рассчитайте среднее значение и стандартное отклонение измерений CO.

Постройте гистограмму измерений CO

Сколько из испытуемых моложе 30 лет? Рассчитайте среднее значение и стандартное отклонение CO для всех испытуемых в возрасте до 30 лет.

Постройте график зависимости CO (ось y) от возраста (ось x) и вычислите корреляцию между возрастом и CO.

Превратите столбец с названием «Пол» в фактор с метками «мужской» и «женский». Сколько мужчин и женщин в наборе данных?

Есть ли какие-либо доказательства того, что у мужчин показатели CO выше, чем у женщин?

Подберите регрессионную модель, чтобы предсказать CO по количеству минут, прошедших с момента последней сигареты. Каково прогнозируемое измерение CO для человека, выкурившего последнюю сигарету ровно час назад?

Постройте линию регрессии на графике рассеяния CO в зависимости от минут с момента последней сигареты.

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

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

это относит каждого человека к одному из [0,50), [50,100), [100,200), [200,1500). Параметр right = FALSE создает группы [), а right = TRUE - создает группы (]. Создайте новую переменную S $ cmins, содержащую категоризированные значения mins.

Создайте категоризированную переменную S $ cco из S $ co с группами [0,100), [100,200), [200,400), [400,1000).

Составьте таблицу S $ cmin vs S $ cco и проверьте независимость этих двух переменных.

Пакет gmodels включает функцию CrossTable (), которая является расширенной версией функции table (). Установите gmodels, а затем используйте CrossTable () для табулирования S $ cmin по S $ cco и проверки независимости этих двух факторов.