#############DISCRIMINANT FUNCTION ANALYSIS > library(MASS, pos=16) > discr1 <- lda (Species ~ Sepal.Length + Sepal.Width + Petal.Length, data = iris) > discr1 Call: lda(Species ~ Sepal.Length + Sepal.Width + Petal.Length, data = iris) Prior probabilities of groups: setosa versicolor virginica 0.3333333 0.3333333 0.3333333 Group means: Sepal.Length Sepal.Width Petal.Length setosa 5.006 3.428 1.462 versicolor 5.936 2.770 4.260 virginica 6.588 2.974 5.552 Coefficients of linear discriminants: LD1 LD2 Sepal.Length -1.2292136 -0.6402838 Sepal.Width -0.9707919 3.0792137 Petal.Length 3.2507528 0.6580622 Proportion of trace: LD1 LD2 0.9919 0.0081 > plot (discr1) > plot (discr1, col = as.integer(iris$Species)) > library(psych, pos=17) > pairs.panels(iris[1:4]) ### PERCENTAGE OF CORRECT CLASSIFICATION > correct <- predict (discr1, iris)$class > iris.table <- table(predicted = correct, Actual = iris$Species) > iris.table Actual predicted setosa versicolor virginica setosa 50 0 0 versicolor 0 48 3 virginica 0 2 47 #### HISTORGAMS FOR LD1 > iris.values <- predict (discr1) > ldahist(iris.values$x[,1], g = iris$Species) > ldahist(iris.values$x[,2], g = iris$Species) ### CROSS VALIDATION > attach(iris) > iris.train1 <- sample (1:150, 70) > table (iris$Species[iris.train1]) setosa versicolor virginica 21 23 26 > discr2 <- lda (Species ~ Sepal.Length + Sepal.Width + Petal.Length, data = iris, prior = c(1/3, 1/3, 1/3), subset = iris.train1) > predict (discr2, iris[-iris.train1, ])$class [1] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa [12] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa [23] setosa setosa setosa setosa setosa setosa setosa versicolor versicolor versicolor versicolor [34] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor [45] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor [56] versicolor virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica [67] virginica virginica virginica virginica virginica virginica virginica virginica virginica versicolor virginica [78] virginica virginica virginica Levels: setosa versicolor virginica ######################################################## ################SCRIPT################################# #############DISCRIMINANT FUNCTION ANALYSIS library(MASS, pos=16) discr1 <- lda (Species ~ Sepal.Length + Sepal.Width + Petal.Length, data = iris) discr1 plot (discr1) plot (discr1, col = as.integer(iris$Species)) library(psych, pos=17) pairs.panels(iris[1:4]) ### PERCENTAGE OF CORRECT CLASSIFICATION correct <- predict (discr1, iris)$class iris.table <- table(predicted = correct, Actual = iris$Species) iris.table #### HISTORGAMS FOR LD1 and LD2 iris.values <- predict (discr1) ldahist(iris.values$x[,1], g = iris$Species) ldahist(iris.values$x[,2], g = iris$Species) ### CROSS VALIDATION attach(iris) iris.train1 <- sample (1:150, 70) table (iris$Species[iris.train1]) discr2 <- lda (Species ~ Sepal.Length + Sepal.Width + Petal.Length, data = iris, prior = c(1/3, 1/3, 1/3), subset = iris.train1) predict (discr2, iris[-iris.train1, ])$class