Поэтому я пытаюсь понять разницу между lda и linDA из пакета DiscriMiner.Оба претендуют на проведение линейного дискриминантного анализа.Моя цель - извлечь из lda некоторый аналог объекта $ functions, которым обладает linDA.
Проблема в том, что linDA не работает, когда в одной категории есть коллинеарные переменные, в то время как lda выполняет с предупреждением.
library(DiscriMiner)
library(MASS)
stack_df = data.frame(a = c(4.4, 5.4, 4.1, 4.3, 4.6, 9.2, 9.7, 10, 11, 16, 16, 17),
b = c(100, 111, 99, 104, 107, 55, 61, 54, 60, 333, 341, 299))
clusters <- c(1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3)
result_lda <- lda(x = stack_df, grouping = clusters)
result_linDA <- linDA(variables = stack_df, group = clusters)
result_linDA$functions
Как мне получить вывод от lda:
1 2 3
constant -89.811195 -170.4324589 -975.199938
a 15.892524 29.3741508 55.378398
b 1.011531 0.7940963 3.216177
Вот как выглядит result_lda:
Call:
lda(stack_df, grouping = clusters)
Prior probabilities of groups:
1 2 3
0.4166667 0.3333333 0.2500000
Group means:
a b
1 4.56000 104.2000
2 9.97500 57.5000
3 16.33333 324.3333
Coefficients of linear discriminants:
LD1 LD2
a 1.16933652 -1.18114662
b 0.07679703 0.04925105
Proportion of trace:
LD1 LD2
0.9207 0.0793