Матрунич Консалтинг

Анализ данных, визуализация, маркетинговые исследования, язык R

Tag: spss

Воспроизводимые исследования в SPSS

Коллеги в Институте регионального развития проводят серию предвыборных социологических опросов в нескольких районах Псковской области. Анализа никакого проводить не требуется, нужно лишь вывести последовательность частотных таблиц и таблиц сопряжённости по вопросам, содержащимся в анкете. Во всех исследуемых районах структура этого отчёта одинаковая.

Обычно я решаю эту задачу силами R: делаю шаблон отчёта, а затем прогоняю его по каждому из массивов. Но сейчас возникла потребность то же самое выполнить в IBM SPSS. В SPSS, помимо выпадающих выпадающих меню, существует встроенный язык программирования, позволяющий автоматизировать выполнение рутинных задач. Этим языком я и решил воспользоваться. Язык этот можно сильно и не изучать, т.к. формирование команд можно осуществлять через выпадающее меню: пользователь выбирает нужную команду, указывает используемые переменные, а затем нажимает кнопку “Вставить”. Соответствующие инструкции добавятся в файл скрипта.

Частотные таблицы, предлагаемые SPSS по-умолчанию (команда FREQUENCIES в синтаксисе SPSS), мне не подходили: эта команда не позволяет отобрать нужные параметры частот, а “вываливает” сразу всё, включая абсолютные частоты, процент, валидный процент и накопленный процент. Заказчику обычно нужен только процент.

Подходящим вариантом стала команда “Настраиваемые таблицы” (CTABLES), позволяющая в таблице выводить только нужные статистики, объединять в одной строке/колонке  сразу несколько переменных, добавлять итоги, отфильтровывать категории.

Следующей задачей стало создание заголовков и подзаголовков отчёта. В синтаксисе я обнаружил две команды: TITLE и SUBTITLE. Ограничение этих команд оказалось в том, что они не позволяют задавать форматирование. А при экспорте в формат XLS эти строки не помечаются никакими стилями, поэтому автоматизировать задачу оформления затруднительно.

Долго провозился с заголовками, которые SPSS вставляет в вывод перед каждой отдельной функцией, например “Настраиваемая таблица”. Мне не удалось найти способ поменять название этого заголовка на метку переменной. Отключается вывод этих заголовков в настройках SPSS.

В конце скрипта я добавил функцию EXPORT OUTPUT по экспорту вывода в файл формата XLS.

Как добывать данные из своих старых опросов

Свалка каталогов по старым проектам

С коллегами по “Институту регионального развития” столкнулись с проблемой доступности данных и отчётов из прошедших ранее исследований. Непонятно, где найти во всём ворохе папок и файлов именно тот SPSS-массив или текстовый документ, который нужен. Имена каталогов с разными проектами придумываются без единых правил, каждый проект содержит разный набор документов.

Чтобы не изобретать велосипед, решили посмотреть, какие инструменты для этих проблем уже существует в мире.

Да здравствует стандартизация! или Инициатива по документированию данных

Ещё работая в проекте “Датско-российская программа содействия экономическому развитию Псковской и Калининградской областей”, я искал инструмент по автоматическому оформлению (вёрстке) дизайн-макета анкеты. Результатом стала связка из проектов с открытым исходным кодом LimeSurvey и queXML. LimeSurvey использовался как графический интерфейс для создания структуры анкеты, а queXML генерировал из этой структуры красивую анкету в формате PDF. Тогда я обратил внимание на то, что queXML, как схема для описания анкет, совместим со стандартом Data Documentation Initiative (DDI).

DDI – это “намерение создать международный стандарт для описания данных из социальных, поведенческих и экономических наук”. Стандарт DDI поддерживает описание всего “жизненного цикла” исследовательских данных от техзадания для исследования до хранения полученных и обработанных данных.

На практике DDI выглядит как свод правил по описанию всех этапов исследования в формате XML. Замысел разработчиков DDI заключается в том, что разработчики исследовательского программного обеспечения (например, SPSS или мой любимый R) будут следовать этому стандарту, и тогда нам, исследователям-пользователям, станет жить гораздо проще, поскольку все [социологические] программы будут “разговаривать” на одном языке.

Возможно ли уже сегодня получить выгоду от DDI?

Сайт DDI содержит библиотеку инструментов, которые могут работать со стандартом. Здесь представлено множество утилит, позволяющих получать DDI из широкораспространенных форматов данных, например, из SPSS. Понятно, что стандартный файл SPSS не содержит исчерпывающей информации об исследовании. Здесь на помощь, видимо, должен приходить редактор файлов DDI. Здесь перспективным выглядит DdiEditor, разработчики которого позиционируют его как “центральный в наборе инструментов по обработке опросных данных”. Результатом применения DdiEditor является набор документов, описывающий массив данных. Программа кроссплатформенная, т.е. может работать в любых операционных системах, распространяется под лицензией LGPL, т.е. может бесплатно использоваться даже в коммерческих целях.

На роль следующего элемента мозаики подходит приложение DDI Index производства Австралийского архива данных социальных наук (корни вышеупомянутого queXML растут из той же части планеты). Эта программа индексирует документы в формате DDI, а затем позволяет пользователям проводить поиск по созданной базе. Доступ к поиску осуществляется через браузер. DDI Index распространяется также под свободной лицензией.

Что на выходе?

Данные, получаемые по каждому опросу, мы храним в формате DDI, используя программу DdiEditor. Весь массив DDI-документов индексируется программой DDI Index и через неё же осуществляется доступ к этим документам. Теоретическая картинка выглядит красиво, осталось попробовать.

Как установить R и сделать его похожим на SPSS

R – это свободная программа для статистической обработки данных. Основа этой программы – это язык программирования (он тоже называется R), заточенный под статистику. Поэтому “чистый” R для обычного пользователя Windows выглядит довольно дико.

Давайте взглянем на эту дичь. Адрес проекта http://www.r-project.org. В главном меню сайта пункт для скачивания программы называется CRAN (столь таинственная аббревиатура расшифровывается и переводится как “Глобальная сеть архивов R”). Здесь вам будет предложен перечень стран, в которых действуют сервера R. Выберите ту, в которой вы находитесь, например, Russia. На момент написания статьи в разделе Russia находился только один сервер, на него и пойдем. Теперь мы можем выбрать нашу операционную систему (наверно, Windows). И далее из предложенных вариантов выбираем base, т.е. базовый пакет R. Версия 2.9.0 занимает 36 мегабайт. Скачиваем и устанавливаем обычным Next->Next способом.

Запускайте программу. Интерфейс должен отобразиться на русском языке. Если это не так, значит (для ОС Windows) в Панели управления измените региональные настройки, выбрав русскую локализацию. После перезапуска интерфейс R станет русским.

Попробуйте написать после знака > какое-нибудь математическое выражение, например 2+2 и нажмите после него клавишу Enter. Ответ вы увидите в следующей строке. Самая базовая работа в среде R происходит именно таким способом: вопрос, Enter, ответ.

Но перед нами стоит задача превратить R в SPSS. Для этого нам потребуется дополнение к R под именем R Commander.

Установка пакетов возможна через меню. После выбора зеркала вам будет предложен перечень доступных пакетов, нас интересует Rcmdr.

После установки пакета его можно запустить командной library(Rcmdr) (наберите ее там же, где раньше набирали 2+2). При первом запуске R Commander программа скажет вам, что необходимо установить еще несколько дополнительных пакетов. Соглашайтесь на это предложение. По моим ощущениям, всего пакетов загрузится мегабайтов на 10-15. Когда все будет готово, перед пользователем откроется окно R Commander.

Итак, вот он, бесплатный SPSS 🙂 Отличия в следующем. В верхнем окне отображается та команда на языке R, которую вы активировали через меню. Во втором окне печатаются результаты выполнения команд. В третьем окне выводятся сообщения об ошибках, если таковые будут.

Powered by WordPress & Theme by Anders Norén