Блог

Инструментарий аналитика: R

Ниже перечислены пакеты, с которыми я сталкиваюсь в своей работе с той или иной частотой, поэтому набор может выглядеть несколько однобоким. Общие описания пакетов по направлениям и формам работы можно найти в официальном репозитории: cran.r-project.org/web/packages/. Так же есть симпатичная reference card от Yanchang Zhao: cran.r-project.org/doc/contrib/YanchangZhao-refcard-data-mining.pdf. Следует помнить, что немалая часть функций доступна в базовом пакете.

Манипуляции с данными

data.table — ключевой пакет для тех, кто работает с большими датасетами (сотни тысяч, миллионы строк), так как оптимизирован для максимально быстрой работы (сортировки, расщепления, слияния и проч). Операции с таблицами типа data. table совершаются в десятки или даже сотни раз быстрее, чем с простыми таблицами типа data.frame. К сожалению, синтаксис пакета ощутимо отличается от привычного синтаксиса R, и вызывает ощущение некоторой неотмирности и увлеченностью психотропными веществами авторов пакета.

reshape2 — пакет для перевода данных из формата wide в формат long и обратно, быстрый аналог базовой функции reshape.

Визуализация

ggplot2 — графики черные, графики белые, графики испанские… графики плотности, графики круговые, гистограммы — в общем, все, что душа пожелает. Даже есть возможность работать с географическими картами (spatial visualisation). Если что-то не нашлось — скорее всего, это и не нужно. Настраивается все, от цвета и формы графика, до цвета и размера шрифтов легенд. Впрочем, по специфичности и изощренности синтаксиса не уступает data.table. Есть еще другие пакеты для визуализации, например, lattice — но я с ним не работал, мне вполне достаточно и ggplot2.

Психометрика

sem — моделирование структурными уравнениями, конфирматорный факторный анализ во всей красе. Естественно, может применяться не только для психометрических исследований, но я для меня это первоочередное применение.

ltm — IRT-модели Раша и Бирнбаума (кроме 4PL) для дихотомических ответов, сложные политомические модели. Есть демо-примеры.

Линейные модели

lme4 — линейные модели со случайными эффектами. К сожалению, простую линейную модель с фиксированными эффектами построить нельзя, для этого лучше использовать nle. Для получения p-values, если они зачем-то потребуются, к пакету lme4 следует добавить пакет lmerTest.

Кластерный анализ

cluster — аггломеративный и дивизивный кластерные анализы, k-средних и k-медиан, кластерный анализ по подвыборкам для больших датасетов.

Работа с распределениями

gamlss — пакет для аппроксимации теоретической функции эмпирического распределения, оценки параметров эмпирического распределения, генерации данных с определенными параметрами и формой распределения (для симуляционных Монте-Карло-экспериментов).

Анализ нормальности распределения

nortest — базовые критерии для проверки гипотезы об отличии распределения от нормального.

moments — моменты (асимметрия и эксцесс).

Оценка мощности

pwr — простейший пакет для оценки размера выборки при определенных значениях ошибки измерения I/II типа и предполагаемом размере эффекта. Фактически, по трем данным параметрам можно вычислить четвертый.

Интерфейсы доступа к SQL-базам данных

RODBC — простой коннектор к MS SQL базам.

RPostgreSQL — такой же простой коннектор к PostgreSQL базам, единственное, надо научиться использовать ‘' и «» одновременно при написании запроса к базе (т.к. в PostgreSQL таблицы задаются через имена схем и таблиц в виде schema."Table", и эти двойные кавычки вызывают проблемы в синтаксисе команды в R).

Доступ к другим сервисам

RCurl, ROAuth — пакетs, необходимыt для работы с ssl-сертификатами и верификации доступа к API.

twitteR — пакет для импорта данных из твиттера

rga — пакет для доступа к Google Analytics (находится не в CRAN, надо отдельно устанавливать из гит-репозитория).

Отчеты в TeX

knitr — пакет для создания гибридного скрипта, с использованием TeX и чанками с R-кодом.

Профилирование кода

rbenchmark, microbenchmark — оценка времени выполнения функций, сравнение функций по скорости (вплоть до оценки статистической значимости различий).

Прочее

scale — позволяет переходить от академической формы отображения чисел (3,6E +05) к классическим, и обратно.

stringr — работа с текстовыми данными.

boot — пакет для бутстрепов функций.

foreign — импорт данных других программ (SPSS, например).

_____________

Филипп Управителев

Выступление Игоря Уточкина на Science Slam

Замечательный московский ученый, заведующий научно-учебной лабораторией когнитивных исследований НИУ ВШЭ и эксперт TCTS Игорь Уточкин с увлекательным рассказом о зрительном внимании для Science Slam.

https://www.youtube.com/watch?v=BpFOakwGrOI

R: учебники

Бумажные учебники по R, как и по большинству динамично развивающихся областей, устаревают очень быстро. Поэтому если что-то читать — то лучше читать либо электронные англоязычные учебники, либо тематические блоги и сообщества. Вообще, настоятельно рекомендую забыть о мысли искать и читать на русском языке какие-либо тексты по анализу данных, как и в целом академические тексты. (Вторая иллюзия, которая возникает у новичков при работе с данными — что нужно постоянно видеть таблицу данных, через некоторое время также развеивается. Но это уже детали.)

Если все же хочется какого-то введения на русском языке, то рекомендую «Наглядная статистика. Используем R!» Шипунова и коллег, базовые вещи там вполне неплохо описаны. Из англоязычных — Burns P. The R Inferno; Kabacoff R. R in Action: Data Analysis and Graphics With R; Zhao Y., Cen Y. Data Mining Applications with R. В сети большая часть учебников или прочих дополнительных материалов легко гуглится. Например, очень большую коллекцию книг по R собрал мой друг и коллега Артем Клевцов: psylab.info/R:Литература

Из онлайн-учебников весьма хорош сайт www.statmethods.net/, где описаны основные методы манипуляции с данными (слияние, расщепление, транспонирование и проч.), методы анализа данных (проверка гипотез, многомерные методы, оценка мощности) и визуализации (гистограммы, дендрограмы, графики рассеяния, графики плотности и проч.).

Для тех, кто предпочитает различные онлайн-курсы, есть набор заданий, которые охватывают базовые разделы работы с R. Точно так же ряд тематических курсов на https://www.coursera.org/, которые посвящены анализу данных и близким темам, предполагают выполнение заданий на R.

В конце концов, сам R имеет достаточно подробную справку для каждой функции. Помимо просто описания функции, ее аргументов и структуры вывода, для многих команд есть еще и демо-примеры (команда demo ()). Не так давно вышел пакет swirl, который, по сути, является интерактивным учебником по R, в котором взаимодействие с пользователем строится через консоль.

Тем не менее, ситуации, когда приходится лезть в гугл и искать, как же можно решить свою задачу, случаются практически всегда, особенно на первых порах освоения языка. Благо, экосистема R включает в себя не только пакеты методы на любой вкус, но и обширное сообщество, у которого можно что-либо спросить. Ранее я упоминал уже про рассылку Nabble (http://r.789 695.n4.nabble.com/). Мне лично больше нравятся два других ресурса — CrossValidated и StackOverflow. Это форумы, на которых можно что-то спросить и получить ответ. CrossValidated — это сеть, которая объединяет различные ресурсы вопрос-ответного плана, StackOverflow, который посвящен языкам программирования (ветка по R — stackoverflow.com/questions/tagged/r), входит в нее. На CrossValidated есть и спец. форумы по статистике (http://stats.stackexchange.com). Таким образом, если гуглить что-то в духе «how to do xxx in R» или «k-medoids in R», ссылки на эти два форума будут в первой десятке.

Для любителей видео-курсов есть различные YouTube-каналы и плейлисты, например www.youtube.com/playlist?list=PL69A9CCD816A5F3A5.

Следует все же отметить, что большая часть учебников и учебных материалов по R посвящена именно каким-то основным принципам написания скриптов или работы с пакетами. Другие аспекты работы в R, такие как принципы грамотного программирования и оптимизация кода, написание собственных пакетов или разработка web-приложений для анализа данных на основе Shiny — практически не рассматриваются. Впрочем, для большинства психологов это требуется в очень редких случаях."

_____________

Филипп Управителев

СПбГУ: семинары Web of Science

Для #горячихюныхкогнитивных СПбГУ — мастер-класс об эффективном использовании базы данных Web of Science и менеджера цитирования EndNote. Поиск, хранение и использование онлайн-литературы — навыки, без которых сложно в современной науке, так что не пропустите.

www.psy.spbu.ru/news/1095-web-of-science

Андрей Линде: когда ты вдруг оказался прав

Ника Адамян: «Если кто еще не слышал, физики обнаружили долгожданные следы первичныx гравитационныx волн — фактически, свидетельство того, что происходило на ранних стадиях Большого Взрыва. Это Нобелевская премия, но это не главное. Наличие следов было предсказано инфляционной моделью Вселенной в 1981 году. На этом видео зафиксировано, как Андрей Линде, один из ключевых разработчиков инфляционной модели, получает известие о новом открытии, подтверждающем теорию, которой он посвятил жизнь. Бесценно».

Мы, конечно, занимаемся другими областями исследований, и на гораздо более простом уровне. Но вот этот момент, когда внезапно оказывается, что все так, как и было предсказано теорией, когда кусочек головоломки встает на свое место, — это, как мне кажется, то, что объединяет людей, занимающихся наукой в самых разных ее видах. И еще, почувствуйте тот момент, когда Линде говорит об ощущении постоянного сомнения. Это ощущение — одна очень важная часть того, что отличает хороших ученых.

https://www.youtube.com/watch?v=ZlfIVEy_YOA

Summer School on Computational Modeling of Cognition

Информация для магистрантов, аспирантов, кандидатов наук и прочих молодых специалистов — открыт прием заявок на Летнюю Школу по компьютерному моделированию познавательных процессов (Summer School on Computational Modeling of Cognition), которая пройдет с 27 июля по 10 августа в Лауфене, Германия.

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

Стоимость участия в Школе — 150 Евро + билеты. Срок подачи CV и тезисов — 30 апреля.

Подробности на сайте cmss2014.org/

Летняя школа в Гронингене

Велы, палатки, спальники и мозгиии! Проект AEGEE организует летние лагеря, один из которых будет проходить в Гронингене, славном голландском студенческом городе. В программе — интересные интерактивные воркшопы и участие в социальных, физических и психологических (!) экспериментах. Мы, честно говоря, не знаем, насколько много там будет научной составляющей, но когнитивные науки в университета Гронингена развиты очень хорошо, и название лагеря («Insane in the brain!») как бы намекает. В общем, если идея провести пару недель в июле в Голландии, наслаждаясь отдыхом и немного развивая мозг, кажется вам интересной — пишите организаторам, узнавайте подробности, и подавайте заявки. Стоимость совсем небольшая, 154 евро плюс билеты.

www.projects.aegee.org/suct/su2014/show.php?su_id=GRN1

TCTS поможет найти испытуемых

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

Основной критериий — исследование должно быть когнитивным (на взгляд редакции TCTS). А мы, в свою очередь, периодически будем делать дайджест воззваний и публиковать его в новостях.

И одна просьба — если исследование проводится НЕ в Санкт-Петербурге, пожалуйста, указывайте это в начале сообщения. Так в объявлениях будет проще ориентироваться.

Первый дайджест совсем короткий.

---------------------------

Андрей Четвериков:

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

Эксперимент проводится на факультете психологии СПбГУ, в ауд. № 7, принять участие в нем можно с понедельника по пятницу, предварительно позвонив +79 523 682 628 или написав Алёне Беглер и договорившись о времени. В качестве бонуса мы всегда готовы напоить вас чаем или угостить кофе.

---------------------------

Инструментарий аналитика: SPSS

За почти двенадцать лет дружбы с SPSS я встречал не так уж много учебников по SPSS на русской языке — это учебники Пациорковских, Таганова, Крыштановского и Наследова. Первые три — учебники для маркетологов и социологов, там практически нет многомерных методов. В общем и целом, я склонен на данный момент считать учебники Наследова лучшими из доступных русскоязычных учебных материалов по мат. методам и их реализации в SPSS.

Первый учебник, «Математические методы психологического исследования. Анализ и интерпретация данных», знакомый, подозреваю, практически всем, посвящен логике и структуре методов анализа данных, каждая глава содержит в себе краткую иллюстрацию практики использования этого метода в SPSS. Второй учебник, «IBM SPSS Statistics 20 и AMOS. Профессиональный статистический анализ данных», больше посвящен именно SPSS — более детально раскрываются дополнительные параметры методов и содержание таблиц вывода. Тем не менее, учебник также содержит некоторые общие описания логики методов. Также этот учебник, в отличие от предыдущих учебников по версиям SPSS, содержит раздел по AMOS — модулю IBM SPSS, с помощью которого работают с задачами структурного моделирования (SEM). Конечно, учебники А.Д.Наследова вызывают ряд вопросов и претензий, особенно первый, однако для начинающих или не очень уверенных пользователей они будут лучшим выбором.

В англоязычном академическом мире традиционно лучшим учебником по анализу данных в SPSS, да и просто хорошим учебником по статистике, считается учебник Филда, Discovering Statistics Using IBM SPSS Statistics by Andy Field. Подробнее можно посмотреть здесь: www.uk.sagepub.com/field4e/main.htm или на весьма любопытном личном сайте автора www.statisticshell.com/.

Временами случается, что учебника под рукой нет, или надо посмотреть пример использования того или иного метода, который не описан у АДН, например, как делать логистическую регресию в SPSS. В таких случаях я шел на этот неплохой онлайн-учебник по основным методам анализа данных. которые могут потребоваться исследователям. Правда, по ощущениям, для иллюстраций авторы использовали какую-то очень уж древнюю версию SPSS, чуть ли не 9.0/11.0. Также, как и бумажные учебники, подойдет только для newbie-analysts.

Для тех, кто хочет приближенных к реальности пошаговых инструкций, могу порекомендовать соответствующие YouTube-каналы, например, www.youtube.com/playlist?list=PL6B445216E3B93D2C.

Ранее я уже упоминал, что SPSS имеет достаточно удобную возможность работать со скриптами. Если быть корректным, то оконный интерфейс дает лишь базовые возможности для аналитиков, в том случае, когда есть желание повышать навыки анализа данных в SPSS, переход к скриптам является следующим и обязательным шагом. Другое дело, что, на мой взгляд, если уж и переходить на уровень кода, то лучше сразу переходить к использованию R. Однако это вопросы личного выбора. Возвращаясь к скриптам в SPSS, в первую очередь рекомендую посмотреть встроенный мануал SPSS Syntax. А во вторую очередь, воспользоваться ресурсами www.spsstools.ru/ - это перевод англоязычного сайта www.spsstools.net/, где опубликовано около 700 примеров синтаксиса, макросов и скриптов, которые были написаны автором сайта во время консультаций на форумах и в рассылках. Вообще, на сайте достаточно много справочных материалов, ссылок, полезных приемов и так далее. К сожалению, сайт уже пару лет как не обновляется — судя по всему, автор мигрировал на Python.

И напоследок. Для тех, кто совсем отчаялся и не может решить задачу, есть возможность попросить совета в ЖЖ-коммьюнити ru-spss.livejournal.com, где обитает достаточно большое количество дружелюбных и высокопрофессиональных аналитиков и пользователей SPSS.

_____________

Филипп Управителев

Результаты конкурса TCTS

Внимание-внимание — результаты конкурса TCTS!

Дорогие друзья, уважаемые коллеги,

TCTS как проект начался с идеи создать стипендию для студентов, интересующихся когнитивной психологией. И нам действительно удалось это сделать — конкурсы NEISSER и NERD состоялись! Увы, KAHNEMAN сошел с дистанции, не вызывав интереса ни у одного участника. Но Дэниелу мы об этом не расскажем, и надеемся что в следующий раз и он не будет обойден вниманием :)

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

Прежде чем перейти к их торжественному объявлению, нам бы хотелось сказать несколько важных слов и благодарностей. В первую очередь, огромное спасибо всем, кто не побоялся принять участие в первом в нашей истории конкурсе. Вы оказали нам доверие, и мы очень надеемся, что независимо от результата этот опыт был вам интересен. Спасибо нашим экспертам за готовность делиться своим профессионализмом и уделить нам время. Не менее большое спасибо тем, кто сделал этот конкурс возможным финансово. Наконец, спасибо тем, кто просто все это время был рядом и был готов помочь.

Несмотря на то, что первый конкурс получился очень камерным, он все же получился, и мы настроены на то, чтобы продолжать его проведение и расширять его границы. Но TCTS — это не только конкурсы и даже не только блог. Через несколько недель мы попробуем запустить новый tcts-проект, а потом еще и еще — так что не отключайтесь. Ну и несмотря на две готовящиеся и одну планируемую диссертации, мы ни за что не перестанем рассказывать вам о полезных ресурсах и новостях науки.

А теперь — к результатам. Как мы уже сказали, за отсутствием соперников в конкурсе KAHNEMAN победил Дэниэл Канеман. Бурные аплодисменты! В конкурсе NEISSER в поистине напряженной борьбе победу одержала Анна Горбань и её эссе об исследовании «Особенностей когнитивной деятельности сознания в условиях сложного лексического прайминга». Не менее бурные аплодисменты отправляются авторам исследования в Самару — Н. Алисовой, Т. Свиридовой и А. Иванову. Работу Анны, как и два других эссе, попавших в тройку лучших (авторы — Ирина Горюнова и Вита-Ангелина Шурыгина), можно будет прочитать в апрельском выпуске PsyNews.

В конкурсе NERD оказалось два участника — Алмара Кулиева (3 курс) и Анастасия Михайлова (2 курс). По сумме баллов выиграла работа Алмары — исследование под названием «Особенности обработки неосознанно воспринятых стимулов». Хотя к реализации исследования в PsychoPy у жюри возникло немало вопросов, план исследования, написанный Алмарой, был оценен весьма высоко всеми экспертами, что и принесло Алмаре титул «NERDa факультета» и нашу самую большую премию. Однако, поскольку этот конкурс первый, и поскольку мы понимаем, насколько сложная стояла задача перед участиками, было решено присудить второй участнице, Анастасии, поощрительный приз — за смелость и за аккуратность реализации проекта в PsychoPy. Ура!

Таким образом, обладателями премий TCTS-2014 становятся Анна Горбань (1 курс) и Алмара Кулиева (3 курс). Мы от всей души поздравляем победителей! Им, и всем участникам конкурса желаем удачи и успеха как в научной деятельности, так и за ее пределами.

Ваши,

организаторы TCTS,

Ника Адамян, Андрей Четвериков, Филипп Управителев