Работает нормально со случайно сгенерированным набором данных без значений NA
:
set.seed(101)
z <- matrix(runif(210*133),nrow=210)
zz <- data.frame(A=sample(1:2,size=210,replace=TRUE),z)
m <- MASS::lda(A~.,data=zz)
Я могу воспроизвести ошибку, если добавлю достаточно NA
s:
z2 <- z
z2[sample(length(z),size=2000)] <- NA
zz2 <- data.frame(A=sample(1:2,size=210,replace=TRUE),z2)
m <- MASS::lda(A~.,data=zz2)
в результате
Error in x - group.means[g, ] : non-conformable arrays
(если я выбью меньше, вместо этого я получу предупреждения о коллинеарности)
Для начала попробуйте удалить все переменные с любыми значениями NA
(или тех, у кого их несколько) и посмотрите, сможете ли вы заставить его работать.
Для части вопроса о значении p: поиск в Google "+ r MASS lda дискриминантный анализ" приводит к http://www.statmethods.net/advstats/discriminant.html и предлагает (и предоставляет ссылку на) MANOVA для этих значений p.
Основываясь на небольшом поиске, похоже, что люди обычно используют MANOVA с лямбда Уилкса для тестов в контексте LDA: дляНапример, http://userwww.sfsu.edu/~efc/classes/biol710/discrim/discrim.pdf говорит
Анализ дискриминантной функции разбит на 2 этапа: (1) проверка значимости набора дискриминантных функций, и;(2) классификация.Первый шаг в вычислительном отношении идентичен MANOVA.
Они продолжают показывать пример использования лямбды Уилкса, хотя ?manova
говорит, что тест Пиллаи-Бартлетта (который используется по умолчанию в manova
) может быть лучше ... в любом случае, пройти тест довольно просто.
> summary(manova(z~zz$A),test="Wilks")
Df Wilks approx F num Df den Df Pr(>F)
zz$A 1 0.38164 0.92587 133 76 0.6545
Residuals 208
Это, конечно, не совсем то, о чем вы просили - вы спросили (я думаю) о значимостиУровень связан с отдельными переменными , а не с общим тестом.Я могу представить, что вы могли бы что-то сделать с помощью надлежащим образом скорректированной множественности логистической регрессии, но это превращается в статистический, а не в R-вопрос.Если вы не получите дальнейших ответов, вы можете задать соответствующий вопрос по http://stats.stackexchange.com, ссылаясь на этот вопрос ...