Сомнения по поводу дискриминантного анализа в R - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь воспроизвести отчеты о примере 5 этого pdf на португальском языке о дискриминантном анализе. При работе с учетными записями без использования каких-либо пакетов, я получаю те же результаты, что и в коде ниже. Однако при использовании пакета MASS программного обеспечения R и функции lda () учетные записи не совпадают. Какую ошибку я делаю при использовании функции этого пакета?

    rm(list = ls())
    cat("\014")
    RacaA <- data.frame(x1=c(6.36, 5.92, 5.92,6.44,6.40,6.56,6.64,6.68,6.72,6.76,6.72),
    x2=c(5.24,5.12,5.36,5.64,5.16,5.56,5.36,4.96,5.48,5.60,5.08))
    n1 <- length(RacaA$x1)

    RacaB <- data.frame(x1=c(6.00,5.60,5.64,5.76,5.96,5.72,5.64,5.44,5.04,4.56,5.48,5.76),
    x2=c(4.88,4.64,4.96,4.80,5.08,5.04,4.96,4.88,4.44,4.04,4.20,4.80))
    n2 <- length(RacaB$x1)

    barx1A <- mean(RacaA$x1)
    barx2A <- mean(RacaA$x2)
    v1 <- rbind(barx1A,barx2A)
    CovRA <- cov(RacaA)
    barx1B <- mean(RacaB$x1)
    barx2B <- mean(RacaB$x2)
    v2 <- rbind(barx1B,barx2B)
    CovRB <- cov(RacaB)

    Sc <- ((n1-1)/((n1-1)+(n2-1)))*CovRA+((n2-1)/((n1-1)+(n2-1)))*CovRB
    Scinv <- solve(Sc)
    x1_x2 <- cbind(v1-v2)
    Dx <- t(x1_x2)%*%Scinv

    DxA <- Dx%*%v1
    DxB <- Dx%*%v2

    m <- (1/2)*(DxA+DxB)
    m

    library(MASS)

    m.X <- rbind(RacaA,RacaB)
    RA = rep("RacaA", 11)
    RB = rep("RacaB", 12)
    Raca <- c(RA,RB)
    m.Raca <- data.frame(m.X,Raca)

    result.ad <- lda(Raca~., m.Raca)
    pred<-predict(result.ad)$class
    data.pred <- Raca
    table(data.pred,pred)
    plot(result.ad)
    result.ad
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...