Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум врачей-аспирантов _ Медицинская статистика _ Корреляция метрической шкалы и номинативной 0_0

Автор: kont 14.07.2017 - 14:30

Подскажите пожалуйста, мне нужно изучить взаимосвязь между метрическими показателями и номинативными.
Это эмоциональные реакции на стимулы.
К метрическим переменным относятся:
Вытеснение (П) Регрессия (П) Замещение (П) Отрицание (П) Проекция (П) Компенсация (П) Гиперкомпенсация (П) Рационализация (П)
К номинативным ряд картинок, по каждой картинке нужно сказать чувствовал эмоцию или нет (1-да, 0-нет)
Список эмоций:
Боль
Вина
Возмущение
Грусть
Досада
Жалость
Забота
Злость
Интерес
Испуг
Любовь
Обида
Огорчение
Отвержение
Отвращение
Печаль
Презрение
Равнодушие
Радость
Раздражение
Разочарование
Растерянность
Смущение
Сострадание
Сочувствие
Спокойствие
Страдание
Страх
Стыд
Счастье
Тревога
Удивление
Удовольствие
Ужас

Вопрос. Можно ли коррелировать эти метрические показатели с номинативными (по Спирману) или для изучения взаимосвязей, тут можно только сравнить метрические переменные по каждой номинативной используя t.test?

 корр.zip ( 48,19 килобайт ) : 282
 

Автор: nokh 14.07.2017 - 16:57

Цитата(kont @ 14.07.2017 - 16:30) *
Подскажите пожалуйста, мне нужно изучить взаимосвязь между метрическими показателями и номинативными...

Если попарно, то - точечно-бисериальная корреляция. Но интереснее многомерные ординационные (проекционные) техники.

Автор: p2004r 14.07.2017 - 17:02

1) Никакой проблемы нет использовать неоднократно мной называемый bnlearn строящий Bayesian networks в том числе и по моделям где встречаются различные шкалы.

2) Сами по себе методы редукции размерности плевать хотели на существование к.к. и связанной с ними теории, поскольку основаны на простых _геометрических_ построениях. В данном случае набор данных просто представляет из себя гиперкуб и "за один присест" его сможет переварить какой либо вариант https://en.wikipedia.org/wiki/Multilinear_principal_component_analysis

Тензор (гиперкуб) "люди-чувства-картинки" + плоская таблица "люди-психхарактеристики". Тензор после hosvd() даст набор таблиц с "компонентами" для "людей", "чувств", "картинок".

Можно "компоненты людей" выведенные от их итеракции с "чувствами-картинками" просто проверить на связь с "психохарактеристиками".

 out.pdf ( 28,1 килобайт ) : 275
 

Автор: kont 15.07.2017 - 13:22

nokh, p2004r спасибо. Я пока про R не говорю.
Кажется нарыл
http://ru-spss.livejournal.com/4509.html

Автор: kont 15.07.2017 - 13:23

Но тем не менее, p2004r, может код дать, где вы построили этот граф?

Автор: p2004r 15.07.2017 - 14:32

Цитата(kont @ 15.07.2017 - 13:23) *
Но тем не менее, p2004r, может код дать, где вы построили этот граф?


1. Да, конечно. (там что то с самими данными странноватое, очень уж они "разрежены"... может "картинок" в полном датасете больше? )

Тут одна строчка (мне не хватило терпения до конца датасета дойти исключая переменные на которых алгоритм "виснет")

Код
library(bnlearn)

df.korr <- read.csv2("корр.csv")

df.korr.tr <- cbind(data.frame(lapply(df.korr[,1:8], as.numeric)),
                    data.frame(lapply(df.korr[,-c(1:8)], factor)))

graphviz.plot(hc(df.korr.tr[,c(1:11,
                               14:22,
                               24,
                               26:36,
                               38:52,
                               54:63,
                               65,
                               67:74,
                               76:80)],
                 optimized = F),
              layout="fdp")


2. Для многомерного svd вот неплохая "объяснялка"

http://www.alexejgossmann.com/tensor_decomposition_CP/

 

Автор: kont 15.07.2017 - 21:09


p2004r, подскажите, в аргументе Тенсора, что должно стоять

mpca(tnsr, ranks = NULL, max_iter = 25, tol = 1e-05)

Tensor with K modes. что мне сюда подставить?
Как правильно то?

И второй момент статистический. В обычном факторном анализе, для выбора факторов, я смотрю на график каменной осыпи. А в mpca на что смотреть?

Автор: p2004r 16.07.2017 - 10:58

Цитата(kont @ 15.07.2017 - 21:09) *
p2004r, подскажите, в аргументе Тенсора, что должно стоять

mpca(tnsr, ranks = NULL, max_iter = 25, tol = 1e-05)

Tensor with K modes. что мне сюда подставить?
Как правильно то?

И второй момент статистический. В обычном факторном анализе, для выбора факторов, я смотрю на график каменной осыпи. А в mpca на что смотреть?


1) пакуете в многомерный массив свой датасет. размерность (люди,чувства,картинки)

В статье по ссылке есть пример подготовки искусственного примера. И пример анализа каноническим разложением cp().

Можно в принципе и "психхарактеристики" добавить, но их придется "рециркулировать" для измерений "чувства" и "картинки". Но зато вся ковариация будет за один подход описана.

2) Там точно также можно получить "долю объясняемой ковариации" (см. ссылку на пример) только надо судя по всему "ручками" пройти все варианты "усечения" размерности объясняемого тензора.

Автор: kont 16.07.2017 - 18:22

Я так и делал

library rTensor
library("openxlsx")
dat=read.csv2("корр.csv")
View(dat)
mpca(dat, ranks=c(10,10), max_iter = 25, tol = 1e-05)

и получил ошибку:-(

Error: is(tnsr, "Tensor") is not TRUE

Автор: 100$ 16.07.2017 - 22:40

Цитата(kont @ 16.07.2017 - 18:22) *
Я так и делал

library rTensor
library("openxlsx")
dat=read.csv2("корр.csv")
View(dat)
mpca(dat, ranks=c(10,10), max_iter = 25, tol = 1e-05)

и получил ошибку:-(

Error: is(tnsr, "Tensor") is not TRUE


Ну, этому датасету надо ж задать как минимум три измерения.

Автор: p2004r 17.07.2017 - 10:04

Цитата(kont @ 16.07.2017 - 18:22) *
Я так и делал

library rTensor
library("openxlsx")
dat=read.csv2("корр.csv")
View(dat)
mpca(dat, ranks=c(10,10), max_iter = 25, tol = 1e-05)

и получил ошибку:-(

Error: is(tnsr, "Tensor") is not TRUE


Такое впечатление что вы не читаете того что вам говорят sad.gif

Вот пример подготовки данных "с NAнуля" по ссылке http://www.alexejgossmann.com/tensor_decomposition_CP/ которую вы упорно игнорируете

Код
space_index <- seq(-1, 1, l = 100)
bell_curve  <- dnorm(space_index, mean = 0, sd = 0.5)
case1 <- matrix(rep(bell_curve, 10), 100, 100)
case2 <- matrix(rep(bell_curve, 10), 100, 100)
case3 <- matrix(rep(bell_curve, 10), 100, 100)
case2[ , 51:100] <- case2[ , 51:100] + 0.1
case3[ , 51:100] <- case3[ , 51:100] - 0.1

X <- array(NA, dim = c(90, 100, 100))
for(i in 1:30) {
  X[i, , ]    <- case1 + matrix(rnorm(10000, sd = 0.1), 100, 100)
  X[i+30, , ] <- case2 + matrix(rnorm(10000, sd = 0.1), 100, 100)
  X[i+60, , ] <- case3 + matrix(rnorm(10000, sd = 0.1), 100, 100)
}

Автор: kont 17.07.2017 - 19:18

Спасибо, кажется понял
dat <- as.matrix(dat)
dat <- as.tensor(dat)
class(dat)
[1] "Tensor"

Автор: p2004r 17.07.2017 - 20:08

Цитата(kont @ 17.07.2017 - 19:18) *
Спасибо, кажется понял
dat <- as.matrix(dat)
dat <- as.tensor(dat)
class(dat)
[1] "Tensor"



Это вряд ли (С) т. Сухов

Сначала мана мана array() надо заполнить, что бы получился гиперкуб на каждой грани которого отдельно "люди", "шкалы", "картинки" ... и вот потом уже вышеприведенное.

Автор: kont 17.07.2017 - 20:27

Так точно:)
а с аргументом ранг, можете помочь разобраться?
Error: length(ranks) == (num_modes - 1) is not TRUE
тенсор то отработал, а вот ранг нет
Какова его суть, что я его вбил верно
пока у меня так
ranks=c(10,10)

Автор: p2004r 17.07.2017 - 22:39

Цитата(kont @ 17.07.2017 - 20:27) *
Так точно:)
а с аргументом ранг, можете помочь разобраться?
Error: length(ranks) == (num_modes - 1) is not TRUE
тенсор то отработал, а вот ранг нет
Какова его суть, что я его вбил верно
пока у меня так
ranks=c(10,10)


Ну вот когда сделаете array, тогда и нальем воду в бассейн продолжим дальше.

Автор: kont 18.07.2017 - 16:27

Вы этот имеете ввиду?
tnsr <- as.tensor(array(dat, dim = c(2, 3, 3)))

Автор: nokh 18.07.2017 - 21:53

Хочу предложить опробовать параллельно другой вариант анализа (хотя с интересом буду следить за начатым курсом). Но сначала пара ремарок.
Во-первых, как уже отметил p2004r датасет действительно пустоват. Во-вторых он плохо сбалансирован по эмоциям. Чтобы в этом убедиться, а заодно и начать подготовку данных к анализу нелинейными главными компонентами в SPSS, создайте в экселе такой файл:
Удалите вашу первую строчку. Первая строка - названия столбцов.
Первая колонка - испытуемый. Метки - значения от 1 до 200 повторяются четырежды. (800 строк + 1 строка шапки)
Вторая колонка - картинка. По 200 значений 1, 2, 3 и 4.
Далее 8 колонок шкал, далее 34 колонки с эмоциями - от Боли по Ужас.
Переформатируйте таблицу так, чтобы вписать её в эту структуру. Шкалы для испытуемых придётся повторить четырежды - по одному повтору на каждую картинку, а соответствующие картинке колонки эмоций будут уже заполнены оригинальной для каждой картинки информацией.
Под такой таблицей создайте строку с суммами значений эмоций по колонкам. Транспонируйте и ранжируйте по убыванию. У меня получилось:

Боль 206
Радость 191
Удивление 82
Злость 67
Обида 59
Страх 46
Жалость 29
Испуг 21
Счастье 13
Забота 10
Печаль 10
Раздражение 10
Грусть 7
Разочарование 7
Спокойствие 7
Любовь 6
Стыд 6
Возмущение 5
Тревога 5
Досада 4
Отвращение 4
Растерянность 4
Сострадание 4
Удовольствие 4
Интерес 3
Огорчение 3
Вина 2
Презрение 2
Сочувствие 2
Ужас 2
Отвержение 1
Смущение 1
Равнодушие 0
Страдание 0

Создаётся впечатление, что отследив аж 34 эмоции вы достаточно точно "ухватите" шкалы, найдёте связи с ними и т.п. В действительности же получается, что в этих шкалах вы отследите только боль и радость! Ну может ещё немного захватите эмоций по испуг, судя по графику осыпи. 2 эмоции совсем не представлены (0). И вообще, кроме радости в топе - один негатив! Что это за странная методика и нет ли необходимости добрать материал картинками так, чтобы спектр эмоций был представлен более-менее полно, равномерно?

CATPCA не возьмёт столбцы с 3 значениями и менее, поэтому колонки с испуга по страдание нужно стереть.
Выделить всю матрицу и заменить 1 на 2, а затем 0 на 1.
Удалите последнюю строку сумм и откройте файл в SPSS. Завтра напишу что делать дальше.

 

Автор: comisora 19.07.2017 - 00:53

Всем добра. Может быть кому-то пригодятся следующие рзмышления.
Разнообразие эмоциональных реакций, обозначенное ТС, усложняет выбор парадигмы изучения эмоций на которую следует опираться при конструировании исследовательской гипотезы, формулирования формальной задачи и т.п. Например, боль это, в первую очередь, ощущение, которое обычно неприятное и оценивается эмоционально. А есть тягостное переживание, очень схожее с болью - сенестопатия. Эмоции это или нет? Это одна история.
Есть и другая история, например, мнение Экмана, про базовые эмоции: радость, злоба, отвращение, страх, удивление, пичалька. Изард предлагал схожый набор базовых эмоций: эмоции интереса, радости, удивления, печали, гнева, отвращения, презрения, страха, стыда, смущение (застенчивость). Вот http://changingminds.org/explanations/emotions/basic%20emotions.htm можно ознакомиться с идеями про базовые эмоции подробней. Вопрос про сводимость вторичных эмоций к базовым, емнип, не до конца закрыт.
Казалось бы достаточно ясные и понятные переживания, знакомые большинству людей, трудно описать, формализовать, совместить в рамках какой-то концепции и т.д. Данное обстоятельство может усложнять проведение стат.анализа.

Автор: kont 20.07.2017 - 11:11

nokh, а дальше что делать? smile.gif

Автор: p2004r 21.07.2017 - 22:38

Цитата(kont @ 18.07.2017 - 16:27) *
Вы этот имеете ввиду?
tnsr <- as.tensor(array(dat, dim = c(2, 3, 3)))


Пожалуй в бассейн можно смело вместо воды укладывать чугунные батареи smile.gif

Код
array(unlist(df.korr[,-c(1:8)]), dim = c(200, 34, 3))


Автор: kont 22.07.2017 - 16:48

p2004r, а Вы с юмором подходите, об чугунные батареи я убьюсь)) Дайте шанс. smile.gif
а что значат числа 34 и 3
200 это понятно это кол-во моих наблюдений

Автор: p2004r 22.07.2017 - 19:08

Цитата(kont @ 22.07.2017 - 16:48) *
p2004r, а Вы с юмором подходите, об чугунные батареи я убьюсь)) Дайте шанс. smile.gif
а что значат числа 34 и 3
200 это понятно это кол-во моих наблюдений



Вот картинка которую обожают психологи в тестах "найди закономерность":

Код
> names(df.korr[,-c(1:8)])
  [1] "Боль"            "Вина"            "Возмущение"      "Грусть"        
  [5] "Досада"          "Жалость"         "Забота"          "Злость"        
  [9] "Интерес"         "Испуг"           "Любовь"          "Обида"          
[13] "Огорчение"       "Отвержение"      "Отвращение"      "Печаль"        
[17] "Презрение"       "Равнодушие"      "Радость"         "Раздражение"    
[21] "Разочарование"   "Растерянность"   "Смущение"        "Сострадание"    
[25] "Сочувствие"      "Спокойствие"     "Страдание"       "Страх"          
[29] "Стыд"            "Счастье"         "Тревога"         "Удивление"      
[33] "Удовольствие"    "Ужас"            "Боль.1"          "Вина.1"        
[37] "Возмущение.1"    "Грусть.1"        "Досада.1"        "Жалость.1"      
[41] "Забота.1"        "Злость.1"        "Интерес.1"       "Испуг.1"        
[45] "Любовь.1"        "Обида.1"         "Огорчение.1"     "Отвержение.1"  
[49] "Отвращение.1"    "Печаль.1"        "Презрение.1"     "Равнодушие.1"  
[53] "Радость.1"       "Раздражение.1"   "Разочарование.1" "Растерянность.1"
[57] "Смущение.1"      "Сострадание.1"   "Сочувствие.1"    "Спокойствие.1"  
[61] "Страдание.1"     "Страх.1"         "Стыд.1"          "Счастье.1"      
[65] "Тревога.1"       "Удивление.1"     "Удовольствие.1"  "Ужас.1"        
[69] "Боль.2"          "Вина.2"          "Возмущение.2"    "Грусть.2"      
[73] "Досада.2"        "Жалость.2"       "Забота.2"        "Злость.2"      
[77] "Интерес.2"       "Испуг.2"         "Любовь.2"        "Обида.2"        
[81] "Огорчение.2"     "Отвержение.2"    "Отвращение.2"    "Печаль.2"      
[85] "Презрение.2"     "Равнодушие.2"    "Радость.2"       "Раздражение.2"  
[89] "Разочарование.2" "Растерянность.2" "Смущение.2"      "Сострадание.2"  
[93] "Сочувствие.2"    "Спокойствие.2"   "Страдание.2"     "Страх.2"        
[97] "Стыд.2"          "Счастье.2"       "Тревога.2"       "Удивление.2"    
[101] "Удовольствие.2"  "Ужас.2"          "Боль.3"          "Вина.3"        
[105] "Возмущение.3"    "Грусть.3"        "Досада.3"        "Жалость.3"      
[109] "Забота.3"        "Злость.3"        "Интерес.3"       "Испуг.3"        
[113] "Любовь.3"        "Обида.3"         "Огорчение.3"     "Отвержение.3"  
[117] "Отвращение.3"    "Печаль.3"        "Презрение.3"     "Равнодушие.3"  
[121] "Радость.3"       "Раздражение.3"   "Разочарование.3" "Растерянность.3"
[125] "Смущение.3"      "Сострадание.3"   "Сочувствие.3"    "Спокойствие.3"  
[129] "Страдание.3"     "Страх.3"         "Стыд.3"          "Счастье.3"      
[133] "Тревога.3"       "Удивление.3"     "Удовольствие.3"  "Ужас.3"



34 и 3 это "3 раза по 34 одинаковых качества"

Автор: nokh 16.08.2017 - 13:39

Цитата(kont @ 20.07.2017 - 13:11) *
nokh, а дальше что делать? smile.gif

Прошу прощения, не успел до отпуска pardon.gif Задача ещё актуальна?

Автор: kont 18.08.2017 - 17:14

любая дополнительная информация ценная всегда, даже запоздалая))

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)