метод категориальной сортировки в R
С помощью R очень просто реализуется метод категориальной сортировки, буквально в одну строку. Например, пусть трое испытуемых классифицируют шесть стимулов на группы:
x <- read.table(text="
e1 e2 e3
A 1 1 1
B 1 1 2
C 1 2 1
D 2 2 2
E 2 3 1
F 2 3 2
", header = TRUE)
m <- Reduce("+", lapply(x, function(e) ifelse(dist(e, "manhattan"), 1, 0)))
attr(m, 'Labels') <- row.names(x)
plot(hclust(m))
1 2 3 4 5
2 1
3 1 2
4 3 2 2
5 2 3 2 2
6 3 2 3 1 1
Да, поскольку это мое собственное оригинальное решение, ссылка на автора обязательна
x <- read.table(text="
e1 e2 e3
A 1 1 1
B 1 1 2
C 1 2 1
D 2 2 2
E 2 3 1
F 2 3 2
", header = TRUE)
m <- Reduce("+", lapply(x, function(e) ifelse(dist(e, "manhattan"), 1, 0)))
attr(m, 'Labels') <- row.names(x)
plot(hclust(m))
1 2 3 4 5
2 1
3 1 2
4 3 2 2
5 2 3 2 2
6 3 2 3 1 1
Да, поскольку это мое собственное оригинальное решение, ссылка на автора обязательна
Comments
Не совсем понятно, причем тут манхэттенское расстояние у вас в коде, ведь оно требует количественных переменных (или двоичных), но не номинальных.
В SPSS matrix:
data list list /
e1 e2 e3 e4 e5 (5f1).
begin data
1 1 1 3 2
1 1 2 1 2
1 2 1 2 1
2 2 2 1 2
2 3 1 1 2
2 3 2 3 1
end data.
matrix.
get data /vari= e1 to e5.
comp m= make(nrow(data),nrow(data),0).
comp ones= make(1,nrow(data),1).
loop i= 1 to ncol(data).
-comp mi= data(:,i)*ones.
-comp mi= mi ne t(mi).
-print i.
-print mi /space 0.
-comp m= m+mi.
end loop.
print m /title 'Суммарная матрица частотная несовстреч (дистанционная)'.
end matrix.
Или можно вести речь в терминах матриц совстреч (вместо comp mi= mi ne t(mi) поставить comp mi= mi=t(mi)), то тогда матрица сходств m (суммарная частотная матрица совстреч) будет дополнением вышеприведенной в коде матрицы m дистанционной до константы 5 (число столбцов e, т.е. респондентов).
И, ожидаю (не проверял), эта матрица совстреч m, делоенная на 5, должна бы дать коэффициент сходства Дайса (Dice), который получим на двоичных данных, которые суть dummies, в какие можно перекодировать наши 5 номинальных столбцов.