Здесь я описываю, как использовать активно поддерживаемый (и относительно простой в использовании) пакет R rcicr, который я написал, для создания стимулов обратной корреляции и вычисления классификационных изображений.

Скачать последнюю версию пакета можно на Github

Загрузка и установка

Установите RRStudio, чтобы облегчить себе жизнь). Не беспокойтесь, все это бесплатно. Затем, чтобы получить последнюю версию пакета классификации изображений с обратной корреляцией (rcicr), выполните следующую команду в R (к сожалению, ее сейчас нет в CRAN):

install.packages("devtools") library(devtools) install_github("rdotsch/rcicr", ref = "development")

Создание стимулов

Загрузите пакет с:

library(rcicr)

Затем сгенерируйте стимулы с помощью:

generateStimuli2IFC(base_face_files, n_trials = 770)

Если вы получаете здесь сообщения об ошибках, это значит, что вы еще не назначили аргумент base_face_files, см. ниже. Этот вызов generateStimuli2IFC будет генерировать стимулы для 770 испытаний задачи классификации изображений обратной корреляции с принудительным выбором двух изображений с синусоидальным шумом. По умолчанию стимулы будут иметь разрешение 512 x 512 пикселей. Стимулы будут сохранены в формате jpeg в папке с именем stimuli в вашем текущем рабочем каталоге, а также будет сохранен файл .Rdata, содержащий параметры стимула, необходимые для анализа.

Аргумент base_face_files представляет собой список файлов JPEG, которые следует использовать в качестве базовых изображений для стимулов. Переменная base_face_files может выглядеть так:

base_face_files <- list('male'='male.jpg', 'female'='female.jpg')

Для каждого jpeg будет создан набор стимулов с использованием тех же шумовых паттернов, что и для других наборов. Обратите внимание, что каждый файл JPEG должен быть закодирован как оттенки серого (поэтому не просто изображение с оттенками серого, сохраненное как RGB, убедитесь, что оно действительно закодировано как оттенки серого). JPEG должен иметь разрешение, которое вы хотите, чтобы стимулы имели. По умолчанию это должно быть 512 x 512 пикселей. Если вам нужен другой размер, измените размер базового изображения до 128 x 128 или 256 x 256 для небольших стимулов или до 1024 x 1024 для более крупных стимулов. В этом случае также установите параметр img_size в функции generateStimuli2IFC соответствующим образом.

Теперь вы готовы собирать данные с помощью только что созданных стимулов. Стимулы именуются в соответствии с их порядковым номером при генерации и тем, накладывается ли исходный шум или отрицательный/инвертированный шум. Стимулы с одинаковым порядковым номером должны предъявляться рядом друг с другом в одном и том же испытании. Запишите, какой стимул выбрал участник в любом конкретном испытании (оригинал или инвертированный). По крайней мере, убедитесь, что в вашем файле данных может быть установлена ​​связь между ключом ответа участника и тем, какой стимул был выбран в каждом испытании. Используйте любое программное обеспечение для презентаций, которое вам нравится.

Анализ данных

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

ci <- generateCI2IFC(stimuli, responses, baseimage, rdata)

Параматер стимулов должен быть вектором, содержащим порядковые номера стимулов, которые были представлены в испытаниях задачи. Параметр ответов содержит в порядке вектора стимулов реакцию участника на эти стимулы (кодируется 1, если был выбран исходный стимул, и -1, если был выбран инвертированный стимул). Параметр baseimage представляет собой строку, указывающую, какое базовое изображение было использовано (не имя файла, а имя в списке base_face_files). Таким образом, для сгенерированных выше стимулов может быть либо «мужской», либо «женский», в зависимости от того, какой набор стимулов был использован. предоставляется участнику, чьи данные вы анализируете). Наконец, rdata — это строка, указывающая на файл .RData, который автоматически создается при создании стимулов. Он содержит параметры для каждого стимула, необходимые для создания образа классификации.

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

ci1 <- generateCI2IFC(…) ci2 <- generateCI2IFC(…) cis <- list(ci1name=ci1, ci2name=ci2) scaled_cis <- autoscale(cis, saveasjpegs = TRUE)

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

cis <- batchGenerateCI2IFC(dataframe, "columnToSplitDataBy", "columnContainingStimulusNumbers", "columnContainingResponses", baseimage, rdata)

где baseimage и rdata работают так же, как и с generateCI2IFC, а все остальные аргументы сообщают пакетной функции, в каких столбцах фрейма данных нужно найти нужные данные. В частности, второй аргумент сообщает функции, где она может найти индекс, по которому следует разделить файл данных. Этот аргумент может относиться к имени столбца, содержащего номера субъектов, или к столбцу, содержащему условия. Это может быть только один столбец. Если у вас сложный дизайн, в котором у вас есть несколько условий в рамках предметов, вы сначала хотите создать столбец, содержащий взаимодействие между всеми этими факторами, чтобы у вас была уникальная метка для каждой комбинации предметов и условий (в R есть удобная функция). функцию взаимодействия (), которую вы можете использовать для этого). Цис автоматически масштабируется и сохраняется в формате jpeg. Вы можете изменить это поведение с помощью дополнительных аргументов.

Пример

Если вы хотите увидеть пример обратного корреляционного анализа, реализованного в R, загляните в этот репозиторий. Пример психопии включает в себя скрипт для генерации стимулов и сценарий анализа в R. Сценарий психопсии представляет стимулы с обратной корреляцией, сгенерированные с помощью rcicr. Вы можете попробовать это сами, а затем сразу же проанализировать свои собственные данные. Вам также нужно будет скачать и установить PsychoPy.

Проведение экспериментов с обратной корреляцией онлайн

Антон Голлвитцер любезно поделился своим кодом для проведения экспериментов с обратной корреляцией онлайн здесь.

Цитаты

Если вы в конечном итоге используете пакет rcicr, соответствующую ссылку для используемой версии можно найти с помощью следующей команды в R:

citation('rcicr')