Я пытаюсь вывести линейное дискриминантное уравнение из анализа lda в r. Набор данных, который я использую, включает в себя серию линейных измерений остеометрии c, я хотел бы получить линейные дискриминантные уравнения от Ида, которые я мог бы использовать, чтобы отличить биологический пол от этих измерений.
мой набор данных
head(mydata[,2:15])
M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M15
1 204 160 159 98 120 34 82 82 50 50 92 99 70 74
2 204 156 161 101 112 34 84 75 53 52 99 107 71 77
3 175 135 129 88 100 31 73 70 42 43 80 87 59 74
4 206 141 154 101 113 38 85 75 54 55 101 108 72 78
5 193 154 145 94 107 32 80 72 48 46 87 96 61 69
6 201 146 148 95 110 39 88 76 56 49 97 105 73 77
моя переменная группировки
head(sex[,1,])
[1] "F" "M" "F" "M" "F" "M"
lda
myprediction<-lda(as.matrix(mydata[,2:15]),prior =c(1,1)/2,grouping=sex[,1,], CV=F)
myprediction<-lda(as.matrix(mydata[,2:15]),prior =c(1,1)/2,grouping=sex[,1,], CV=T)
С CV = TI получил классы, так что я Можно предсказать пол, оценить точность с помощью матрицы путаницы. С CV = FI получил коэффициенты (myprediction $ scaling):
мои коэффициенты
head(myprediction$scaling)
LD1
M1 0.099035225
M2 -0.050516512
M3 -0.035602199
M4 -0.002970568
M5 -0.095033474
M6 0.083340277
У меня есть коэффициенты, теперь я бы хотел вычислить константу и центроид группы для секционирования точка. Я хотел бы получить что-то вроде этого уравнения: y = Константа + (Coef1 * Var1) + (Coef2 * Var2) + .. et c. Так что я могу сравнить y с точкой сечения (среднее значение для групповых центроидов) и предсказать пол новых наблюдений. Что-то вроде результатов SPSS.
Я пробовал это для константы, но я думаю, что это не правильно, так как при тестировании уравнения я явно ошибался y:
groupmean<-(my.prediction$prior%*%cv.sex$means)
constant<-(groupmean%*%my.prediction$scaling)
Большое спасибо всем, кто предложил помощь!