Скрипт для согласования концептов: 1 и 0

Копия 326028
Ровно два месяца прошло со времени, когда я в последний раз опубликовал статью, посвященную R. Пора наверстывать упущенное. Сегодняшний материал не для онлайн учебника по R, а просто полезная для гуманитариев штука: скрипт для создания матриц из едииниц и нулей. В первую очередь он необходим для проведения процедуры согласования концептов. С последней можно ознакомиться здесь (конкретно про единицы и нули см. стр. 103-105). Кроме этого, такого рода матрицы можно использовать для решения многих задач с применением многомерного шкалирования (на ум, например, приходит специфический способ социометрического исследования).
Чтобы хоть как-то объяснить сущность этих матриц, приведу цитату (с остальным можно ознакомиться перейдя по ссылке выше): "... результаты (...) представляются в виде квадратной таблицы (матрицы), которая имеет количество строк и столбцов равное количеству утверждений. Все значения этой матрицы могут принимать только два значения – «0» или «1». Единица является показателем того, что утверждения по строке и столбцу размещаются (...) в одной группе, в то время как ноль указывает на то, что они размещаются в разных группах".
Приведенный ниже код необходимо скопировать в файл R Script, запустить первую строку кода. Потом выделить с 3 по 21 строки и тоже запустить, что приведет к созданию функции "cmm" (также можно скачать файл соответствующего проекта отсюда, функция в нем уже создана). Она запускается из консоли с указанием двух аргументов: общее количество элементов (для согласования концептов - утверждений); количество групп, на которые эти элементы разбиваются. Далее будет запущена функция scan() столько раз сколько групп выделено участником исследования или экспертом, или имеется по факту. Для следующего эксперта функцию cmm() необходимо запустить вновь. После того, как данные всех участников введены, текстовый файл с данными числовых матриц будет доступен в рабочей директории.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
  frame <- data.frame(c(NA))

  cmm <- function(stat, groups) {
    matr <- matrix(data = 0, nrow = stat, ncol = stat)
    for (i in 1:groups) {
      temp <- scan("")
      for (i in temp) {
        for (j in temp) {
          matr[i,j] <- 1
        }
      }
    }
    if (is.na(frame[1,1]) == T) {
      frame <<- as.data.frame(matr)
      write.table(frame, "matr.txt", sep = ",", row.names = F, col.names = F)
    } else {
      frameNew <- as.data.frame(matr)
      frame <<- rbind(frame,frameNew)
      write.table(frame, "matr.txt", sep = ",", row.names = F, col.names = F)
    }
  }

Дополнительно я привожу Tехнические инструкции по созданию концептуальных карт средствами R, SPSS, MS Excel и MS Power Point:

В R:

(1) File => Open Project… => выбрать файл проекта "Concept Mapping". Его можно скачать из сети Интернет по следующему адресу: http://soc-research.info/downloads/ConceptMapping.Rproj
(2) В области окна "R Script" (верхняя левая четверть) запустить первую строку кода.
(3) Из консоли (нижняя левая четверть) запустить функцию cmm(), указав в качестве первого аргумента количество утверждений, а качестве второго – количество групп, сформированных участником исследования.
(4) Ввести номера утверждений первой группы, разделяя их нажатием клавиши "Enter". После ввода последнего номера группы "Enter" необходимо нажать дважды. Повторить ввод для каждой последующей группы.
(5) Запустить функцию cmm() для каждого следующего участника с повторением действий в пунктах 3 и 4.

В SPSS:

(6) Нажать вкладку "Variable View" и в столбце "Name" ввести сокращенные названия утверждений, сформулированных в процессе мозгового штурма; последовательность утверждений должна отвечать номерам утвреждений на карточках.
(7) Открыть текстовый файл "matr.txt", созданный с помощью скрипта R (в качестве разделителей значений указать запятую). Этот файл будет находиться в папке проекта "Concept Mapping".
(8) Analyze => Scale => Multidimensional Scaling (PROXSCAL).

В окне "Multidimensional Scaling":

(9) В поле "Data Format" поставить галочку напротив "Create proximities from data".
(10) В поле "Number of Sources" поставить галочку напротив "Multiple matrix sources".
(11) Нажать кнопку "Define".

В окне "Multidimensional Scaling (Create Proximities from Data)":

(12) Выделить все переменные и переместить их в часть окна "Variables".
(13) Нажать кнопку "Measure...".

В окне "Multidimensional Scaling: Measure":

(14) В поле "Measure" поставить галочку напротив "Binary".
(15) Нажать кнопку "Continue".
(16) Нажать кнопку "Ok".

В окне "Output1":

(17) Скопировать таблицу "Final Coordinates" в Excel.

В Excel:

(18) На основании этой таблицы построить точечную диаграмму.
(19) Подписать точки на графике (в качестве наименований можно использовать, например, номера утверждений).
(20) Скопировать график в Power Point и в случае необходимости отредактировать его.

В SPSS:

(21) Analyze => Classify => Hierarchical Cluster.

В окне "Hierarchical Cluster Analysis":

(22) Выделить все переменные и переместить их в часть окна "Variable(s)".
(23) В поле "Cluster" поставить галочку напротив "Variables".
(24) Нажать кнопку "Plots...".
(25) Поставить галочку напротив "Dendrogram".
(26) Нажать кнопку "Continue".
(27) Нажать кнопку "Ok".

В окне "Output1":

(28) Проанализировать дендограмму для определения получившихся групп.

В Power Point:

(29) Обозначить группы на графике (с помощью границ) в соответствии с результатами кластерного анализа.
(30) Рассчитать средние значения (для утверждений и/или групп) и обозначить их в графике.

blog comments powered by Disqus