Выполнение HCPC для столбцов (то есть переменных) вместо строк (то есть отдельных лиц) после (M)CA
Я хотел бы выполнить HCPC для столбцов моего набора данных после выполнения CA. По какой-то причине я также должен указать в начале, что все мои столбцы относятся к типу 'factor', чтобы потом потом снова зациклить их и преобразовать в числовые. Я не знаю, почему именно, потому что, если я проверяю тип каждого столбца (не указывая их как фактор), они кажутся числовыми... Когда я не загружаю и не конвертирую данные, как это, я получаю ошибка вроде следующего:
Ошибка в собственных (crossprod(t(X), t(X)), симметричный = TRUE): бесконечные или отсутствующие значения в "x"
Может ли это быть из-за того, что в моем наборе данных есть столбцы, которые содержат только 0? Если так, то почему он работает отлично, считая все сначала как фактор, а затем преобразовывая его в числовое значение перед применением СА, вместо того, чтобы просто выполнять СА непосредственно?
Исходная проблема с HCPC заключается в следующем:
# read in data; 40 x 267 data frame
data_for_ca <- read.csv("./data/data_clean_CA_complete.csv",row.names=1,colClasses = c(rep('factor',267)))
# loop over first 267 columns, converting them to numeric
for(i in 1:267)
data_for_ca[[i]] <- as.numeric(data_for_ca[[i]])
# perform CA
data.ca <- CA(data_for_ca,graph = F)
# perform HCPC for rows (i.e. individuals); up until here everything works just fine
data.hcpc <- HCPC(data.ca,graph = T)
# now I start having trouble
# perform HCPC for columns (i.e. variables); use their coordinates that are stocked in the CA-object that was created earlier
data.cols.hcpc <- HCPC(data.ca$col$coord,graph = T)
Код выше показывает мне дендрограмму в последнем случае и даже позволяет мне разрезать ее на кластеры, но затем я получаю следующую ошибку:
Ошибка в catdes(data.clust, ncol(data.clust), proba = proba, row.w = res.sauv$call$row.w.init): объект 'data.clust' не найден
Стоит отметить, что когда я выполняю MCA для своих данных и в этом случае пытаюсь выполнить HCPC для моих столбцов, я получаю точно такую же ошибку. Кто-нибудь может понять, как это исправить или что я делаю неправильно? Для полноты я вставляю скриншот верхнего левого угла моего набора данных, чтобы показать, как он выглядит:
Заранее спасибо за любую возможную помощь!
0 ответов
Я знаю, что это устарело, но поскольку сегодня я уже какое-то время устранял эту проблему:
HCPC
говорит, что принимает фрейм данных, но каждый раз, когда я пытаюсь просто передать его $col$coord
или $colcoord
от стандарта ca
объект, он возвращает эту ошибку. Я предполагаю, что есть некоторые метаданные, которые ему действительно нужны / которые он ищет, которых нет в кадре данных с координатами, но я не могу понять, что это такое или как их передать.
Текущая версия FactoMineR
на самом деле просто позволит вам дать HCPC
целый CA
объект и указать, кластеризовать ли строки или столбцы. Итак, ваша последняя строка кода должна быть:
data.cols.hcpc <- HCPC(data.ca, cluster.CA = "columns", graph = T)