1.3. Статистический анализ данных на компьютере. Пакеты SPSS, Jamovi и Rstudio

В настоящее время статистическая и математическая обработка данных и расчеты производятся на компьютерах с помощью специализированных программных пакетов. Наиболее распространенными являются Matlab, Mathcad и Octave, в основном предназначенные для математических расчетов, а также SPSS, Statistica, SAS, JASP, Jamovi,  R [1], предназначенные для статистической обработки данных. В нашем учебнике в качестве основных инструментов для обработки данных мы будем использовать статистические пакеты SPSS, Jamovi и R.

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

В качестве бесплатной, но достаточно мощной альтернативы можно использовать статистический пакет Jamovi, созданной международной группой исследователей и разработчиков. Это базирующийся на R свободно распространяемый кроссплатформенный пакет, имеющий удобный и интуитивно понятный графический интерфейс. Он доступен для скачивания по адресу https://www.jamovi.org/download.html (подробная инструкция по установке в разных операционных системах доступна по адресу https://www.jamovi.org/user-manual.html#installation). Также подробное руководство пользователя можно скачать по адресу https://www.learnstatswithjamovi.com/.

Для читателей, заинтересованных в более глубоком освоении процедур статистической обработки данных, мы рекомендуем изучение языка R. Также, как и Jamovi, он распространяется бесплатно и свободно, при этом предоставляя пользователю очень богатый набор возможностей — в нём может быть реализована практически любая статистическая процедура — от самых базовых до сложных. При этом пользователь может использовать уже готовые функции и процедуры, реализованные в библиотеках языка, а может создавать собственные функции и решения под свои задачи. В рамках нашего учебника мы приводим примеры работы с данными в одной из самых распространённых сред разработки, созданной для R — Rstudio. Скачать и установить эти программы можно с соответствующих сайтов: официальный сайт R — https://cran.r-project.org, сайт Rstudio — https://www.rstudio.com/products/rstudio/. Обе системы кроссплатформенные, можно выбрать версию под установленную на компьютере систему. Рекомендуется сначала поставить R, а затем – Rstudio, в таком случае Rstudio автоматически будет использовать установленную ранее версию базового пакета R. Также есть онлайн-версия Rstudio, доступная по адресу https://rstudio.cloud/. Более подробно об интерфейсе и базовых элементах языка R можно прочитать в приложении 1.3, там же приведены ссылки на дополнительные ресурсы, посвященные R.

В задачу данного пособия не входит исчерпывающее описание программного обеспечения, предназначенного для статистических расчетов вообще и пакетов SPSS, Jamovi и Rstudio в частности. Однако в дальнейшем мы будем сопровождать теоретический материал практическими примерами обработки данных, благодаря чему у читателя сможет сложиться представление о практическом применении знаний по математической статистике в исследовательской деятельности. Также в последующих главах будут предложены разнообразные практические задачи, для самостоятельного выполнения. Все статистические расчеты, которые будут включаться в такие практические примеры и задания, могут быть выполнены любом и трех статистических пакетов. Вначале мы остановимся на описании только самых базовых возможностей этих программ. В дальнейшем, по мере обсуждения различных аспектов и процедур статистической обработки данных, мы будем подробнее останавливаться на соответствующих функциях SPSS.

Далее в практических частях нашего учебника мы будем приводить параллельно описания примеров и упражнений в пакетах SPSS, Jamovi и Rstudio и читатель может выбирать то или иное описание в зависимости от используемого им статистического пакета.

Примеры и упражнения по теме «Измерение» в SPSS

Основные элементы интерфейса SPSS и правила ввода данных описаны в приложении 1.1. Читателю, не знакомому с этой программой, мы рекомендуем изучить этот раздел прежде, чем двигаться дальше. Мы же перейдем к примерам и упражнениям, позволяющим получить опыт практической работы с данными, измеренными в различных шкалах.

Пример 1.3(1). Рассмотрим модельные данные, соответствующие Примеру 1.1.3(2). Напомним, что в этом примере обсуждается два способа оценки скорости чтения: количество прочитанных в минуту знаков и время, затраченное на чтение 1000 знаков. Допустим, что в исследовании скорости чтения приняло участие 19 учеников 2-го класса начальной школы. Модельные результаты такого эксперимента содержатся в файле ReadingSpeed.sav [2]. Запустите имеющуюся у вас программу SPSS. С помощью главного меню откройте файл ReadingSpeed.sav. На экране возникает таблица данных, содержащая четыре столбца, названия которых подписаны вверху таблицы. Столбцы называются переменными, а надписи — их именами. При вводе данных исследования каждый столбец содержит информацию об одном из регистрируемых параметров, а каждая строка — информацию об одном испытуемом. В нашем примере первая переменная — chars — это количество знаков, прочитанных испытуемым за минуту, а вторая — t — это время, затрачиваемое испытуемым на чтение 1000 знаков. Показатели связаны соотношением t = 1000/n (см. объяснения в Примере 1.1.3(2). Третья и четвертая переменные представляют собой натуральные логарифмы от первой и второй переменных (charLN и tLN для char и t соответственно). Шкала «число знаков, прочитанных за минуту» с формальной точки зрения интервальная, однако если обратиться к содержательной стороне вопроса, то можно спросить: одинаковы ли в интересующем нас смысле различие между детьми, прочитавшими 200 и 300 знаков за минуту, и различие между детьми, прочитавшими 900 и 1000 знаков? По всей видимости, нет. Такое же рассуждение можно применить и к шкале «время, затрачиваемое на прочтение 1000 знаков».

Еще одну проблему мы уже обсуждали в Примере 1.1.3(2). Здесь мы имеем следующие результаты: самый быстрый ученик (номер 13) прочитал 890 знаков в минуту, а на 1000 знаков потратил 1.12 минуты. Самый медленный ученик (номер 1) прочитал 205 знаков за минуту и потратил на 1000 знаков 4.88 минуты. Занимающий среднюю позицию ученик номер 16 показал результат 454 и 2.20 соответственно.

Упражнение 1.3.(2). К какому из двух полюсов скорости чтения в классе окажется ближе средний ученик (номер 16), если его скорость чтения измерять первым способом и вторым способом?

Не получилось ли у нас, что две «интервальные» шкалы оценивают при таком подходе расстояния между одними и теми же парами испытуемых по-разному?

Упражнение 1.3(3). Если рассмотреть эти, формально претендующие на интервальный тип, шкалы как порядковые, то две шкалы дают один и тот же результат (так как связаны между собой монотонным преобразованием).

Чтобы убедиться в этом, проведем следующую операцию. В SPSS есть возможность автоматически ранжировать данные. Для этого надо зайти в пункт Преобразовать (Transform) главного меню и выбрать из списка пункт Ранжировать наблюдения (Rank Cases). Далее последовательность действий с меню мы будем коротко записывать так: Преобразовать — Ранжировать наблюдения (TransformRank Cases) — в скобках указывая название пунктов в англоязычных версиях SPSS. В появившемся окне надо указать, какую переменную (или переменные) мы хотим проранжировать, перетащив с помощью мыши из левого поля, содержащего полный список переменных в таблице, интересующую нас переменную в поле Переменные (Variables). Проранжируем испытуемых по числу знаков, прочитанных за минуту — перенесем переменную chars в рабочее окно. Также следует обратить внимание на направление ранжирования, оно возможно от наибольшего значения исходной переменной к наименьшему и наоборот. Если мы хотим, чтобы первый ранг получил испытуемый, читающий быстрее всех, то ранг 1 в данном случае надо присвоить наибольшему значению числа прочитанных знаков. Поэтому внизу, под общим списком переменных, выберем вариант Ранг 1 присвоить наблюдению с максимальным значением (Assign Rank 1 to Largest value). После этого проведем ранжирование, нажав кнопку OK. В таблице данных должна появиться переменная Rchars, содержащая ранги испытуемых по числу прочитанных знаков.

Упражнение 1.3(4). Проранжируйте испытуемых по времени, затрачиваемому на чтение 1000 знаков. Будьте внимательны, определите направление ранжирования так, чтобы ранг 1 получил наиболее быстро читающий испытуемый. Сопоставьте ранги, получаемые при ранжировании двух шкал, убедитесь, что ранги испытуемых совпадают.

Задание 1.3(5). Еще один вариант, позволяющий сделать оценки по двум шкалам более согласованными — это логарифмирование полученных данных. В переменных charsLN и tLN содержатся натуральные логарифмы значений переменных chars и t соответственно. Как мы писали в примечании к Примеру 1.1.3(2), обе логарифмические шкалы с полным правом могут считаться интервальными. Вопрос: Какое допустимое преобразование переводит первую логарифмическую шкалу во вторую? (Указание: убедитесь, что сумма этих переменных постоянна для всех испытуемых с точностью до округления.)

Задание 1.3(6). Испытуемых можно упорядочить по значениям какой-то переменной. Для того, чтобы это сделать, выберите последовательность пунктов Данные — Сортировать наблюдения (DataSort cases) и перетащите с помощью мышки переменную chars в окно Сортировать по: (Sort by). Нажмите ОК. Убедитесь, что упорядоченности по всем переменным и по рангам согласованы.

[свернуть]

Примеры и упражнения по теме «Измерение» в Jamovi

Основные элементы интерфейса Jamovi и правила ввода данных описаны в приложении 1.2. Читателю, не знакомому с этой программой, мы рекомендуем изучить этот раздел прежде, чем двигаться дальше. Мы же перейдем к примерам и упражнениям, позволяющим получить опыт практической работы с данными, измеренными в различных шкалах.

Пример 1.3(1). Рассмотрим модельные данные, соответствующие Примеру 1.1.3(2). Напомним, что в этом примере обсуждается два способа оценки скорости чтения: количество прочитанных в минуту знаков и время, затраченное на чтение 1000 знаков. Допустим, что в исследовании скорости чтения приняло участие 19 учеников 2-го класса начальной школы. Модельные результаты такого эксперимента содержатся в файле ReadingSpeed.sav[2] (в примерах мы будем использовать файлы данных, сохраненные в формате sav — это формат пакета SPSS, но его можно читать и из Jamovi).  Запустите имеющуюся у вас программу Jamovi, откройте в нем скаченный  файл. На экране возникает таблица данных, содержащая четыре столбца, названия которых подписаны вверху таблицы. Столбцы называются переменными, а надписи — их именами. При вводе данных исследования каждый столбец содержит информацию об одном из регистрируемых параметров, а каждая строка — информацию об одном испытуемом. В нашем примере первая переменная — chars — это количество знаков, прочитанных испытуемым за минуту, а вторая — t — это время, затрачиваемое испытуемым на чтение 1000 знаков. Показатели связаны соотношением t = 1000/n (см. объяснения в Примере 1.1.3(2). Третья и четвертая переменные представляют собой натуральные логарифмы от первой и второй переменных (charLN и tLN для char и t соответственно). Шкала «число знаков, прочитанных за минуту» с формальной точки зрения интервальная, однако если обратиться к содержательной стороне вопроса, то можно спросить: одинаковы ли в интересующем нас смысле различие между детьми, прочитавшими 200 и 300 знаков за минуту, и различие между детьми, прочитавшими 900 и 1000 знаков? По всей видимости, нет. Такое же рассуждение можно применить и к шкале «время, затрачиваемое на прочтение 1000 знаков».

Еще одну проблему мы уже обсуждали в Примере 1.1.3(2). Здесь мы имеем следующие результаты: самый быстрый ученик (номер 13) прочитал 890 знаков в минуту, а на 1000 знаков потратил 1.12 минуты. Самый медленный ученик (номер 1) прочитал 205 знаков за минуту и потратил на 1000 знаков 4.88 минуты. Занимающий среднюю позицию ученик номер 16 показал результат 454 и 2.20 соответственно.

Упражнение 1.3.(2). К какому из двух полюсов скорости чтения в классе окажется ближе средний ученик (номер 16), если его скорость чтения измерять первым способом и вторым способом?

Не получилось ли у нас, что две «интервальные» шкалы оценивают при таком подходе расстояния между одними и теми же парами испытуемых по-разному?

Упражнение 1.3(3). Если рассмотреть эти, формально претендующие на интервальный тип, шкалы как порядковые, то две шкалы дают один и тот же результат (так как связаны между собой монотонным преобразованием).

Упражнение 1.3(4). Проверьте, что порядок испытуемых, заданный значением переменной t по возрастанию, и порядок, заданный значением переменной Char по убыванию, совпадают.

Задание 1.3(5). Еще один вариант, позволяющий сделать оценки по двум шкалам более согласованными — это логарифмирование полученных данных. В переменных charsLN и tLN содержатся натуральные логарифмы значений переменных chars и t соответственно. Как мы писали в примечании к Примеру 1.1.3(2), обе логарифмические шкалы с полным правом могут считаться интервальными. Вопрос: Какое допустимое преобразование переводит первую логарифмическую шкалу во вторую? (Указание: убедитесь, что сумма этих переменных постоянна для всех испытуемых с точностью до округления.)

[свернуть]
Примеры и упражнения по теме «Измерение» в Rstudio

Основные элементы интерфейса Rstudio и правила ввода данных описаны в приложении 1.3. Читателю, не знакомому с этой программой, мы рекомендуем изучить этот раздел прежде, чем двигаться дальше. Мы же перейдем к примерам и упражнениям, позволяющим получить опыт практической работы с данными, измеренными в различных шкалах.

Пример 1.3(1)r. Рассмотрим модельные данные, соответствующие Примеру 1.1.3(2). Напомним, что в этом примере обсуждается два способа оценки скорости чтения: количество прочитанных в минуту знаков и время, затраченное на чтение 1000 знаков. Допустим, что в исследовании скорости чтения приняло участие 19 учеников 2-го класса начальной школы. Модельные результаты такого эксперимента содержатся в файле ReadingSpeed.sav (в примерах мы будем использовать файлы данных, сохраненные в формате sav — это формат пакета SPSS, но его можно читать и в R, см. приложение 1.3).  Запустите установленную программу Rstudio, откройте в нем скаченный файл с помощью функции read.spssиз пакета foreign[3]. Соответствующая команда, если файл данных сохранен в рабочей папке, может выглядеть следующим образом:

library(foreign)
data_reading <- read.spss("ReadingSpeed.sav", to.data.frame = T, reencode = "utf8")

В результате будет создана таблица данных под названием data_reading, просмотреть её можно с помощью командой View(data_reading) [4]. Выполнив эту команду, рассмотрим внимательнее структуру таблицы и её содержание. Столбцы этой называются переменными, каждая из которых содержит информацию об одном из параметров об объектах (в психологическом исследовании это чаще всего люди), которые расположены по строкам. В нашем примере первая переменная — chars — это количество знаков, прочитанных испытуемым за минуту, а вторая — — это время, затрачиваемое испытуемым на чтение 1000 знаков. Показатели связаны соотношением t = 1000/n (см. объяснения в Примере 1.1.3(2). Третья и четвертая переменные представляют собой натуральные логарифмы от первой и второй переменных (charLN и tLN для char и t соответственно). Шкала «число знаков, прочитанных за минуту» с формальной точки зрения интервальная, однако если обратиться к содержательной стороне вопроса, то можно спросить: одинаковы ли в интересующем нас смысле различие между детьми, прочитавшими 200 и 300 знаков за минуту, и различие между детьми, прочитавшими 900 и 1000 знаков? По всей видимости, нет. Такое же рассуждение можно применить и к шкале «время, затрачиваемое на прочтение 1000 знаков».

Еще одну проблему мы уже обсуждали в Примере 1.1.3(2). Здесь мы имеем следующие результаты: самый быстрый ученик (номер 13) прочитал 890 знаков в минуту, а на 1000 знаков потратил 1.12 минуты. Самый медленный ученик (номер 1) прочитал 205 знаков за минуту и потратил на 1000 знаков 4.88 минуты (с точностью до округления). Занимающий среднюю позицию ученик номер 16 показал результат 454 и 2.20 соответственно.

Упражнение 1.3.(2)r. К какому из двух полюсов скорости чтения в классе окажется ближе средний ученик (номер 16), если его скорость чтения измерять первым способом и вторым способом?

Не получилось ли у нас, что две «интервальные» шкалы оценивают при таком подходе расстояния между одними и теми же парами испытуемых по-разному?

Упражнение 1.3(3)r. Если рассмотреть эти, формально претендующие на интервальный тип, шкалы как порядковые, то две шкалы дают один и тот же результат (так как связаны между собой монотонным преобразованием).

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

data_reading$Rchars <- rank(data_reading$chars)

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

data_reading$Rchars <- rank((-1) * data_reading$chars)

Откройте таблицу data_reading и убедитесь (View(data_reading)), что в ней появилась переменная Rchars, содержащая ранги испытуемых по числу прочитанных знаков от максимального к минимальному [5].

Упражнение 1.3(4)r. Проранжируйте испытуемых по времени, затрачиваемому на чтение 1000 знаков? Сохранив результат в переменную Rt. Будьте внимательны, определите направление ранжирования так, чтобы ранг 1 получил наиболее быстро читающий испытуемый. Сопоставьте ранги, получаемые при ранжировании двух шкал, убедитесь, что ранги испытуемых совпадают.

Задание 1.3(5)r. Еще один вариант, позволяющий сделать оценки по двум шкалам более согласованными — это логарифмирование полученных данных. В переменных charsLN и tLN содержатся натуральные логарифмы значений переменных chars и t соответственно. Как мы писали в примечании к Примеру 1.1.3(2), обе логарифмические шкалы с полным правом могут считаться интервальными. Вопрос: Какое допустимое преобразование переводит первую логарифмическую шкалу во вторую? (Указание: убедитесь, что сумма этих переменных постоянна для всех испытуемых с точностью до округления.)

Задание 1.3(6)r. Порядок строк в таблице можно упорядочить по значениям какой-то переменной. Для того, чтобы это сделать, можно использовать функцию order, которая возвращает номер по возрастающему или убывающему порядку указанной переменной. Если выполнить команду

data_reading <- data_reading[order(data_reading$t),]

то таблица data_reading будет переписана сама в себя, но при этом порядок строк будет установлен по убывающему порядку переменной t. Для изменения порядка на возрастающий можно использовать параметр decreasing функции order, установив её значение как TRUE:

data_reading <- data_reading[order(data_reading$t, decreasing = T),]

Отсортируйте таблицу попеременной tLN, убедитесь, что упорядоченности по всем переменным и по рангам согласованы.

[свернуть]

>> следующий параграф>>


[1] R является не просто программным пакетом, а языком, предназначенным для статистического анализа. Это превращает его в очень мощное средство, позволяющее реализовать практически любую статистическую процедуру. Его изучение осложняется необходимостью понимания скриптового языка, но для заинтересованного читателя мы написали краткое введение в этот язык, в нем также можно найти ссылки на более подробное изложение его основ.

[2] Таким курсивом мы будем помечать имена файлов. Жирным курсивом с разделяющим тире помечены последовательности выборов, начинающиеся в главном меню SPSS или Jamovi.

[3] При первом запуске Вам потребуется установить этот пакет с помощью функции install.packages, а затем при необходимости использовании возможностей пакета загружать его с помощью команды library.

[4] При работе с большими таблицами бывает удобно просматривать не всю таблицу, а только несколько первых строк – это можно сделать с помощью команды head, которая по умолчанию выводит в консоль первые пять строк таблицы.

[5] Скрипт с командами, использованными в данном примере можно скачать здесь.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.